Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт янв 02, 2026 00:43:17

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 00:31:28 
Мудрый кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 21
Зарегистрирован: Чт авг 21, 2008 22:03:30
Сообщений: 1733
Откуда: Одесса(Украина)
Рейтинг сообщения: 0
Доброе время суток!
Столкнулся с такой проблемой: Имеется отладочная плата STM32-DISCOVERY с установленным STM32F100RB. Задача состоит в постоянном чтении АЦП и одновременном измерении периода/фазы сигнала с помощью модуля захвата сравнения таймера. Реализовать их в отдельности не составило большого труда. Но проблемы начались после соеденения.
Значит так: На вход TIM15 CC1 подается прямоугольник с частотой 50Гц, имеется прерывание по захвату на фронте, в нем считываю значение, вычитаю предыдущее, получаю так период, принимаю нужное решение. Все работает до тех пор, пока на вход АЦП IN14 не подаю "выпрямленную" синусоиду. (На один период приходится два горба от нуля до 2,2 вольта. Опорное напряжение - 3 вольта. Выбросов и осцилляций сигнал не имеет). Измеренный модулем захвата период тут же уменьшается в два раза. Стоит отсоединить входной сигнал - все возвращается в норму. Сигналы своей формы и тем более частоты не меняют в зависимости от состояния подключений.
Если програмно выключить модуль АЦП, но подавать на вход сигнал - так же все работает нормально. Другой таймер, другие выводы я уже попробовал. Вывод захвата притянут к 3,3 вольта резистором на 1кОм, замыкается на землю через транзистор. На АЦП сигнал приходит с ОУ. Оба сигнала синфазны. Фронт приходится на возрастающее пересечение нуля синусоидой.
Уж не знаю что и поделать. Может кто сталкивался с таким?

_________________
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 00:47:34 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн дек 03, 2012 19:31:53
Сообщений: 110
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
А можно немного подробнее, как вы период так получаете? Не понял это. Что измеряет ваш модуль захвата, когда АЦП программно отключен?

Или вы утверждаете, что выпрямленная синусоида должна иметь тот же период, что и ее исходный сигнал?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 01:28:28 
Мудрый кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 21
Зарегистрирован: Чт авг 21, 2008 22:03:30
Сообщений: 1733
Откуда: Одесса(Украина)
Рейтинг сообщения: 0
Ладно, я хотел избежать рисования картинок, но прийдется это делать.
Изображение

Тут красная линия - входной сигнал 50 Гц.
Зеленая пунктирная линия - Сигнал после "выпрямителя". Подается на вход АЦП.
Синяя точечная линия - сигнал после компаратора, который подается на вход модуля захвата.
Из модуля захвата по прерыванию берем текущее значение таймера, вычитаем из него предыдущее значение (конечно же, с учетом переполнения таймера) и получаем период в попугаях. (В системных тактах в моем случае, так настроен источник тактирования для таймера).
Проблема заключается в том, что при выключенном АЦП и подключенном сигнале или отсоединенном входном сигнале и включенном АЦП получаем правильное значение периода. При включенном АЦП и подключенном сигнале - многие события захвата происходят раньше в два раза, чем получаем истинное событие.
Захват на возрастающий фронт настроен. Это точно.


Вложения:
1.gif [5.63 KiB]
Скачиваний: 1093

_________________
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 01:56:06 
Мудрый кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 21
Зарегистрирован: Чт авг 21, 2008 22:03:30
Сообщений: 1733
Откуда: Одесса(Украина)
Рейтинг сообщения: 0
Все. Проблема решена.
Последовательно входу АЦП необходимо добавить резистор на 50кОм. Странно это все.

_________________
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 09:35:45 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 15
Зарегистрирован: Пт янв 21, 2011 14:16:36
Сообщений: 130
Откуда: Уфа
Рейтинг сообщения: 0
А вы в обработчике прерывания проверяете источник?
Ну, типа
Код:
    if (TIM15->SR & TIM_SR_CC1IF)
    {
        TIM15->SR = ~TIM_SR_CC1IF;
        ...
    }

?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Вс дек 23, 2012 13:43:08 
Мудрый кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 21
Зарегистрирован: Чт авг 21, 2008 22:03:30
Сообщений: 1733
Откуда: Одесса(Украина)
Рейтинг сообщения: 0
_AHTOXA_ писал(а):
А вы в обработчике прерывания проверяете источник?

Конечно же я проверяю источник. И флажок сбрасываю. И проверяю переполнение. Программа сейчас сведена до абсурдно простой. Куски инициализации взяты из примеров, тактирование модулей и портов включено, одно прерывание и запущенное АЦП по сравнению таймера.
После установки резистора напряжение на входе АЦП стало "не доставать " до земли на целый вольт. Вход точно переведен программно в состояние Analog_IN.

_________________
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Пн дек 24, 2012 11:12:15 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
Можно предположить отсутвие соединения аналоговой и цифровой земель.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F1xx: АЦП и ложные срабатывания TIM15 CC1
СообщениеДобавлено: Пн дек 24, 2012 18:51:40 
Мудрый кот
Аватар пользователя

Карма: 11
Рейтинг сообщений: 21
Зарегистрирован: Чт авг 21, 2008 22:03:30
Сообщений: 1733
Откуда: Одесса(Украина)
Рейтинг сообщения: 0
Galizin писал(а):
Можно предположить отсутвие соединения аналоговой и цифровой земель.

Спасибо человеку, коорый не полез в мою программу копаться. Проблема с землей тоже имела место быть, но после устранения странный эффект не исчез.
Но вторая проблема оказалась в возбуждении операционного усилителя. При чем он сразу начинал работать нормально, если к его выходу подключить осциллограф. А контролировать состояние выходного сигнала на процессоре в это время мне было нечем. Осциллограф то одноканальный. Дело решилось небольшим конденсатором (200 пф) на выходе ОУ.

_________________
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y