Перейти к содержанию
    

Нелинейности внутреннего АЦП в STM32

А это не вы писали: "Вроде все хорошо, помехи и выбросы есть и на осциллограмме, они связаны с тем что источник плохой и длинными проводами подключен"?

 

Чудеса... :laughing:

источник СИГНАЛА который я подаю на вход ЦАП, и да это я написал, слово источник не всегда источник питания тем более когда оговорено иное...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(проверено осциллографом на хорошей развертке)

ШУМИТ... или источник питания, или опорного напряжения (если оно есть), или измеряемый сигнал. На таких частотах, или импульсы короткие, так, что вы их не видите своим осциллографом.

 

источник СИГНАЛА который я подаю на вход ЦАП, и да это я написал, слово источник не всегда источник питания тем более когда оговорено иное...

ах, если СИГНАЛА, тогда его и фильтруйте!

 

Сами путаете:

"проводами на один из входов подключил источник питания регулируемый, и начал плавно его регулировать попутно записывая все измерения"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот тут была картинка в самом начале:

Нет, я не то хотела. Подгонку линейной функцией до и после. И вот эти числа. На глаз не видно по Вашим картинкам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вход опорного напряжения имеет адекватный конденсатор? А на входе?

вход Vref отсутствует в моем корпусе, на входе Vdda стоит 10u и 0.1u плюс дроссль

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вход Vref отсутствует в моем корпусе, на входе Vdda стоит 10u и 0.1u плюс дроссль

А можете тактовую частоту уменьшить? И добавить сверху конденсатор... 10н?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, я не то хотела. Подгонку линейной функцией до и после. И вот эти числа. На глаз не видно по Вашим картинкам.

ну я уже новые данные поимел я подовая на вход ШУМ имею кучу значений разных с АЦП, так вот среди этих значений отсутствуют определенные значения всегда, в частности там нет цифр в промежутке 1024-1048, что мне кажется просто невероятным что бы в течении получаса сыпался условно случайный сигнал и в нем ниразу не встретилось напряжение эквивалентное значению с 1024 по 1048 но при этом все другие встречаются великое множество раз...

 

ШУМИТ... или источник питания, или опорного напряжения (если оно есть), или измеряемый сигнал. На таких частотах, или импульсы короткие, так, что вы их не видите своим осциллографом.

 

 

ах, если СИГНАЛА, тогда его и фильтруйте!

 

Сами путаете:

"проводами на один из входов подключил источник питания регулируемый, и начал плавно его регулировать попутно записывая все измерения"

источник питания подключен на вход АЦП, отдельный источник питания в качестве сигнала, который я оцифровываю, даже не понимаю как еще это можно объяснить что бы стало понятно, батарейку я если подключу на вход АЦП это же не как не будет значить что мой ацп питается от батарейки, я беру ее напряжение как сигнал... фу... все не по теме...

 

Зачем мне фильтровать сигнал, меня не смущают момехи, напротив меня смущает то что АЦП не при каких входных напряжениях не выдает на выходе скажем "1030" или "1035" и еще пару десятков значений, как это связано с питанием которое мало того что независимое так еще и чистое, ок, допустим помехи, что это за такие синхронные помехи которые сбивают именно АЦП и именно тогда когда он хзочет выдать любую цифру в промежутке от 1024 до 1048 но при этом НИКОГДА не сбивают его в других случаях и в других значениях его передаточная функция гладкая...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кажется просто невероятным что бы в течении получаса сыпался условно случайный сигнал и в нем ниразу не встретилось напряжение эквивалентное значению с 1024 по 1048 но при этом все другие встречаются великое множество раз...

Так конденсаторный АЦП внутри? Вот эти конденсаторы летают там, заряжаются, разряжаются. Один и них самый большой. На половине шкалы. После него внешний может не успеть зарядиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем мне фильтровать сигнал, меня не смущают момехи, напротив меня смущает то что АЦП не при каких входных напряжениях не выдает на выходе скажем "1030" или "1035" и еще пару десятков значений, как это связано с питанием которое мало того что независимое так еще и чистое, ок, допустим помехи, что это за такие синхронные помехи которые сбивают именно АЦП и именно тогда когда он хзочет выдать любую цифру в промежутке от 1024 до 1048 но при этом НИКОГДА не сбивают его в других случаях и в других значениях его передаточная функция гладкая...

Еще раз внушаю - импульсные помехи лезут в АЦП, неважно, каким путем, и сбивают механизм последовательного приближения. Если должен быть код 1026, а старший разряд не установился, потому что помеха в момент его определения сбила его в 0, то больше 1023 уже не набрать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще раз внушаю - импульсные помехи лезут в АЦП, неважно, каким путем, и сбивают механизм последовательного приближения. Если должен быть код 1026, а старший разряд не установился, потому что помеха в момент его определения сбила его в 0, то больше 1023 уже не набрать.

Какая-то у Вас очень проницательная (избирательная) помеха.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая-то у Вас очень проницательная (избирательная) помеха.

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

post-19654-1393422019_thumb.png

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

 

Еще раз внушаю - импульсные помехи лезут в АЦП, неважно, каким путем, и сбивают механизм последовательного приближения. Если должен быть код 1026, а старший разряд не установился, потому что помеха в момент его определения сбила его в 0, то больше 1023 уже не набрать.

да все верно, только вот что это за помеха то такая которая сбивает только когда у меня ацп хочет выдать 1024 - 1049 (и еще пары диапазонов которые всегда одни и теже и мало вообще от чего зависят, просто есть) но никогда не сбивает при других выходных значениях, при этом источник питания и источник сигнала независимы и питание чистое...

Изменено пользователем zWitCh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так вот в его результатах напрочь отсутствует целая груда значений,

Какая-то у Вас очень проницательная (избирательная) помеха.

:laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да все верно, только вот что это за помеха то такая которая сбивает только когда у меня ацп хочет выдать 1024 - 1049 (и еще пары диапазонов которые всегда одни и теже и мало вообще от чего зависят, просто есть) но никогда не сбивает при других выходных значениях, при этом источник питания и источник сигнала независимы и питание чистое...

Так можете тактовую частоту понизить на порядок?

Я даже догадываюсь, где еще сбоит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так можете тактовую частоту понизить на порядок?

Я даже догадываюсь, где еще сбоит.

и так, теперь я вместо 72 МГц по дефолту, ставлю принудительно частоту как на Дискавери - 24 МГц и о чудо, помехи уже ничего не сбивают ни по питанию не по сигнальной шине, АЦП магическим образом обретает гладкую характеристику...

 

данные с АЦП при частоте 72 Мгц на ядре, хорошо видно дырки, определенные значения не выдаются АЦПхой не при каких входных воздействиях:

post-19654-1393423981_thumb.png

 

Данные с АЦП на частоте 24 Мгц, характеристика гладкая, нет дырок, всем входным воздействиям есть выходной аналог:

post-19654-1393424095_thumb.png

 

 

Что выходит что АЦП не успевал работать, или вернее не успевал заряжать свои внутренние конденсаторы и из-за этого сбоил если надо было сменить сразу много разрядов? Как бороться кроме понижения частоты, может таки оптимизировать разводку?

Изменено пользователем zWitCh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- 24 МГц и о чудо, помехи уже ничего не сбивают ни по питанию не по сигнальной шине, АЦП магическим образом обретает гладкую характеристику...

Я же Вам сразу предлагала...

Как бороться кроме понижения частоты, может таки оптимизировать разводку?

Правильная разводка и правильные конденсаторы снаружи. А буфер для входного сигнала у Вас есть? Дроссель может даже вредить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Занизил частоту ADCCLK поделил на 16, все стало ок... Век живи век учись ;-)

 

    SystemInit();
    RCC_ADCCLKConfig(RCC_PCLK2_Div8);
    SystemCoreClockUpdate();

 

PS да буфер есть, достаточно конденсатор на 10мкФ, в боевой схеме мэрию медленно меняющееся напряжение (напряжение на большом ионисторе, так что эти мои 10vrA там просто что бы компенсировать подводящие провода).

 

Изменено пользователем zWitCh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...