|
Нелинейности внутреннего АЦП в STM32, STM32F103RET6 GH22S 9U |
|
|
|
Feb 25 2014, 09:09
|
Участник

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

|
И так работаю с контроллером STM32F103RET6 GH22S 9U (это полная маркировка, вдруг важно), работаю на частоте 72 МГц, и вот какая проблема, не зависимо от времени семплирования и настроек АЦП при подачи на вход плавно меняющейся функции (и сигнал с датчика температуры - терморезистора, так и просто источник опорного напряжения регулируемый пробовал) на выходи имеем нелинейности - ступеньки на определенных значениях, см. вложение. И так поиск по интернету не дал ответа на вопрос что это и как исправлять (ну кроме смены процессора, просто неисправность камня я исключил так как попробовал на двух идентичных контроллерах), положение ступенек не зависит от напряжения, то есть при изменении опорного напряжения ступеньки остаются в тех же точках, хоть это уже другие напряжения, точки в которых есть ступеньки характерные, в них одновременно сменяется сразу много разрядов (отметил это на графике).
Сообщение отредактировал zWitCh - Feb 25 2014, 09:10
|
|
|
|
|
 |
Ответов
|
Feb 26 2014, 11:11
|
Участник

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

|
продолжил свои изыскания, взял я совершенно другую плату (на STM32F103RBT6):
проводами на один из входов подключил источник питания регулируемый, и начал плавно его регулировать попутно записывая все измерения (код программы тот же что и ранее), вот что вышло:
Вроде все хорошо, помехи и выбросы есть и на осциллограмме, они связаны с тем что источник плохой и длинными проводами подключен, но если рассмотреть участок вблизи моей злополучной точке "1023" то мы увидим все ту же проблему:
Тут хорошо видно что вблизи точки "1023" (значение выдаваемое АЦП) полностью отсутствуют значения в диапазоне от 1024 до 1048 и все они заменяются на мои 1023! Дальше я просто посмотрел а АЦП хоть когда либо выдает ли мне на выходе цифры в диапазоне 1024 - 1048, и выяснились что нет, на двух совершенно разных платах и немного разных процессорах... Обнаружив такую особенность я достал старую добрую STM32-Discovery и запустил тот же код на ней, там все ок, таких особенностей работы АЦП не заметил...
|
|
|
|
|
Feb 26 2014, 12:37
|
Участник

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

|
Цитата(Tanya @ Feb 26 2014, 16:04)  Источник бы везде. Он ведь не знает про цифры внутри... А вот если построить график напряжение - код-напряжение(как будто подсоединен виртуальный ЦАП), то что будет? Будут ли две прямые со сдвигом - до и после магического числа? Если так, то калибровка внутри сбита - этот разряд значительно больше нормального и компаратор уже не добавляет несколько младших. вот тут была картинка в самом начале:
там наглядно показано что выдает (оцифровывает АЦП), на входе напряжение при этом меняется линейно (проверено осциллографом на хорошей развертке)
|
|
|
|
|
Feb 26 2014, 12:56
|
Участник

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

|
Цитата(Tanya @ Feb 26 2014, 16:41)  Нет, я не то хотела. Подгонку линейной функцией до и после. И вот эти числа. На глаз не видно по Вашим картинкам. ну я уже новые данные поимел я подовая на вход ШУМ имею кучу значений разных с АЦП, так вот среди этих значений отсутствуют определенные значения всегда, в частности там нет цифр в промежутке 1024-1048, что мне кажется просто невероятным что бы в течении получаса сыпался условно случайный сигнал и в нем ниразу не встретилось напряжение эквивалентное значению с 1024 по 1048 но при этом все другие встречаются великое множество раз... Цитата(ViKo @ Feb 26 2014, 16:41)  ШУМИТ... или источник питания, или опорного напряжения (если оно есть), или измеряемый сигнал. На таких частотах, или импульсы короткие, так, что вы их не видите своим осциллографом.
ах, если СИГНАЛА, тогда его и фильтруйте!
Сами путаете: "проводами на один из входов подключил источник питания регулируемый, и начал плавно его регулировать попутно записывая все измерения" источник питания подключен на вход АЦП, отдельный источник питания в качестве сигнала, который я оцифровываю, даже не понимаю как еще это можно объяснить что бы стало понятно, батарейку я если подключу на вход АЦП это же не как не будет значить что мой ацп питается от батарейки, я беру ее напряжение как сигнал... фу... все не по теме... Зачем мне фильтровать сигнал, меня не смущают момехи, напротив меня смущает то что АЦП не при каких входных напряжениях не выдает на выходе скажем "1030" или "1035" и еще пару десятков значений, как это связано с питанием которое мало того что независимое так еще и чистое, ок, допустим помехи, что это за такие синхронные помехи которые сбивают именно АЦП и именно тогда когда он хзочет выдать любую цифру в промежутке от 1024 до 1048 но при этом НИКОГДА не сбивают его в других случаях и в других значениях его передаточная функция гладкая...
|
|
|
|
|
Feb 26 2014, 13:11
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(zWitCh @ Feb 26 2014, 15:56)  Зачем мне фильтровать сигнал, меня не смущают момехи, напротив меня смущает то что АЦП не при каких входных напряжениях не выдает на выходе скажем "1030" или "1035" и еще пару десятков значений, как это связано с питанием которое мало того что независимое так еще и чистое, ок, допустим помехи, что это за такие синхронные помехи которые сбивают именно АЦП и именно тогда когда он хзочет выдать любую цифру в промежутке от 1024 до 1048 но при этом НИКОГДА не сбивают его в других случаях и в других значениях его передаточная функция гладкая... Еще раз внушаю - импульсные помехи лезут в АЦП, неважно, каким путем, и сбивают механизм последовательного приближения. Если должен быть код 1026, а старший разряд не установился, потому что помеха в момент его определения сбила его в 0, то больше 1023 уже не набрать.
|
|
|
|
|
Feb 26 2014, 13:43
|
Участник

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

|
Цитата(Tanya @ Feb 26 2014, 17:36)  Какая-то у Вас очень проницательная (избирательная) помеха. да вот и я о том же, вобщем пока мы тут общались на вход АЦП гнал я псевдослучайный сигнал (пилу с генератора), затем вывел всё что оцифровывал мне мой АЦП, так вот в его результатах напрочь отсутствует целая груда значений, то есть при любом входе он никогда не выдает определенные цифры на выходе...
На данной диаграмме хорошо видно что определенные значения я на выходе у АЦП не получаю никогда, хотя на входе была достаточно гладкая функция без разрывов... Цитата(ViKo @ Feb 26 2014, 17:11)  Еще раз внушаю - импульсные помехи лезут в АЦП, неважно, каким путем, и сбивают механизм последовательного приближения. Если должен быть код 1026, а старший разряд не установился, потому что помеха в момент его определения сбила его в 0, то больше 1023 уже не набрать. да все верно, только вот что это за помеха то такая которая сбивает только когда у меня ацп хочет выдать 1024 - 1049 (и еще пары диапазонов которые всегда одни и теже и мало вообще от чего зависят, просто есть) но никогда не сбивает при других выходных значениях, при этом источник питания и источник сигнала независимы и питание чистое...
Сообщение отредактировал zWitCh - Feb 26 2014, 13:45
|
|
|
|
Сообщений в этой теме
zWitCh Нелинейности внутреннего АЦП в STM32 Feb 25 2014, 09:09 MrYuran Это называется "missing code", место сши... Feb 25 2014, 11:08 ViKo Цитата(MrYuran @ Feb 25 2014, 14:08) Это ... Feb 25 2014, 11:26 scifi Может быть, не была проделана процедура автоматиче... Feb 25 2014, 11:18 MrYuran Цитата(scifi @ Feb 25 2014, 15:18) Может ... Feb 25 2014, 11:34  scifi Цитата(MrYuran @ Feb 25 2014, 15:34) А че... Feb 25 2014, 11:56   MrYuran Цитата(scifi @ Feb 25 2014, 15:56) Вы, ви... Feb 25 2014, 12:11   zWitCh Цитата(scifi @ Feb 25 2014, 15:56) Вы, ви... Feb 25 2014, 14:30    scifi Цитата(zWitCh @ Feb 25 2014, 18:30) прост... Feb 25 2014, 14:40 Aner Программная проблема, разбирайтесь с прерываниями ... Feb 25 2014, 11:32 ViKo ЦитатаThe ADC has an built-in self calibration mod... Feb 25 2014, 12:48 Aner Схему, прогу в студию. Телепатов пока нема. Может ... Feb 25 2014, 14:59 zWitCh Цитата(Aner @ Feb 25 2014, 18:59) Схему, ... Feb 25 2014, 15:41  Леонид Иванович Цитата(zWitCh @ Feb 25 2014, 19:41) И так... Mar 1 2014, 19:42   adnega Цитата(Леонид Иванович @ Mar 1 2014, 23:4... Mar 1 2014, 20:02 ViKo http://electronix.ru/forum/index.php?showt...088... Feb 25 2014, 19:43 zWitCh Цитата(ViKo @ Feb 25 2014, 23:43) http://... Feb 26 2014, 07:27  scifi Цитата(zWitCh @ Feb 26 2014, 11:27) не мо... Feb 26 2014, 09:23  ViKo Цитата(zWitCh @ Feb 26 2014, 10:27) ссылк... Feb 26 2014, 09:27  zWitCh Цитата(ViKo @ Feb 26 2014, 15:19) Так не ... Feb 26 2014, 11:56   ViKo Цитата(zWitCh @ Feb 26 2014, 14:56) Интер... Feb 26 2014, 12:00    scifi Цитата(ViKo @ Feb 26 2014, 16:00) Ничего ... Feb 26 2014, 12:28   ViKo Цитата(Tanya @ Feb 26 2014, 15:04) Источн... Feb 26 2014, 12:10    zWitCh Цитата(ViKo @ Feb 26 2014, 16:10) На Диск... Feb 26 2014, 12:35     ViKo Цитата(zWitCh @ Feb 26 2014, 15:35) ...та... Feb 26 2014, 12:36      zWitCh Цитата(ViKo @ Feb 26 2014, 16:36) А это н... Feb 26 2014, 12:39     Tanya Цитата(zWitCh @ Feb 26 2014, 16:35) Госпо... Feb 26 2014, 12:39      zWitCh Цитата(Tanya @ Feb 26 2014, 16:39) А вход... Feb 26 2014, 12:42       Tanya Цитата(zWitCh @ Feb 26 2014, 16:42) вход ... Feb 26 2014, 12:45    Tanya Цитата(ViKo @ Feb 26 2014, 16:10) На Диск... Feb 26 2014, 12:35     ViKo Цитата(Tanya @ Feb 26 2014, 15:35) А разв... Feb 26 2014, 12:38    ViKo Цитата(zWitCh @ Feb 26 2014, 15:37) (пров... Feb 26 2014, 12:41      Tanya Цитата(zWitCh @ Feb 26 2014, 16:56) кажет... Feb 26 2014, 13:10         ViKo Цитата(zWitCh @ Feb 26 2014, 16:43) так в... Feb 26 2014, 13:45          zWitCh Цитата(Tanya @ Feb 26 2014, 17:56) Так мо... Feb 26 2014, 14:16           Tanya Цитата(zWitCh @ Feb 26 2014, 18:16) - 24 ... Feb 26 2014, 14:39 zWitCh Занизил частоту ADCCLK поделил на 16, все стало ок... Feb 26 2014, 14:40 scifi Цитата(zWitCh @ Feb 26 2014, 18:40) Заниз... Feb 26 2014, 14:45  zWitCh Цитата(scifi @ Feb 26 2014, 18:45) Семён ... Feb 26 2014, 15:10 ViKo Найдите у STMicroelectronics AN3137, там показано ... Mar 2 2014, 18:59 Леонид Иванович Документ AN3137 во многом повторяет AN2834. Там со... Mar 2 2014, 21:22  ViKo Цитата(Леонид Иванович @ Mar 3 2014, 00:2... Mar 3 2014, 11:50   Леонид Иванович Цитата(ViKo @ Mar 3 2014, 14:50) Этот сов... Mar 3 2014, 12:34 ViKo Входной ток у АЦП - это ток заряда внутреннего кон... Mar 3 2014, 13:06 Леонид Иванович Цитата(ViKo @ Mar 3 2014, 16:06) Если бы ... Mar 3 2014, 14:25  ViKo Цитата(Леонид Иванович @ Mar 3 2014, 17:2... Mar 3 2014, 17:46   Леонид Иванович Цитата(ViKo @ Mar 3 2014, 20:46) Чем боль... Mar 3 2014, 21:54 ViKo Если от Cext не зависит, то почему вы назвали сове... Mar 4 2014, 08:03 Леонид Иванович Цитата(ViKo @ Mar 4 2014, 11:03) Если от ... Mar 4 2014, 09:02 ViKo Если не трудно, покажите, что будет при Cext = 200... Mar 4 2014, 09:50 Леонид Иванович Без проблем. Видно, что время переходного процесса... Mar 4 2014, 10:02 ViKo Вы правы. Попробую сам в LTspice. Mar 4 2014, 10:53 Леонид Иванович Вообще, выводы находятся в соответствии с рекоменд... Mar 4 2014, 11:25 ViKo Возник один вопрос, вспомнил про эту тему.
Зачем в... Mar 28 2014, 08:31 Леонид Иванович Увеличение времени выборки ts может потребоваться ... Mar 28 2014, 16:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|