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

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

|
Цитата(ViKo @ Feb 26 2014, 16:36)  А это не вы писали: "Вроде все хорошо, помехи и выбросы есть и на осциллограмме, они связаны с тем что источник плохой и длинными проводами подключен"? Чудеса...  источник СИГНАЛА который я подаю на вход ЦАП, и да это я написал, слово источник не всегда источник питания тем более когда оговорено иное...
|
|
|
|
|
Feb 26 2014, 12:41
|

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

|
Цитата(zWitCh @ Feb 26 2014, 15:37)  (проверено осциллографом на хорошей развертке) ШУМИТ... или источник питания, или опорного напряжения (если оно есть), или измеряемый сигнал. На таких частотах, или импульсы короткие, так, что вы их не видите своим осциллографом. Цитата(zWitCh @ Feb 26 2014, 15:39)  источник СИГНАЛА который я подаю на вход ЦАП, и да это я написал, слово источник не всегда источник питания тем более когда оговорено иное... ах, если СИГНАЛА, тогда его и фильтруйте! Сами путаете: "проводами на один из входов подключил источник питания регулируемый, и начал плавно его регулировать попутно записывая все измерения"
|
|
|
|
|
Feb 26 2014, 12:42
|
Участник

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

|
Цитата(Tanya @ Feb 26 2014, 16:39)  А вход опорного напряжения имеет адекватный конденсатор? А на входе? вход Vref отсутствует в моем корпусе, на входе Vdda стоит 10u и 0.1u плюс дроссль
|
|
|
|
|
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
|
|
|
|
|
Feb 26 2014, 14:16
|
Участник

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

|
Цитата(Tanya @ Feb 26 2014, 17:56)  Так можете тактовую частоту понизить на порядок? Я даже догадываюсь, где еще сбоит. и так, теперь я вместо 72 МГц по дефолту, ставлю принудительно частоту как на Дискавери - 24 МГц и о чудо, помехи уже ничего не сбивают ни по питанию не по сигнальной шине, АЦП магическим образом обретает гладкую характеристику... данные с АЦП при частоте 72 Мгц на ядре, хорошо видно дырки, определенные значения не выдаются АЦПхой не при каких входных воздействиях:
Данные с АЦП на частоте 24 Мгц, характеристика гладкая, нет дырок, всем входным воздействиям есть выходной аналог:
Что выходит что АЦП не успевал работать, или вернее не успевал заряжать свои внутренние конденсаторы и из-за этого сбоил если надо было сменить сразу много разрядов? Как бороться кроме понижения частоты, может таки оптимизировать разводку?
Сообщение отредактировал zWitCh - Feb 26 2014, 14:17
|
|
|
|
|
Feb 26 2014, 14:39
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(zWitCh @ Feb 26 2014, 18:16)  - 24 МГц и о чудо, помехи уже ничего не сбивают ни по питанию не по сигнальной шине, АЦП магическим образом обретает гладкую характеристику... Я же Вам сразу предлагала... Цитата(zWitCh @ Feb 26 2014, 18:16)  Как бороться кроме понижения частоты, может таки оптимизировать разводку? Правильная разводка и правильные конденсаторы снаружи. А буфер для входного сигнала у Вас есть? Дроссель может даже вредить.
|
|
|
|
|
Feb 26 2014, 14:40
|
Участник

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

|
Занизил частоту ADCCLK поделил на 16, все стало ок... Век живи век учись ;-) Код SystemInit(); RCC_ADCCLKConfig(RCC_PCLK2_Div8); SystemCoreClockUpdate(); PS да буфер есть, достаточно конденсатор на 10мкФ, в боевой схеме мэрию медленно меняющееся напряжение (напряжение на большом ионисторе, так что эти мои 10vrA там просто что бы компенсировать подводящие провода).
Сообщение отредактировал zWitCh - Feb 26 2014, 14:44
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|