STM32 АЦП шум 2

9

Я только что протестировал свой второй дизайн с STM32F2, теперь это STM32F207ZFT6, поведение АЦП такое же, как в моем первом приложении - сильный шум в АЦП.

Существенная часть схемы платы

Шум токового входа без подключенного сигнала:

сигнал получен с плавающей булавкой

Примечание. На графиках сигналов выше вертикальная ось указана в битах АЦП, а не в вольтах !; не смущайтесь его легендой «[V]», для этого теста мы использовали нашу модифицированную программу, чтобы увидеть приблизительные данные АЦП.

Тот же шум появляется даже при коротком замыкании аналогового контакта процессора на GND, как показано здесь: входной сигнал с контактом замкнут на землю

В дискретизированном сигнале есть постоянные пики более 30 LSB и более, хотя, по моему мнению, они не должны превышать 5-10 LSB.

Другие детали:

  • 2-сторонняя печатная плата, на нижней стороне есть другие соединения, но большая часть ее залита сигналом GND - общая для цифрового и аналогового, аналоговое заземление не разделено. Поскольку потребление платы минимально, ниже 100 мА, я думаю, что он не должен вызывать такой шум.

  • опорное напряжение VREF 3.3V буферизуются операционные усилители, блокируются 100nF и tantallum 10uF параллельно, то же самое с VREF / 2; каждый из выводов питания процессора заблокирован с крышкой 100 нФ

  • в нашем старом приложении мы использовали ту же концепцию дизайна, но в качестве процессора был AduC834; у него тоже есть 12-битный АЦП, и шум сигнала составлял всего несколько младших разрядов, проблем не было; Основное отличие в том, что не был использован AduCs внутренний источник опорного напряжения, никакой внешней один

  • мы проверили, чтобы отсоединить контакт заземления аналогового заземления процессора от общего заземления платы и подключить его дополнительным проводом непосредственно к эталонному заземлению VREF, никакого эффекта

  • это трехфазное сетевое измерительное устройство, имеется 3 аналоговых канала напряжения и три токовых канала с переключаемым предварительным усилителем усиления; генератор ЦП 25 МГц, внутренние тактовые частоты 120 МГц от PLL, тактовые частоты АЦП - 30 МГц (в соответствии с техническими характеристиками), мы протестировали замедление основных внутренних тактовых импульсов (а следовательно, и всех вторичных тактовых импульсов) до одной четверти, но без какого-либо эффекта

  • АЦП периодически дискретизирует входной сигнал с частотой 128 преобразований на период сети 50 Гц, т.е. каждые 156 мксек; результаты передаются DMA во внутреннюю память; Данные из ОЗУ передаются через изолированный RS485 (на другую плату) и визуализируются в нашей программе. Мы пытались продлить время конверсии до максимума, без эффекта

  • без ЦП, есть только 3 операционных, 2 аналоговых переключателя, термометр I2C и три ULN-переключателя (неиспользуемые во время теста), питание от линейного стабилизатора LF33, обычно питание от 5 В постоянного тока от коммутатора на другой плате, но во время теста коммутатор был был отключен, и LF33 питался от чистой лабораторной сети постоянного тока 5 В. Я уверен, что ничего, кроме генератора процессора не может колебаться на плате.

  • проверка сигнала с помощью осциллографа не дает решающих результатов, сигнал слишком слабый

Кто-нибудь с этим опытом семейства процессоров ADC производительности?

Что касается силы сигнала: даже если аналоговый вход замкнут накоротко, я вижу шум 5-10 мВ (от пика до пика) на осциллографе - измеренный с помощью коаксиального кабеля с минимальной длиной провода заземления, припаянной к плате. При использовании стандартного зонда шум был примерно вдвое выше, вероятно, из-за плохого заземления (общий шум ЭМС?).

Это изображение моей доски: изображение собранной доски

И нижняя часть платы: изображение нижней части доски

Как я уже говорил выше, даже если сигнал заземлен, в преобразованных данных АЦП все еще сохраняется шум около 30 младших битов.

Милан
источник
Вы говорите, что сигнал слишком слабый, насколько он слаб?
Кортук
Я также сообщил о своей проблеме на форуме ST, там есть все ссылки (включая фотографию на доске): my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/…
Милан,
2
Я не вижу где-нибудь достаточно обводных колпачков на той плате, чтобы мне было комфортно, и все они довольно далеко составляют часть.
Коннор Вольф
2
@ Фальшивое имя - Милан не использует термин неправильно, ссылка на «x LSB's» относится к x умноженному на линейное значение младшего значащего бита. Однако «x битов шума» могут относиться к 2 ^ x LSB.
Крис Страттон
3
@ Крис Страттон - я не согласен. «x битов шума» является синонимом «x LSBs». Таким образом, выражение «x умноженное на значение LSB» будет означать x умноженное на линейное значение младшего значащего бита. Однако x LSB означает x младших значащих битов или линейный диапазон 2 ^ x.
Коннор Вольф

Ответы:

4

Я бы сказал, что АЦП имеет 4-й вход в дополнение к трем, указанным Фредом: его часы. По крайней мере, для некоторых типов АЦП дрожание или фазовый шум на тактовой частоте могут повлиять на измерения АЦП.

Вы говорите, что у вас есть генератор на 25 МГц, но АЦП работает на частоте 30 МГц, поэтому у вас есть несколько ФАПЧ, участвующих в генерации его тактовой частоты. Если это не работает должным образом, его нерегулярность может быть источником шума преобразования. Можете ли вы попробовать изменить конфигурацию программного обеспечения (даже временно), чтобы не использовать ФАПЧ, а просто отключить входные часы или разделить их?

Я полагаю, что некоторые микроконтроллеры также имеют механизм для приостановки большей части цифровых схем во время считывания АЦП, чтобы уменьшить шум. Вы можете посмотреть, возможно ли что-то подобное.

Крис Страттон
источник
2

Есть много возможных причин шума, который вы видите. Важно понимать, что АЦП имеет ТРИ входа:

  1. Входной контакт (ы) (тот, который предназначен для ввода сигнала)
  2. Эталонный вход (ы) (Dout = 2 ^ n * Vin / Vref)
  3. Штырьки питания (питание + гнд)

Шум на любом из них может создать шум, который вы видите, и, предполагая, что сам АЦП не неисправен, шум должен проникать через один из этих трех путей.

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

В этом контексте контур представляет собой весь токовый путь, по которому линия сигнала или источника питания (которая в этом контексте должна рассматриваться как «шумовой» сигнал) проходит по печатной плате. Таким образом, для линии электропитания это будет от того места, где питание поступает на плату, вдоль трассы до тех пор, пока оно не дойдет до вывода питания, через все транзисторы в ИС, через вывод заземления, затем по пути наименьшего сопротивления обратно к где сила входит в плату. Это одна петля питания.

Но если вы хорошо справляетесь с обходом питания, в этом контуре не будет много переменного тока, потому что у вас будет намного меньшая, более локализованная петля стороны питания от крышки байпаса к контакту питания к контакту заземления и обратно к земле сторона обходной крышки. Если все ваши цифровые источники питания плотно обойдены, ваша цепь питания будет в основном чистой, а все цифровые шумы ограничены короткими обходными контурами крышки.

Сигнальные контуры (включая петлю Vref) работают таким же образом - сигнал поступает, направляется к АЦП, выходит на АЦП GND и возвращается на землю сигнала (возможно, в том же месте, где начался сигнал). Если эта петля пересекает цифровую петлю, вы можете ввести шум. Поэтому, как правило, хороший дизайн со смешанным сигналом, в котором используется один GND для аналогового и цифрового, будет держать цифровое все на одной стороне, а аналоговое - на другой, с GND на конце платы прямо в точке разделения. Обычно это не так просто, нужно идти на компромиссы, но это идея.

Ваше упоминание "Поскольку потребление платы минимально, ниже 100 мА, я думаю, что это не должно вызывать такой шум". Это больше связано с тем, насколько хорошо система обойдена. Система 100 мА с плохим байпасом будет иметь намного больший цифровой шум в заземленной плоскости, чем система 1000 мА с хорошим байпасом.

Надеюсь это поможет...

Фред Гамильтон
источник
1

Дизайн доски действительно не соответствует рекомендованным общим правилам.

Мы еще раз проверили это. Типичный шум стандартной платы показан на Рис.1 по адресу http://imgur.com/a/TU9RQ .

Чтобы подтвердить, что проблема вызвана неправильным заземлением, мы сделали следующие модификации:

  • усиленное общее заземление (модифицированная плата на рис. 2 и соответствующий шум на рис. 3)
  • отделение аналогового заземления от цифрового и их взаимное соединение на выводе процессора VSSA (рис. 4).

Никто из них не помог. Поэтому я боюсь, что проблема может возникнуть снова даже после перепроектирования 4-слойной печатной платы…

Чтобы проверить влияние ФАПЧ, мы отключили его, и ядро ​​было синхронизировано только внешним кристаллом 25 МГц. Шум снизился (рис. 5), но я думаю, что он был вызван только более низкими тактовыми частотами системы (обычно ядро ​​тактируется частотой 120 МГц ФАПЧ), а не остановленной ФАПЧ, потому что когда мы переключились обратно на ФАПЧ в 25 МГц, шум был такой же, как и без работы ФАПЧ.

Единственный заметный эффект был достигнут путем измерения сигнала VREF / 2 через отдельный вывод процессора одновременно с каждой парой напряжения и тока с использованием третьего процессора АЦП и вычитания его из сигналов напряжения и тока - тогда модулированный шум уменьшается примерно до половины (при http : //imgur.com/a/EeqUo , верхний красный график = стандартный сигнал, нижний синий график = сигнал после измеренного вычитания шума). Но я не могу использовать третий АЦП для измерения шума, он мне нужен для другой задачи, так что это не решение для меня.

Милан
источник
1
Это не ответ и поэтому не должен был публиковаться как таковой. Тем не менее, тактовая частота PLL-входа на АЦП при входном генераторе 1: 1, вероятно, намного чище, чем при соотношении их чуда. Если вы подозреваете шум общего режима, вам нужно взглянуть на то, что объединяет все каналы ...
Крис Страттон,
Обычно внешние осцилляторы 25 МГц внутренне делятся на 1 МГц, и эта частота используется для управления ФАПЧ; его системная тактовая частота 120 МГц делится на 4, чтобы получить тактовую частоту АЦП 30 МГц. Во время теста системная тактовая частота составляла 25 МГц (как напрямую от ext osc, так и с использованием PLL), и АЦП управлялся с него напрямую (предварительный счетчик установлен на 1), то есть он работал на тех же 25 МГц. Что касается вашей второй идеи, вы имеете в виду, вероятно, переключение ядра в спящий режим во время преобразования АЦП; АЦП обслуживаются DMA, которые нельзя просто отключить. Но, хотя в нашем приложении его нельзя использовать, я согласен, что было бы интересно попробовать.
Милан
Уточняю мой предыдущий комментарий: я забыл, что на выходе PLL есть делитель; так что на самом деле обычно PLL работает на частоте 240 МГц и делится на два, чтобы получить системные часы; во время теста ФАПЧ работает на частоте 200 МГц и делится на восемь, чтобы получить системные частоты 25 МГц.
Милан
@ChrisStratton, кажется, подробно рассказывает, как он решил проблему, разве это не похоже на ответ?
Кортук
2
@Kortuk "Никто из них не помог. Поэтому я довольно боюсь, что проблема может возникнуть снова даже после перепроектирования 4-слойной печатной платы ..." Мне кажется, этот ответ должен быть добавлен в качестве редактирования исходного вопроса. Его второй ответ, кажется, описывает, как он решил проблему.
м.Алин
1

Я перепроектировал печатную плату в 4 слоя. И - какой сюрприз - шум выключен! Более подробная информация здесь .

Милан
источник
4
Ты что, с ума сошел! URI из 319 (!) Символов, даже без гиперссылок?
Стивенвх
1
Ссылка не работает, я думаю, что она здесь сейчас - community.st.com/thread/19850
ogurets
1
@ogurets И он снова сломался. Я ненавижу ссылки на ссылки и форумы поставщиков. «Страница, которую вы искали, была перемещена или не существует».
Навин
1
@ Navin Я так чувствую твою боль ... Googled "STM32F2 ADC Signal Noise", дата публикации 28 октября 2011 г. (в следующий раз, когда они его перемещают): community.st.com/s/question/0D50X00009XkaFz/…
ogurets
@ogurets Спасибо! Мне было любопытно о предыстории.
Навин