Например TDA7294

Форум РадиоКот • Просмотр темы - Программный детектор нуля используая АЦП
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 14:23:39

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


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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Программный детектор нуля используая АЦП
СообщениеДобавлено: Вс авг 13, 2017 09:03:24 
Родился

Зарегистрирован: Вс авг 13, 2017 08:38:47
Сообщений: 3
Рейтинг сообщения: 0
Здравствуйте!!!
Уважаемые объясните пожалуйста, как правильнее реализовать программно детектор нуля синусоидального сигнала 50Гц-10кГц на мк стм32 на HAL. Начиная от алгоритма до реализации, до меня самого до конца не доходит. Используя АЦП, Таймеры либо АЦП, ДМА, таймеры

Пробовал:
1) использовать оконный компаратор АЦП (Типо в референсе он как раз применяется для детектирования), задаю окно, но получается, что каждый раз, когда значение выходит за min или max у меня вызывается флаг и прерывание я считываю и проверяю значение АЦП и так постоянно это не то что нужно и ресурсно-затратно, мне нужно наоборот чтобы когда значение ацп было в окне (тоесть около нуля+ учет на дребезг) я вызывал функцию единожды, считывал ещё раз значение АЦП убеждался то что это переход через 0 с + на - или наоборот и далее делал уже то что мне нужно и опять это нужно делать единожды до следующего перехода.

2)По таймеру через каждые ххх мкс запускаю ацп, считываю значение, вычитаю середину и смотрю получился переход через ноль или нет?

3) Использую АЦП+ ДМА по набору буфера считаю среднее делаю вычисления и выводы

Но до правильного результата так и не дошел

Алгоритм нужен исходя из условий, то что одновременно переходов через ноль нужно считать до 5 штук ( пять сигналов) Ну и минимально ресурсно и трудозатратно для контроллера.

Может кто поделится опытом

Спасибо! :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный детектор нуля используая АЦП
СообщениеДобавлено: Вс авг 13, 2017 17:17:35 
Прорезались зубы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 12
Зарегистрирован: Сб янв 09, 2016 15:51:17
Сообщений: 200
Рейтинг сообщения: 0
Для компараторов значения мин/мах нужно менять после срабатывания. Значение нуля просчитывается через сумму значений буфера, но можно и аппаратно - что кстати более точно.
цикл:
1 прерывание мин (0+1), после срабатывания меняем значение мин на (0-1)
2 прерывание мин (0-1), после срабатывания вырубаем прерывание мин, и включаем прерывание мах со значением (0-1)
Произошёл переход через ноль.
3 прерывание мах (0-1), после срабатывания меняем значение мах на (0+1)
4 прерывание мах (0+1), после срабатывания вырубаем прерывание мах, и включаем прерывание мин со значением (0+1)
Произошёл переход через ноль.

Этот вариант предназначен для идеального синуса, чистого как слеза.

Для грязи лучше использовать аппаратное решение. Вариантов схем великое множество, первая попавшийся ссылка
http://www.rlocman.ru/shem/schematics.html?di=125698

_________________
sRtoS


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программный детектор нуля используая АЦП
СообщениеДобавлено: Ср окт 04, 2017 15:58:27 
Родился

Зарегистрирован: Вс авг 13, 2017 08:38:47
Сообщений: 3
Рейтинг сообщения: 0
Для компараторов значения мин/мах нужно менять после срабатывания. Значение нуля просчитывается через сумму значений буфера, но можно и аппаратно - что кстати более точно.
цикл:
1 прерывание мин (0+1), после срабатывания меняем значение мин на (0-1)
2 прерывание мин (0-1), после срабатывания вырубаем прерывание мин, и включаем прерывание мах со значением (0-1)
Произошёл переход через ноль.
3 прерывание мах (0-1), после срабатывания меняем значение мах на (0+1)
4 прерывание мах (0+1), после срабатывания вырубаем прерывание мах, и включаем прерывание мин со значением (0+1)
Произошёл переход через ноль.

Этот вариант предназначен для идеального синуса, чистого как слеза.

Для грязи лучше использовать аппаратное решение. Вариантов схем великое множество, первая попавшийся ссылка
http://www.rlocman.ru/shem/schematics.html?di=125698

Спасибо, а как бы выглядел вариант решения без использования компаратора ацп?
В моём случае - аппаратное решение не подходит


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Программный детектор нуля используая АЦП
СообщениеДобавлено: Чт окт 05, 2017 17:40:01 
Родился

Зарегистрирован: Вс авг 13, 2017 08:38:47
Сообщений: 3
Рейтинг сообщения: 0
Для компараторов значения мин/мах нужно менять после срабатывания. Значение нуля просчитывается через сумму значений буфера, но можно и аппаратно - что кстати более точно.
цикл:
1 прерывание мин (0+1), после срабатывания меняем значение мин на (0-1)
2 прерывание мин (0-1), после срабатывания вырубаем прерывание мин, и включаем прерывание мах со значением (0-1)
Произошёл переход через ноль.
3 прерывание мах (0-1), после срабатывания меняем значение мах на (0+1)
4 прерывание мах (0+1), после срабатывания вырубаем прерывание мах, и включаем прерывание мин со значением (0+1)
Произошёл переход через ноль.

Этот вариант предназначен для идеального синуса, чистого как слеза.

Для грязи лучше использовать аппаратное решение. Вариантов схем великое множество, первая попавшийся ссылка
http://www.rlocman.ru/shem/schematics.html?di=125698

+ не уточнил, что надо детектор на три фазы на одном ацп на разных каналах, и в такой реализации он не будет работать


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программный детектор нуля используая АЦП
СообщениеДобавлено: Ср окт 11, 2017 10:52:41 
Прорезались зубы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 12
Зарегистрирован: Сб янв 09, 2016 15:51:17
Сообщений: 200
Рейтинг сообщения: 0
+ не уточнил, что надо детектор на три фазы на одном ацп на разных каналах, и в такой реализации он не будет работать

Логично что не будет, да и не должен при таком применении.
Для промышленного выпрямления напряжения симисторами применяются датчики направления тока, ну это как измерение напряжения десяти ватным резистором. Вся суть в том что симистор должен включаться в момент когда через него может течь ток в нагрузку, а не наоборот.
Нагрузка бывает разной, особая весёлость - трёхфазный двигатель. Чуть проще - трансформатор, и ещё проще - получение постоянного напряжения. Регулировать симисторами резистивную нагрузку в фазовом режиме - просто глупо, там проще применить реле.

В целом подобное управление собирается на аналоге, но если очень хочется - то можно и на мк. Датчики направления тока строго аналоговые, ущерб от фейерверка намного выше копеечной стоимости мк. Сам мк может участвовать в синхронизации процессов переключения и регулировке. Это уже чисто программный код. На таймеры можно скинуть подсчёт временных интервалов и фазы. На ацп: измерение активного напряжения фаз и нагрузки, токов каждой фазы и нагрузки. Здесь тремя линиями не обойтись, да и разрядность мала.

Но для начала нужно выяснить характер нагрузки.

_________________
sRtoS


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программный детектор нуля используая АЦП
СообщениеДобавлено: Пт окт 13, 2017 20:17:43 
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 475
Откуда: Воронеж
Рейтинг сообщения: 0
Посмотрите в сторону вейвлет преобразования. Если подобрать подходящую функцию, то по ее минимуму или максимуму можно определить где был переход через 0, но с задержкой. Но это не для очень широких диапазонов частот. И вычислительные ресурсы использоваться будут немеряно - нужно считать сумму 8-16 произведений для каждого отсчета АЦП.


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

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


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

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


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

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


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