Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Ср авг 14, 2019 09:39:33

Здравствуйте. Есть задача реализовать детектор нуля трех фаз на МК 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 KiB) Скачиваний: 423
Снимок.PNG
Так быть не должно
(193.99 KiB) Скачиваний: 436

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

Ср авг 14, 2019 09:52:14

Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG
8)

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

Ср авг 14, 2019 09:59:50

Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG
8)

Нельзя поставить. Задача то отследить ноль, чтобы потом с этим что-то делать дальше, а именно открывать тиристоры. Реализация интересует только программная и только на STM32F103

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

Ср авг 14, 2019 10:12:21

Lihodey, проблема в том, что АЦП в МК только один. Просто вход его коммутируем и преобразование можно запустить на каждом из входов. Потому я и поддержал мнение BOB51. Проще поставить, например, один LM324 в качестве трех аппаратных компараторов.

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

Ср авг 14, 2019 10:26:35

Lihodey, проблема в том, что АЦП в МК только один. Просто вход его коммутируем и преобразование можно запустить на каждом из входов. Потому я и поддержал мнение BOB51. Проще поставить, например, один LM324 в качестве трех аппаратных компараторов.

Наверное Вы меня не поняли, а я возможно немного выразился неправильно. Аппаратно имеется ввиду периферийно, тоесть средствами МК, а не внешними схемами. Внешняя схема формирования импульса при переходе через ноль к определению этого события в программе не имеет никакого отношения.

Добавлено after 8 minutes 12 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
Прилагаю проект конфигурации CubeMX. Замените расширение файла из .jpg в конце имени файла на .ioc
разрешение запрещено администратором. и не прикладывался файл. Должно получиться MTP-PRA.ioc
Вложения
MTP-PRA.jpg
(8.56 KiB) Скачиваний: 478

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

Ср авг 14, 2019 11:01:11

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

какой нах АЦП?

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

Ср авг 14, 2019 11:44:09

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

какой нах АЦП?


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

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

Добавлено after 37 minutes 15 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
Разобрался. Тему закрыть можно

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

Ср авг 14, 2019 21:36:37

У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?

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

Сб авг 17, 2019 09:37:35

У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?

Да, прерывание происходит именно когда результат выходит за 2000-4095 тоесть меньше 2000. Все получилось уже. Тема не актуальна. Проблема была в восприятии поочередного измерения каналов. Я своими брекпоинтами сам себя запутал. Просто такое нельзя симулировать шагая по брекпоинту. У меня в одном регистре были старые данные а в другом новые. А так данная реализация полностью справляется с определением нуля именно в той фазе которая вызвала прерывание.

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

Сб авг 17, 2019 14:47:44

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

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