Как реализовать аналоговый компаратор 3 канала на STM32F103

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Lihodey
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс май 26, 2013 12:30:08

Как реализовать аналоговый компаратор 3 канала на STM32F103

Сообщение Lihodey »

Здравствуйте. Есть задача реализовать детектор нуля трех фаз на МК STM32F103C8T6. Реализацию хотел сделать полностью аппаратно. Я настроил Вочдог АЦП на инжектированную группу из трех каналов. Выбрал именно инжектированную группу потому, что у этих каналов есть свои отдельные регистры хранения результата. Срабатывает прерывание по вочдог и я смотрю регистры инжектрованных каналов, в идеале должно быть так, что в двух регистрах должно быть число близкое 4095 а в третьем регистре число близкое к 0. На входы ацп я подаю сгенерированный ШИМ сигнал с другой платы, там на всех каналах высокий уровень и периодические импульсы в 0 сдвинутые между собой на 60град или 3.3мс.
Запускаю преобразование инжектированной группы по таймеру 1 аппаратно. Копирую данные из регистров инжектированных каналов по прерыванию вочдог. Проблемма в том, что результат периодически таков, что во всех трех регистрах данные не удовлетроряющие диапазону Вочдог тоесть например 4001 4000 3894. Или 0 3586 0. В идеале должно быть 0 1 1 или 1 0 1 или 1 1 0. Чтобы я мог понять какая фаза вызвала прерывание. Но результат таков. Помогите, пожалуйста разобраться. Кто имел дело с задачей использования аналогового компаратора для нескольких каналов?
Использую CubeIDE
Вложения
Снимок2.PNG
Это нормальная ситуация
(193.37 КБ) 489 скачиваний
Снимок.PNG
Так быть не должно
(193.99 КБ) 483 скачивания
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15574
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение BOB51 »

Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG
8)
Реклама
Lihodey
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс май 26, 2013 12:30:08

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение Lihodey »

[uquote="BOB51",url="/forum/viewtopic.php?p=3682396#p3682396"]Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG
8)[/uquote]
Нельзя поставить. Задача то отследить ноль, чтобы потом с этим что-то делать дальше, а именно открывать тиристоры. Реализация интересует только программная и только на STM32F103
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение ПростоНуб »

Lihodey, проблема в том, что АЦП в МК только один. Просто вход его коммутируем и преобразование можно запустить на каждом из входов. Потому я и поддержал мнение BOB51. Проще поставить, например, один LM324 в качестве трех аппаратных компараторов.
Реклама
Эиком - электронные компоненты и радиодетали
Lihodey
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс май 26, 2013 12:30:08

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение Lihodey »

[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3682407#p3682407"]Lihodey, проблема в том, что АЦП в МК только один. Просто вход его коммутируем и преобразование можно запустить на каждом из входов. Потому я и поддержал мнение BOB51. Проще поставить, например, один LM324 в качестве трех аппаратных компараторов.[/uquote]
Наверное Вы меня не поняли, а я возможно немного выразился неправильно. Аппаратно имеется ввиду периферийно, тоесть средствами МК, а не внешними схемами. Внешняя схема формирования импульса при переходе через ноль к определению этого события в программе не имеет никакого отношения.

Добавлено after 8 minutes 12 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
Прилагаю проект конфигурации CubeMX. Замените расширение файла из .jpg в конце имени файла на .ioc
разрешение запрещено администратором. и не прикладывался файл. Должно получиться MTP-PRA.ioc
Вложения
MTP-PRA.jpg
(8.56 КБ) 514 скачиваний
Реклама
Аватара пользователя
pasha_zv
Мучитель микросхем
Сообщения: 460
Зарегистрирован: Пт фев 17, 2017 11:18:07
Откуда: Ставрополь-Донское

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение pasha_zv »

три оптопары, три диодных моста. чуток сопротов
на выходе получаем ЦИФРОВОЙ сигнал
выплески - твои НУЛИ. их на прерывания.

какой нах АЦП?
LIVE - EVIL
Реклама
Lihodey
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс май 26, 2013 12:30:08

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение Lihodey »

[uquote="pasha_zv",url="/forum/viewtopic.php?p=3682444#p3682444"]три оптопары, три диодных моста. чуток сопротов
на выходе получаем ЦИФРОВОЙ сигнал
выплески - твои НУЛИ.

какой нах АЦП?[/uquote]

Складывается впечатление,что вы не в курсе, что такое Вочдог АЦП. АЦП потому что у стм32 нету компаратора на борту. И это типа замена аналог компаратору.

Добавлено after 2 minutes 31 second:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
Вопрос по программированию, прекратите лепить в эту тему свои схемы аналоговые с оптронами и прочей лабудой. Внешняяя схема доставляет информацию в МК а уже в МК необходимо эту информацию обработать. Проблема в теме именно в обработке, захвате события когда на ножке происходит отрицательный импульс.

Добавлено after 37 minutes 15 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
Разобрался. Тему закрыть можно
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение 240265 »

У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?
IVL ex UA6PJ
Lihodey
Открыл глаза
Сообщения: 42
Зарегистрирован: Вс май 26, 2013 12:30:08

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение Lihodey »

[uquote="240265",url="/forum/viewtopic.php?p=3682741#p3682741"]У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?[/uquote]
Да, прерывание происходит именно когда результат выходит за 2000-4095 тоесть меньше 2000. Все получилось уже. Тема не актуальна. Проблема была в восприятии поочередного измерения каналов. Я своими брекпоинтами сам себя запутал. Просто такое нельзя симулировать шагая по брекпоинту. У меня в одном регистре были старые данные а в другом новые. А так данная реализация полностью справляется с определением нуля именно в той фазе которая вызвала прерывание.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: Как реализовать аналоговый компаратор 3 канала на STM32F

Сообщение 240265 »

Точно , не внимательно прочитал "При его выходе из указанной области будет установлен флаг AWD со всеми вытекающими последствиями."

Добавлено after 2 hours 59 minutes 12 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
http://mycontroller.ru/old_site/stm32-a ... efault.htm
IVL ex UA6PJ
Ответить

Вернуться в «ARM»