Страница 1 из 1
Как реализовать аналоговый компаратор 3 канала на STM32F103
Добавлено: Ср авг 14, 2019 09:39:33
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
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 09:52:14
BOB51
Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG

Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 09:59:50
Lihodey
[uquote="BOB51",url="/forum/viewtopic.php?p=3682396#p3682396"]Может проще три аппаратных детектора нуля поставить?
http://img.radiokot.ru/files/20529/1r6lu2clr1.JPG

[/uquote]
Нельзя поставить. Задача то отследить ноль, чтобы потом с этим что-то делать дальше, а именно открывать тиристоры. Реализация интересует только программная и только на STM32F103
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 10:12:21
ПростоНуб
Lihodey, проблема в том, что АЦП в МК только один. Просто вход его коммутируем и преобразование можно запустить на каждом из входов. Потому я и поддержал мнение BOB51. Проще поставить, например, один LM324 в качестве трех аппаратных компараторов.
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 10:26:35
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
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 11:01:11
pasha_zv
три оптопары, три диодных моста. чуток сопротов
на выходе получаем ЦИФРОВОЙ сигнал
выплески - твои НУЛИ. их на прерывания.
какой нах АЦП?
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 11:44:09
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
Разобрался. Тему закрыть можно
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Ср авг 14, 2019 21:36:37
240265
У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Сб авг 17, 2019 09:37:35
Lihodey
[uquote="240265",url="/forum/viewtopic.php?p=3682741#p3682741"]У тебя диапазон заряжен 2000-4095 , а ловить хочешь 0 ?[/uquote]
Да, прерывание происходит именно когда результат выходит за 2000-4095 тоесть меньше 2000. Все получилось уже. Тема не актуальна. Проблема была в восприятии поочередного измерения каналов. Я своими брекпоинтами сам себя запутал. Просто такое нельзя симулировать шагая по брекпоинту. У меня в одном регистре были старые данные а в другом новые. А так данная реализация полностью справляется с определением нуля именно в той фазе которая вызвала прерывание.
Re: Как реализовать аналоговый компаратор 3 канала на STM32F
Добавлено: Сб авг 17, 2019 14:47:44
240265
Точно , не внимательно прочитал "При его выходе из указанной области будет установлен флаг AWD со всеми вытекающими последствиями."
Добавлено after 2 hours 59 minutes 12 seconds:
Re: Как реализовать аналоговый компаратор 3 канала на STM32F103
http://mycontroller.ru/old_site/stm32-a ... efault.htm