LINUX.ORG.RU

Как развести питание аналоговой части stm32xxx?

 , ,


0

4

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

На схемах из интернетов видел такие вещи:

  • RC-фильтр
  • LC-фильтр
  • «проходной» фильтр, типа LC, но вместо L «трубка с продетым проводом».
  • та же конструкция с псевдо-индуктивностью (не знаю названия), но не только в разрыве аналогового плюса, но и в разрыве аналоговой земли.

Хотелось бы комментариев:

  1. A как вообще «правильно»? И какие еще есть варианты.
  2. Можно ли питать процессор от мегагерцовой импульсной понижайки без промежуточного аналогового LDO, или про точность АЦП можно забыть? Вроде по паспорту там пульсации порядке 10мВ - не так уж и много (нужно мерить ~ 1мв, и есть возможность юзать программные накопительные фильтры).
★★★★★

Последнее исправление: Vit (всего исправлений: 1)

Да что ты переживаешь с этими 12 битами-то? Соединяй, как обычно, только земляной полигон побольше и желательно отдельное aref.

Вот если б ты с 24-битными АЦП заморочился, было бы совсем другое дело!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

хех, но это не так) и для 12 бит с приличными сигнал шум требуются раздельное питание включая земленые полигоны и точная опора. Вообще с такими хотелками надо перелезать в инструментальную элементную базу. И первое что надо сделать вычитать спеку на предмет шума самого ацп, большинство 12 битных ацпшек в дешевых контрошках сплошная фикция и по факту можно получить лишь 8-9 бит, остальное будет шум из которого можно еще немного выдавить математикой.

anonymous
()
Ответ на: комментарий от anonymous

большинство 12 битных ацпшек в дешевых контрошках сплошная фикция и по факту можно получить лишь 8-9 бит, остальное будет шум из которого можно еще немного выдавить математикой.

Вот и я о том! Там зачастую стоят R2R, а никак не сигма-дельта. Да и сами процессы внутри МК шумят прилично. Даже если на входе стоит тупой резисторный делитель с микрофарадным кондеем для гашения шумов, младший бит все равно будет плавать!

В остальном же у STM'ок вполне приличный по линейности АЦП. Я сравнивал как-то с 24-битным, увидел, что для измерения температуры в криостате с точностью до 0.1К на азоте и 1°C при комнатной температуре достаточно использовать внутренний АЦП STM'ки. И оно вполне работало даже без внешней опоры!

ТС, почитай книжку Бонни Бейкер (что-то вроде «что нужно знать цифровому разработчику об аналоговой электронике»). Очень понятно пишет. Ну и у микрочипа были разумные руководства по разводке смешанных цепей.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

в каком-то из тредов я уже писал, что нужен масштабник для 1мВ. Но видимо так и не почитал ТС и не прикинул погрешности.

ну так, для затравки, есть инструментальные опорники на 1,024В Возьмем не самое дерьмовенькое 8LSB да да, в спеках указываются обычно отсчеты а не биты. Итаг 1,024/4095*8 упс 2мВ шума. Не забудем, что мы взяли мультика, а там еще будет адик, а адик обычно больше, его конечно можно выбрать калибровкой, но для этого нужна возможность двигаться, а мы тут блин внизу застряли уже.

anonymous
()

Вообще прикинуть точность опорного напряжения можно как LSB/2. При такой опоре можно ожидать более или менее вменяемых статических характеристик АЦП. Если точность опоры хуже, то в общем случае поведение линейных характеристик предсказать нельзя. Они однозначно поплывут, но как будет зависеть от архитектуры АЦП. В основном, сейчас принято использовать SAR ADC с двоичновзвешанной матрицей конденсаторов в качестве ЦАП, неточность опоры приведёт к появлению всплесков в DNL и INL, особенно у старших разрядов.

Если есть возможность использовать фильтры, то это означает, что сигнал вы будете похоже оверсамплить. Oversampling всегда улучшает эффективную разрядность по формуле Fos=(4^w)Fs, где w — это дополнительные биты в ENOB. «Вытащить» их можно и простым усреднением.

Кроме того, раз есть oversampling, то значит можно и нужно использовать антиалиасиноговый фильтр (можно и RC) на входе с частотой среза около максимальной частоты входного сигнала.

simplere
()
Ответ на: комментарий от anonymous

Мне надо в итоге 10 бит для измерения температуры. Можно с программными фильтрами.

Суть вопроса - можно ли юзать импульсную мегагерцовую понижайку для питания, или она все засрёт в хлам. Если можно - как дешево и сердито аналоговое питание «пофильтровать», и надо ли это вообще.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

я уже писал тебе про постановку задачи. и опять 1мВ :) сколько значащих цифр хочешь, какой диапазон температуры, планируется ли нормальная опора, и наконец поясни откуда преславутый мВ? можно мерить даже с шумным питанием, но все это требует дополнительного обвеса, пассивные фильтры тут на самом деле слабо помогут. пример я кинул тебе выше, более подробно можно посчитать погрешности только зная весь обвес, пока все выглядит плохо, даже без учета погрешности внешней опоры. я понимаю, хочется проще и думаю что можно сделать, но надо сесть и переосмыслить схематику

Morin ★★★★
()

если не хочешь линейный регулятор, то поставь кондёр по питанию побольше и вырубай свой импульсник на время измерения. но для 1 мв надо бы усилитель. а то у тебя ошибка ацп сравнима с измеряемой величиной получается. как тут рекомендуют делать rc на входе ацп — так не надо, любая лишняя ёмкость будет только добавлять погрешности и нелинейности. лучше поставь буфер.

линукс тут, кстати, при чём?

anonymous
()
Ответ на: комментарий от Vit

Дешево и сердито не получится. Хоть как-то выдавить «вменяемых» 10 бит из встроенного в STM32 АЦП можно лишь с хорошей опорой, хорошей обвязкой по питанию, с правильной разводкой платы и термоизоляцией контроллера. Дешевле будет взять «нормальный» внешний АЦП.

baldman88
()
Ответ на: комментарий от Morin

Да, чота я запизделся насчет милливольта. 2.5-5 должно хватить.

Смотри, я пытаюсь перерисовать микропаялку под USB-PD. Питание там скачет в диапазоне 5-20 вольт, ток контроллера и подсветки дисплея в сумме ~100-200ма. Без импульсной понижайки будет тоскливо.

Ну и надо температуру MCH нагревателя мерить, желательно с точностью до градуса. Хочется обычным делителем с PT1000 в плече. Навскидку, это 9-10 разрядов (не обязательно аппаратных и за одно измерение). Ну если 3.3 вольта (питание АЦП) поделить на 512-1024, то примерно получится как написал.

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

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Я тебе уже писал выше, без внешнего обвеса будет пшик. Сам же указал, шум стабилизатора 10мВ, ну и как ты собрался мерить 5? если твоя опора шумит на 10. С хорошей внешней опорой и нормальной разводкой 5мВ уже можно выловить

anonymous
()
Ответ на: комментарий от Vit

Тебе нужна точность измерения температуры жала где-то в районе ±5°C (лучше не имеет смысла). На температуре в 300°C это получается 573/5=115 отсчетов, если бы сопротивление менялось линейно. Но т.к. оно меняется нелинейно, делаем финт ушами и подключаем терморезистор в качестве одного из плеча делителя так, чтобы скорость изменения напряжения от температуры в районе 300°C была наибольшей.

Половину разрядов ты потеряешь, т.к. напруга у тебя будет в районе Vref/2. Еще часть потеряешь, т.к. при комнатной температуре будет далеко не нуль или Vref. Однако, у тебя, возможно, сопротивление терморезистора будет меняться в 2 раза или даже больше → ты имеешь минимум 1/4 диапазона 12-битного АЦП. Это — почти честные 10 бит. Даже при некоторых шумах ты все равно сможешь сделать оверсемплинг, т.к. STM32 достаточно шустро работает с АЦП и можно по DMA фигачить по 100 измерений, а потом вычислять их медианное значение → шумы падают в 10 раз. Т.е. можно сказать, что твои 9 бит будут честными. 9 бит на шкале в 300°C — это чуть ли не ±0.5°C! Такая точность тебе нафиг не нужна, ясное дело, но лучше лучше, чем хуже.

Импульсное питание тебе особо не повредит, главное — где-нибудь в противоположном углу от МК и аналоговых цепей располагай импульсник. Ставь побольше кондеров. Раздели аналоговую и цифровую земли, объединив их не более чем в одной точке через дроссель. И все будет хорошо.

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Morin

Кстати, насчет предыдущей схемы. А ты имел дело с MP150? С виду как lnk302/306, только дешевле, компактнее, и не греется. В чем подвох-то?

Vit ★★★★★
() автор топика
Последнее исправление: Vit (всего исправлений: 1)
Ответ на: комментарий от Vit

Не, с такой не работал, надо доки вычитывать. Стоимость обычно складывается из квот на поставку и бренда. Как только у компонента появляются аналоги они начинают демпинг, иначе не будут продаваться :)

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

anonymous
()
Ответ на: комментарий от Vit

А ну так бегло глянул, максимальные характеристики разные, ну собственно это может пояснить разницу

anonymous
()
Ответ на: комментарий от anonymous

Да не, посмотри MP157, по току они нормально вывозят.

Я думал там что-то с несущей и модуляцией не так.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

Drain to SOURCE .........................-0.3V to 500V

:) ну читай же не только то, что тебе интересно, там еще отличия есть

anonymous
()
Ответ на: комментарий от Vit

А зачем тебе при таком микропотреблении (значительно меньше 200мА) городить импульсник, когда можно воткнуть диод, кондерную цепочку и стабилитрон с резистором?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Ты прав. На 700 у MP тоже есть, но на LCSC нема. Вот прикольная табличка: http://www.szhuge.com/file/productpdf/1551026915894900.pdf

Для сетевой понижайки 500 вместо 700 может быть критично?

Меня привлекает то, что MP-шки не греются, в отличие от LNK, и покомпактнее. Хотя в аппнотах расписана только стандартная обратная связь, с диодом и делителем. Вариант с оптроном не доложили.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

не не не, на 200мА делать на голом стабилитроне, что-то через край, транзистором усиливать придется. ну и стабилизация с окуительным разбросом от экземпляра к экземпляру

anonymous
()
Ответ на: комментарий от Vit

смотря что за схема, там где все звенит иголками да, может быть критично, насмотрелся я проколотых полевиков

anonymous
()
Ответ на: комментарий от Vit

типовое применение это хорошо, но кто же запрещает изгаляться? :)

пробуй, в твоем случае должно работать

Morin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.