|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||||||||||||
Stm32f303vc + ADC (Dual Mode) + DMA. Оцифровываем синхронно05.04.2017, 10:44. Показов 24057. Ответов 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 пример Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|