STM32 АЦП

Очень часто стали спрашивать о работе с АЦП.
Хочу написать об этом статейку, но перед этим собрать побольше вариантов (режимов) работы для примеров.
Кому интересно предлагайте варианты, кого что интересует? :)
  • 0
  • 12 августа 2011, 12:56
  • ZiB

Комментарии (30)

RSS свернуть / развернуть
Мне было-бы интересно прочитать про работу АЦП совместно с DMA и таймером.

Алсо, я тоже собираюсь писать про АЦП, но в STM8
0
Они почти одинаковы, можно сразу продублировать восьмушку
0
Интересно. Хотелось бы реализовать измеритель скорости вращения на STM32.
0
Аппаратные и программные средства повышения точности. Как правильно внешнее опорное подать, аналоговое питание лучше подавать от основного через фильтр или от внешнего источника опорного, как на время работы АЦП вырубить все что только можно и отправить процессор в спячку дабы не шумел.
0
Год прошел я уже и забыл…
Предложение больше касалось примеров (исходников) по режимам работы АЦП.
На тему питания и средств повышения точности есть масса статей и книг.
Выключать ядро смысла не имеет. Баловался с STM32F103 менял частоты ядра и режимы работы АЦП, не заметил влияния на результат преобразования. Делал на каждом режиме выполнял несколько сотен преобразований, результат был в худшем случае N(+-1).
Например, при значении 1000 изменения были 999-1000-1001.
Это при питании аналоговой части через простой фильтр. Отдельный источник не использовал, хотя можно было попробовать.
0
Я описал одну проблему we.easyelectronics.ru/GYUR22/vybrosy-na-nozhkah-acp-v-stm32.html было бы интересно увидеть еще мнение
0
Я правильно вас понял, что и на STM32-Discovery такие же ошибки?
можете дать прошивку собранную под дисковери?
0
то что собирал в дисковери не лезет по оперативке, но я попробую сделать урезанный вариант
0
На текущий момент я использовал код, который вы указали в «статье».
На вход PA1 и PC4 подал напряжение с делителя (330 Ом + 330 Ом) через резисторы сопротивлением 5,6 кОм.
Ни каких выбросов не заметил. Скажите какие у вас тактовые частоты?
0
Конечно, кроме импульсов в момент выборки.
0
уберите делитель
частота 8x3=24мгц
0
Без делителя (с открытым входом) тоже кроме «выборок» ни чего нет.
Переключился на 24 МГц, тоже тишина.
Попробуйте прислать «свою» прошивку под дисковери.
0
Скажите какие настройки у вашего осциллографа?
частота дискретизации, при указанных осциллограммах?
Мне кажется у вас банально «не хватает» частоты дискретизации (или буффер хранения маленький) и вы видите всего лишь части импульсов (которые происходят в моменты выборки).
0
Да, действительно. Посмотрел параметры
www.hantek.ru/products/dso2250.html
у него буффер «10 КБ — 32 КБ на канал»
Увеличьте разрешение по времени, установите 1-2 мкс на клетку.
0
Или попробуйте найти аналоговый осциллограф.
0
Попытался коряво нарисовать
imageshost.ru/photo/1087260/id2462875.html
0
И всё таки на вход лучше бы поставить конденсатор (RC фильтр), номинал зависит от частоты сигнала.
0
1. я вроде смотрел на 1-2 us но не привел скриншотов — приведу как приеду
2. ярко выраженные выбросы есть не на всех ногах
3. конденсатор не всегда выход т.к. есл будут быстрые процессы то добрый вечер а маленькие ~десятк пик не спасет (я отбился оверсамплингом с фильтрацией)
0
2. зависит от выходного сопротивления источника, режима работы АЦП и т.п.
3. не согласен, нужно правильно проектировать систему.
0
2 — режимы все одинаковые
3 — считаю что все сделал правильно ибо на авр подобное устройство прекрасно работает
0
2. смените осциллограф или режим анализа у текущего, гарантирую вам результат.
3. у АВР другие параметры АЦП, в частности относительно большое входное сопротивление АЦП.
0
я проверю обязательно — но вы поверьте я бы не увидел этих штук если бы не скакал ацп — а скакал он от них
0
Вот и я говорю, если бы «правильно» спроектировали не было бы глюков.
Код приведенный вами в статье рабочий?
По моему мнению:
1) преобразования лучше делать с фиксированной частотой кратной помехе. Если я правильно понял, то у вас частота входного сигнала низкая и требуется фильтровать 50 Гц? можно тогда было выбрать частоту дискретизации 200-400Гц на канал. Сейчас бессмысленно высокая частота.
2) при постоянных преобразованиях необходимо использовать двойную буферизацию, у вас сейчас этого нет, возможно и возникают ошибки при чтении из буфера.
Сейчас я уже дома и мне не терпится проверить мою мысль )
позже отпишусь…
0
вообще это первый буфер — есть еще второй с уже отфильтрованными значениями
частота пофиг — все через дма
зы мне кажется это не то что вы думаете :), в общем жду ваших результатов
0
Двойная буферизация именно для ПДП (DMA).
Т.е. делаете двойной буфер для данных АЦП.
Настраиваете ПДП для генерации прерываний при заполнении буфера на половину и полном заполнении.
В первом обработчике используете данных из первой половины буффера, во втором соответственно вторую.
Избыточные пересылки тормозят работу основной программы (во время доступа к памяти).
Провел эксперимент.
Да, как я и говорил — неправильно используете инструмент (осциллограф).
Прошу извинить за качество и гнуснявый голос, любитель до профи далеко ):
youtu.be/VmZoZVzi660
+2
Молодец. Про выбросы из-за сэмплирования я сразу подумал, а вот про алиасинг совсем забыл.
По техническим данным — увеличенная память — метр, нормальная 16кб. В двухканальном режиме, соответсвенно, каждый канал получает по половине. При увеличении размера памяти и той же развертке повышается частота дискретизации осциллографа и эффект алиасинга снижается. Тащемта это довольно известно, но о том, что оно даст такой эффект я и не задумывался)
0
Да, у моего в сто раз меняется частота дискретизации.
Я подумал о нем когда понял, что на осциллограммах «невидно» выбросов из-за заряда входной емкости АЦП, при том, что сопротивление большое 5,1 кОм и и они по любому должны быть.
0
Ну, по идее должна не в 100, а в 64 раза — соответственно изменению количества выборок за тот же период захвата.
0
Тут я не специалист, попробовал один режим, потом другой. Посмотрел, что частота дискретизации меняется в 100 раз. Пробовал на нескольких диапазонах.
0
Доеду домой сниму пару скриншотов со своего, у меня дома цифровой Rigol DS1052E(сейчас под рукой аналоговый GOS-620) у него есть возможность изменять размер буффера.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.