Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4 ADC Excessive noise level
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
pitt
Noise level is over 5 LSB. Why? My options?

Using 480 cycles, INJ registers, ADC3, changing prescaler... Don't see improvement.

Let me clarify what I mean 5 LSB: it isn't +/- 5 clocks but 2^5.
scifi
На схему и на разводку смотреть надо. У меня такого безобразия (32 отсчёта) даже близко не было.
Genadi Zawidowski
Шум такого же порядка наблюдался при измерении встроенного источника образцового напряжения, когда я забыл его включить... Но это канал №17.
pitt
Цитата(scifi @ Sep 23 2015, 11:17) *
На схему и на разводку смотреть надо. У меня такого безобразия (32 отсчёта) даже близко не было.

Thanks for reply.
Unfortunately it is out of my control... Schematics looks clean, nothing really suspicious. Traces, routing and other EE stuff is over my level of expertise.
EmbedElektrik
Цитата(pitt @ Sep 23 2015, 18:34) *
Thanks for reply.
Unfortunately it is out of my control... Schematics looks clean, nothing really suspicious. Traces, routing and other EE stuff is over my level of expertise.

Could you share your code? It seems that there are some mistakes in initialzation of GPIO, RCC or ADC. Check it again.
ШСА
Цитата(scifi @ Sep 23 2015, 18:17) *
На схему и на разводку смотреть надо. У меня такого безобразия (32 отсчёта) даже близко не было.

Верно, надо смотреть схему. У него используются инжектированные каналы, а при некоторых схемных решениях, вполне невинных на первый взгляд, каналы могут влиять друг на друга. Пять разрядов ошибки, конечно, многовато, но 4 разряда получить вполне реально. Кое что об этом есть вот тут:"http://we.easyelectronics.ru/STM32/demony-v-acp-stm32.html".
ViKo
Во-первых, 5 LSB != 32.
Питание посмотрите, насколько оно чистое.
scifi
Цитата(ViKo @ Sep 24 2015, 08:15) *
Во-первых, 5 LSB != 32.

Поначалу я тоже так подумал. Но наш нерусскоговорящий друг утверждает иное. Языковой барьер, видимо wacko.gif
Golikov A.
а почему 5 младших меняющихся бит не дают 32 амплитуды?
scifi
Цитата(Golikov A. @ Sep 24 2015, 09:23) *
а почему 5 младших меняющихся бит не дают 32 амплитуды?

Потому что "5 LSB" в таком контексте во всех текстах, которые я видел до этого, означало "5 отсчётов", а не "5 битов".
ИМХО, товарищ русский уже забыл, а английский ещё не выучил crying.gif
Golikov A.
а вот и нет...
LSB - Least Significant Bit
то есть 5 LSB - это 5 младших бит. Возьмите буржуйское АЦП, там типичные и средние шумы +-1, 0.5 LSB и даны всякие описания типа
Цитата
The LSB is the smallest increment that can be represented by a
converter. For an analog-to-digital converter with N bits of
resolution, the LSB expressed in volts is Vref/2^N


Так что скорее у нас часто это термин перевирается... да и где у нас?... вот я когда последний раз описывал шум использовал термин коды, то есть шумит 5 кодов, - 2,3 бита...
scifi
Цитата(Golikov A. @ Sep 24 2015, 10:45) *
а вот и нет...

А вот и да.
Почитайте, к примеру, тут.
Это аналоговые девицы, они в этих делах не одну собаку съели. Вот, к примеру, цитата, которая не допускает разных толкований: "the total range (or span) of an N-bit ADC is 2N LSBs".
smalcom
во-первых, LSB - младший значащий бит. Выборка/отсчёт - это sample. Кто бы вам что ни написал, там баптисты зашли и тащат новую религию с новым значением LSB. Нифига: LSB - это младший значщий бит.
во-вторых.
"the total range (or span) of an N-bit ADC is 2N LSBs". => диапазон N-битного АЦП - 2^N бит => вода мокрая.
в-третьих, сами читайте, что даёте
"noise is approximately one least-significant bit (LSB)"
ViKo
Не дурите голову. 5 LSB - 5 единиц младшего разряда. LSB - он один такой, least. Двух-трех самых младших не бывает. rolleyes.gif
Tanya
Цитата(ViKo @ Sep 24 2015, 12:36) *
Не дурите голову. 5 LSB - 5 единиц младшего разряда. LSB - он один такой, least. Двух-трех самых младших не бывает. rolleyes.gif


Не дурите голову - в первом сообщении написано -
Let me clarify what I mean 5 LSB: it isn't +/- 5 clocks but 2^5.
Ruslan1
Цитата(pitt @ Sep 23 2015, 18:06) *
Noise level is over 5 LSB. Why? My options?

Using 480 cycles, INJ registers, ADC3, changing prescaler... Don't see improvement.

Let me clarify what I mean 5 LSB: it isn't +/- 5 clocks but 2^5.

Thus, you mean 32 counts of ADC.
No, it's not internal ADC noise. You should check schematic design and firmware errors.

step-by-step:
0. Make a correct test (see below) and show a schema
1. show a sourcecode


make a correct test:
1. to use a low-noise power supply (a battery with a linear regulator for the needed voltage).
2. to measure a low-noise signal (a battery, reference voltage source etc)
3. to save ALL samples without any filtering!. A duration of the saved log must be at least 20 ms.
Tanya
Из признания ТС следует, что он прекрасно понимает и пишет по-русски, но у него нет на клавишах наклеек.
Посему. ему лучше бы писать транслитом, для привлечения большего количества читателей, или запомнить раскладку. или использовать экранную клавиатуру.
Ruslan1
Цитата(Tanya @ Sep 24 2015, 14:22) *
Из признания ТС следует, что он прекрасно понимает и пишет по-русски, но у него нет на клавишах наклеек.
Посему. ему лучше бы писать транслитом, для привлечения большего количества читателей, или запомнить раскладку. или использовать экранную клавиатуру.


Ну, случаи разные бывают. Лично мне транслитом писать тяжелее чем на английском, и с пониманием то же самое. Ну и практика языковая это тоже хорошо sm.gif
А может, ТС русский через гуглпереводчик понимает? тогда сложно ему.
ViKo
Цитата(Tanya @ Sep 24 2015, 13:47) *
Не дурите голову - в первом сообщении написано -
Let me clarify what I mean 5 LSB: it isn't +/- 5 clocks but 2^5.

Я сразу понял, что имел в виду топикстартер. Сделал замечание по форме, а не содержанию. Из моего сообщения это тоже должно быть явно видно.
Tanya
Цитата(Ruslan1 @ Sep 24 2015, 14:31) *
А может, ТС русский через гуглпереводчик понимает? тогда сложно ему.

Он явно написал про клавиатуру.
scifi
Цитата(Tanya @ Sep 24 2015, 14:22) *
но у него нет на клавишах наклеек.

У меня тоже нет на клавишах наклеек. Так уж сложилось, что мои ноутбуки приходили из-за бугра. Поначалу заморачивался с наклейками, но теперь давно уже нет. Как-то само запомнилось, где какие буквы laughing.gif
Ruslan1
Цитата(scifi @ Sep 24 2015, 15:00) *
У меня тоже нет на клавишах наклеек. Так уж сложилось, что мои ноутбуки приходили из-за бугра. Поначалу заморачивался с наклейками, но теперь давно уже нет. Как-то само запомнилось, где какие буквы laughing.gif

Завидую. А я уже скоро 30 лет как запомнить не могу где какая кнопка. Тут - помню, а тут- не помню. crying.gif Напечатать могу и вслепую, но опечаток наделаю много. Так что клею забугорные кириллические.
pitt
Цитата(EmbedElektrik @ Sep 23 2015, 14:47) *
Could you share your code? It seems that there are some mistakes in initialzation of GPIO, RCC or ADC. Check it again.

All I can share is values of the ADC registers just let me know which do you need. They are fine with me.
Problems with RCC and or GPIO is nonsense: one wouldn't be able to get any readings, but I do - my problem is noise. I suspect that something with the board(made in China) but don't have EE expertise to prove it right or wrong.
The power and Vref are fine: checked with my scope.
I'm talking about raw(unfiltered) readings.

Regardless, the other chat over here is clearly off topic. I'm native Russian speaker but don't and never will have blind typing skills. Replies in Russian are not a problem at all except may be terminology.

Thank you all for response.
Ruslan1
Цитата(pitt @ Sep 24 2015, 18:55) *
All I can share is values of the ADC registers just let me know which do you need. They are fine with me.
Problems with RCC and or GPIO is nonsense: one wouldn't be able to get any readings, but I do - my problem is noise. I suspect that something with the board(made in China) but don't have EE expertise to prove it right or wrong.
The power and Vref are fine: checked with my scope.
I'm talking about raw(unfiltered) readings.

Regardless, the other chat over here is clearly off topic. I'm native Russian speaker but don't and never will have blind typing skills. Replies in Russian are not a problem at all except may be terminology.

Thank you all for response.

1. Непонятно как Вы определили что у Вас такой шум. Сохраните в массив последовательно проведенные измерения - коды АЦП (хотя бы за 20 ms для начала) и покажите, чтобы доказать наличие шума и посмотреть его параметры.
2. И что именно Вы измеряете?
3. Ну и покажите часть схемы, критичнуя для АЦП: все питания, Vref, схема измеряемого аналогового входа.
pitt
Цитата(Ruslan1 @ Sep 24 2015, 12:39) *
1. Непонятно как Вы определили что у Вас такой шум. Сохраните в массив последовательно проведенные измерения - коды АЦП (хотя бы за 20 ms для начала) и покажите, чтобы доказать наличие шума и посмотреть его параметры.
2. И что именно Вы измеряете?
3. Ну и покажите часть схемы, критичнуя для АЦП: все питания, Vref, схема измеряемого аналогового входа.

1. I'm storing min,max, mean
2. digital potentiometer
3. Copy from reference design. As I mentioned before, traces and routing is under umbrella of suspicion
ViKo
А осциллограф какой был? Хороший?
Ruslan1
Цитата(pitt @ Sep 24 2015, 20:27) *
1. I'm storing min,max, mean
2. digital potentiometer
3. Copy from reference design. As I mentioned before, traces and routing is under umbrella of suspicion

1. Этого недостаточно. дайте массив значений АЦП- это, вероятно, даст информацию о природе шума
2. схему подключения потенциометра приведите. от чего он питается и что за напряжение делит? И там не сто килоом? Просто делитель на двух резисторах по паре килоом от Vref на вход АЦП подключите, это исключит кучу версий.
3. Схему приведите. " traces and routing is under umbrella of suspicion" - это, конечно красиво сказано, но неинформативно. С разводкой- очень маловероятно нагенерировать шума на 25 милливольт пик-пик (референс у Вас около 3.3 V ?).
pitt
Цитата(Ruslan1 @ Sep 24 2015, 14:19) *
1. Этого недостаточно. дайте массив значений АЦП- это, вероятно, даст информацию о природе шума

How come? What the difference does it make to see the graph in time or just its parameters? I have plotted it and it is noise("BORODA")
Цитата(Ruslan1 @ Sep 24 2015, 14:19) *
2. схему подключения потенциометра приведите. от чего он питается и что за напряжение делит? И там не сто килоом? Просто делитель на двух резисторах по паре килоом от Vref на вход АЦП подключите, это исключит кучу версий.

Sorry, it is impossible. Scoped the output though - solid as a rock.
Цитата(Ruslan1 @ Sep 24 2015, 14:19) *
3. Схему приведите. " traces and routing is under umbrella of suspicion" - это, конечно красиво сказано, но неинформативно. С разводкой- очень маловероятно нагенерировать шума на 25 милливольт пик-пик (референс у Вас около 3.3 V ?).

Nothing there...Copy and paste from STM32F4G-EVAL. One to one except more inputs are used i.e. more and different pins.
Vref = 2.048V (LM4040D20IDBZR)
Ruslan1
Цитата(pitt @ Sep 24 2015, 22:22) *
How come? What the difference does it make to see the graph in time or just its parameters? I have plotted it and it is noise("BORODA")

Sorry, it is impossible. Scoped the output though - solid as a rock.

Nothing there...Copy and paste from STM32F4G-EVAL. One to one except more inputs are used i.e. more and different pins.
Vref = 2.048V (LM4040D20IDBZR)


Я пас.
Данных-нет.
Схемы "что подается на вход"-нет.
Схемы "как запитан МК и что с референсом"- нет.


Ну ладно, сделал усилие и посмотрел кит. Ну что же, мне почему-то кажется, что ответ на вопрос "откуда 16 mV пик-пик шумы" не так уж и сложно найти.
Нажмите для просмотра прикрепленного файла
Golikov A.
а поподробнее, мне тоже интересно откуда шумsm.gif
pitt
Цитата(Ruslan1 @ Sep 24 2015, 15:47) *
Я пас.
Данных-нет.
Схемы "что подается на вход"-нет.
Схемы "как запитан МК и что с референсом"- нет.


Ну ладно, сделал усилие и посмотрел кит. Ну что же, мне почему-то кажется, что ответ на вопрос "откуда 16 mV пик-пик шумы" не так уж и сложно найти.
Нажмите для просмотра прикрепленного файла

Thank you for your effort. On the side note: You've published exactly piece I never had... MCU powered as that example, Vref goes from the part number I reported before...
Genadi Zawidowski
Даташит:
Цитата
4. If VREF+ pin is present, it must respect the following condition: VDDA-VREF+ < 1.2 V.

2.048 вольта на границе этого диапазона...
Ruslan1
Цитата(Golikov A. @ Sep 24 2015, 23:07) *
а поподробнее, мне тоже интересно откуда шумsm.gif

Дык, вестимо, цифровое питание -оно не бесшумное. И если его измерять относительно бесшумного референса- то можно и больше шума намерять.

Но это была, скорее, провокация, чтобы ТС "разродился" наконец реальной информацией по схеме. Я надеюсь, у него все-таки не цифровое питание измеряется. Как я уже написал выше, я-пас. Не умею думать при отсутствии исходной информации.
Genadi Zawidowski
Предлагаю вопрошающему измерить встроенную опору или тепрмодатчик - как у них будет со стабильностьью показаний?
Golikov A.
Цитата
Дык, вестимо, цифровое питание -оно не бесшумное. И если его измерять относительно бесшумного референса- то можно и больше шума намерять.

а понято, спасибо
pitt
The problem isn't noise which is totally understandable, but it's level...
BTW What is TC stands for?
smalcom
а почему тема не в разделе для англоязычников?
----
у меня похожая ситуация с АЦП. Но я в курсе, что это проблема разводки и схемотехники - АЦП в данном устройстве не приоритет. Что было замечено. Шум не случайный и среднее из 1000-10000 выборок даёт нужный код с ошибкой +-0.5 МЗБ.
Genadi Zawidowski
"ТС" это вы.
Прошу не игнорировать вопрос про измерение внутреннего источника образцового напряжения (канал номер 17), включив его при инициализации АЦП.
Golikov A.
TC = topic starter
ViKo
Гистограмма распределения результатов измерения помогла бы понять, что там, шум или помехи.
pitt
Цитата(Golikov A. @ Sep 25 2015, 02:34) *
TC = topic starter

Thanks.

Цитата(Genadi Zawidowski @ Sep 25 2015, 01:30) *
"ТС" это вы.
Прошу не игнорировать вопрос про измерение внутреннего источника образцового напряжения (канал номер 17), включив его при инициализации АЦП.

I didn't study this topic yet. I'm not using STD from STM, so it may be not that easy to do with the HAL I'm using. As I said, don't know yet. If you could share simple code which initializes ADC registers, not their init structure - it would be really appreciated.
smalcom
Мде. Замкнутый круг. Или языковой барьер...
Genadi Zawidowski
Извините, а как же Вы пишите програму?

Ну пожалуйста, мой проект тоже не использует SPL.

https://188.134.5.254/export/2735/hfreceive...runk/hardware.c
Строка 1969 и дальше...

Непонятности смотрите рядом, файл pio.c
pitt
Цитата(Genadi Zawidowski @ Sep 25 2015, 12:46) *
Извините, а как же Вы пишите програму?

Ну пожалуйста, мой проект тоже не использует SPL.

https://188.134.5.254/export/2735/hfreceive...runk/hardware.c
Строка 1969 и дальше...

Непонятности смотрите рядом, файл pio.c

Thanks. Will try but don't promise to do something over weekend.
Basically I need to enable in CCR and put/add to SQR/JSQR.
Genadi Zawidowski
Сперва без JSQR протестируйте..
pitt
Цитата(Genadi Zawidowski @ Sep 25 2015, 13:33) *
Сперва без JSQR протестируйте..

?
It is easier to deal with, well except their twist with queue.
pitt
Цитата(pitt @ Sep 25 2015, 13:43) *
?
It is easier to deal with, well except their twist with queue.

bb-offtopic.gif Из дома могу и по-русски bb-offtopic.gif
Использую MCBSTM32F400.
Подключил входы 16, 17, 18 на ING(так сканирую все сразу).
Читаю малошумящие сигналы(2 LSB) +/- 3 counts.
Удивился, что температуру показывает порядка 46C(12 разрядов 987 counts). Может пересчитал неверно... А у Вас?
С пересчетом Vref и Vbat разбираться не стал, а Vref даже и не нашел...
Т.е. все весьма правдоподобно. На работе, однако, другое железо, но тот же HAL.
smalcom
абсолютные значения температуры там неверны, как и указал сам производитель. встроенный датчик хорошо показывает относительные значения, начальную точку надо искать самостоятельно.
Цитата
а Vref даже и не нашел...

ну как это не нашёл? Почитайте - не точное название документа - "Getting started with STM32 hardware".

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

stm32f4 Datasheet DM00037051.pdf раздел 5.3.22 Temperature sensor characteristics стр. 137

утверждает, что
25С = 760mV
Average slope - 2.5 mV/°C

С учетом 12 разрядов и Vref = 3300mV
1count = 3300/4095 = .806mV
и примерно 3 counts per 1C
соответственно:
760mV = 943 counts

Я не вижу ссылок на относительные значения. Если Вы видите, пожалуйста укажите.
smalcom
Цитата
Пожалуйста указывайте конкретные ссылки на документы.

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

Ну, собственно, вот пример из доки на STM32F100xC.
Раздел 10.9. Датчик температуры

Цитата
The temperature sensor output voltage changes linearly with temperature. The offset of this line varies from chip to chip due to process variation (up to 45 °C from one chip to another). The internal temperature sensor is more suited to applications that detect temperature variations instead of absolute temperatures. If accurate temperature readings are needed, an external temperature sensor part should be used.


Даже попробую перевести.
Выходное напряжение датчика температуры изменяется линейно вместе с температурой. Смещение этой линии(имеют в виду линейной зависимости) изменяется от ИМС к ИМС из-за... вот тут я плохо распарсил, что-то там с тех.процессом изготовления связано. Ага, дальше. Встроенный датчик температуры больше подходит для определения изменений температуры, а не её абсолютных значений. Если нужны точные измерения температуры, то должен использоваться внешний температурный датчик.
_
Первёл таки тот кусок)) - у разных ИМС разница смещений графика зависимости температуры могут доходить до 45 градусов.

обещанная ссылка на документ
http://www.st.com/web/en/resource/technica.../DM00115714.pdf
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.