|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||||||||||||
Stm32f303vc + ADC (Dual Mode) + DMA. Оцифровываем синхронно05.04.2017, 10:44. Показов 24253. Ответов 20
Добрый день. Поковырялся немного с АЦП в f303 и решил осилить Dual Mode. Вкратце зачем он нужен: у STMов заожена куча возможностей АЦП : оцифровка регулярных каналов, инжектированных каналов, и того и другого. Оцифровка одного канала или сразу секции с различными приоритетами и временами накопления для каждого канала. Так же есть прерывистый режим, когда секция разбивается на подсекции и они оцифровываются по очереди, по каждому пинку программного или внутреннего триггера. Ну и конечно данные можно вытаскивать с помощью DMA.
У меня появилась необходимость снимать показания с датчика подключенного по трехпроводной линии. Кто не в курсе, объясню: датчик представляет собой сопротивление меняющееся от температуры, казалось бы что сложного, кидаем один конец на землю пропускаем через него постоянный(известный нам) ток, а на верхнем выводе меряем падение напряжения. Но прелесть таких датчиков, в том, что они находятся непосредственно на плате, а могут находиться за углом на длинных проводах. И эти самые провода получаются включены последовательно с самим термосопротивлением. Учитывая, что dR/dT составляет доли Ома на градус, при большой длине проводов, можем обмануться на несколько градусов, что не хорошо. И тут придумали умные люди компенсацию сопротивления проводов. К верхнему или нижнему выводу присоединяется провод, параллельный выводному, и он заводится на второй канал АЦП. Зачем все это нужно: после оцифровки двух каналов мы получаем два падения напряжения : 1 - датчик + паразитные сопротивления, 2 датчик + паразитные сопротивления + паразитное сопротивления доп. провода. Найдем их разность и получим падение на проводе, ну и вычтем из первого значения две эти разности и получим чистое сопротивление датчика. При условии, что провода одной длины, одного сечения и материала. Для большей точности могут применять четырехпроводные схемы. Мое первое решение: настраиваем 2 канала АЦП в одну секцию и оцифровываем по очереди. Инициализация: Кликните здесь для просмотра всего текста
Пинаем АЦП в main: Кликните здесь для просмотра всего текста
Первые грабли: значения АЦП всегда плавают и флуктуируют, при хорошей схемотехнике флуктуации малы, но младшие разряды гуляют вверх да вниз от точного значения, да и черт с ними, потом отфильтруем. Так как преобразование происходит последовательно, между ними есть временной промежуток в который наши любимые шумы могут воздействовать по разному. Получаем картинку номер 1. Очевидно, что U(датчик+провод) должно быть > U(датчик). Но по факту из-за задержки между оцифровками показания хаотичны из за шумов. Возможно после фильтрации Условие выполнится, а вдруг нет? Тогда вся компенсация коту под хвост. И тут вступает в игру режим Dual Mode. Что это такое: в данном камне 4 независимых АЦП, 1 и 2, 3 и 4 мы можем настроить в парную работу где 1 и 3 АЦП мастера, а 2 и 4 их слейвы. В чем прелесть? В том что мы можем настроить по одному канала 1 и 2 АЦП и по пинку мастера они синхронно оцифруют данные. Так же в данном режиме есть куча разных плюшек см. в мануале. Проинициализируем и посмотрим на результаты: Кликните здесь для просмотра всего текста
На графике видно, что все стало гораздо приятнее. На глаз заметна разница между измерениями, эта разница и есть сопротивление провода. Остается только отфильтровать данные и можно считать сопротивление датчика. Данный режим может быть полезен при измерении мощности, чтобы оцифровывать ток и напряжении в один момент времени. Может кому пригодится
4
|
||||||||||||||||
| 05.04.2017, 10:44 | |
|
Ответы с готовыми решениями:
20
Stm32f303vc+ADC(Dual mode)+DMA STM32F4 Dual ADC mode Нет прерывания от DMA в режиме ADC DMA |
|
-80 / 1 / 0
Регистрация: 15.12.2019
Сообщений: 346
|
||||||
| 10.05.2021, 20:45 | ||||||
0
|
||||||
| 10.05.2021, 20:45 | |
|
stm32f407+ADC+DMA. Проблема с DMA STM32F4Discovery - ADC DMA и FSMC DMA ADC->DMA->SDIO (или NAND через FSMC) без остановки в обработчике прерываний DMA на STM32F407VG, реально или нет? ADC +DMA ADC+DMA пример Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|