реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Странное поведение АЦП stm32L476, Меняются старшие биты, при неизменных младших
Pavlik
сообщение Jan 18 2018, 11:45
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 16-08-06
Пользователь №: 19 602



Процедура получения данных с АЦП настроена на работу по таймеру.
В одинаковых условиях, при фиксированном входном сигнале, который можно считать постоянным, берутся данные, которые отличаться могут только из-за погрешности, т.е. в младших битах.
Таймер запускает два АЦП, Готовность данных по прерыванию
ADC1->IER = ADC_IER_EOC.
Забираем данные библиотечной функцией
void HAL_ADC_ConvCpltCallback( ADC_HandleTypeDef* hadc )
Получаем несколько значений.
Проблема в том, что при рассмотрении выборки (10-20 значений) меняются не младшие биты, как можно было бы ожидать: а 4,5,6 разряды намного чаще, чем 1,2,3.
На картинке типичный случай

С чем это может быть связано?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jan 18 2018, 18:18
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Pavlik @ Jan 18 2018, 14:45) *
...На картинке типичный случай...С чем это может быть связано?


с чем угодно.
но первое что рекомендую сделать - переведите в 16сс ваши числа.
после этого задайтесь вопросами
1) а первый и третий полубайты - они адэкватны и живы (т.е. точно на входе такие напряжения вы подавали, и что будет в этих разрядах при подаче нуля, или другого уровня напряжения)?
2) размерность записи-выборке одинаковы в логике ПДП и инициализации портов?

дальше думаю уже сможете более интересную инфу предоставить и(или) сами уже найти-пофиксить траблу...

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
ivan24190
сообщение Jan 18 2018, 19:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 25-08-15
Из: Рыбное
Пользователь №: 88 141



Pavlik, а периодичность опроса какая?
Потому как согласно "errata" на этот камень:
если время между последовательными преобразованиями АЦП
превышает 1 мс, то результаты будут некорректными.
Go to the top of the page
 
+Quote Post
Pavlik
сообщение Jan 19 2018, 13:02
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 16-08-06
Пользователь №: 19 602



Цитата(kolobok0 @ Jan 18 2018, 21:18) *
с чем угодно.


Оказалось действительно "что угодно", проблема связана не с кодом.
Оказалось, что в момент взятия выборки опорное напряжение просаживается примерно на 200 мВ.
Странно такое поведение stm в работе с Ref3030 (25mA) когда по линии Vref декларируется потребление 400uA.
Еще stm не любит когда аналоговая земля двигается относительно цифровой (при стабильных питающих VDD, VDDA). Конечно он такого любить и не должен, так как цифра и аналог в недрах его соединяются, но "удача - награда за смелость .." была. Следовательно никаких соединяющих землю дросселей нам не позволено, только нулевые сопротивления. Такие выводы.
Поправьте, если неправ.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jan 19 2018, 13:38
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Pavlik @ Jan 19 2018, 16:02) *
Оказалось действительно "что угодно", проблема связана не с кодом.
Оказалось, что в момент взятия выборки опорное напряжение просаживается примерно на 200 мВ.
Странно такое поведение stm в работе с Ref3030 (25mA) когда по линии Vref декларируется потребление 400uA.
Еще stm не любит когда аналоговая земля двигается относительно цифровой (при стабильных питающих VDD, VDDA). Конечно он такого любить и не должен, так как цифра и аналог в недрах его соединяются, но "удача - награда за смелость .." была. Следовательно никаких соединяющих землю дросселей нам не позволено, только нулевые сопротивления. Такие выводы.
Поправьте, если неправ.

Потребление по VRef декларируется среднее, а пиковое гораздо выше, это типично для любых АЦП со взвешиванием на конденсаторах, на VRef обязателен большой внешний конденсатор. Про земли в даташите написано - не более 50мВ разницы, и вообще там много интересного написано, почитайте как-нибудьsm.gif.
Go to the top of the page
 
+Quote Post
Pavlik
сообщение Jan 19 2018, 15:00
Сообщение #6





Группа: Новичок
Сообщений: 4
Регистрация: 16-08-06
Пользователь №: 19 602



Цитата(Timmy @ Jan 19 2018, 16:38) *
Потребление по VRef декларируется среднее, а пиковое гораздо выше, это типично для любых АЦП со взвешиванием на конденсаторах, на VRef обязателен большой внешний конденсатор.

Спасибо за ответ. В даташите не сказано, что потребление VREF среднее. Очевидно, что фактическое потребление будет зависеть от того как часто будет проводится конвертация, поэтому среднее будет зависеть от кода.
Вы правы по факту дело обстоит именно так. Просто из даташита этого не следует.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jan 19 2018, 15:54
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(Pavlik @ Jan 19 2018, 22:00) *
Вы правы по факту дело обстоит именно так. Просто из даташита этого не следует.

В даташите схема питания есть - на Vref два конденсатора должно быть 1uf и 0.1uF.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016