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

STM32F103 и сильный шум АЦП

Приветствую. Пытаюсь запустить все АЦП каналы доступные на контроллере STM32F103ZCT (21 канал: 15 каналов в ADC1 и 6 каналов в ADC3) при одновременной работе через ДМА в циклическом режиме. То есть выборка происходит все время для всех каналов. И столкнулся со следующей проблемой. Очень большой шум в каналах (но не во всех). Даже если их накоротко посадить на землю, то на некоторых каналах (особенно у ADC3) измерения достигают 100-150 LSB. При чем эти значения не периодические, а постоянны, то есть ноль в канале я вижу реже чем значение выше например 50 LSB. При этом у каждого канала свой шум и он также зависит от Rank'а присвоенного при конфигурировании канала. Частота тактирования АЦП = 36МГц. Если её опускать то ничего не меняется. Время сэмплирования стоит максимальное ADC_SampleTime_239Cycles5. Подскажите как получить адекватные значения по всем каналам? Кто сталкивался с такой проблемой? Или СТМ на это не способен в принципе и стоит сразу смотреть в сторону внешних АЦП?

Изменено пользователем Ruslan-maniak

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


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

При подключении входов к питанию значение с АЦП тоже не доходит до 4096 и составляет порядка 3900? Тогда вы забыли сделать калибровку.

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


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

При подключении входов к питанию значение с АЦП тоже не доходит до 4096 и составляет порядка 3900? Тогда вы забыли сделать калибровку.

До 4095 не доходит. В районе 4000 LSB. плюс-минус. Калибровку произвожу

    
ADC_Cmd(adc->number, ENABLE);   
    
    // калибровка АЦП
    ADC_ResetCalibration(adc->number);
    while(ADC_GetResetCalibrationStatus(adc->number));
    ADC_StartCalibration(adc->number);
    while(ADC_GetCalibrationStatus(adc->number));     
    
    ADC_SoftwareStartConvCmd(adc->number, ENABLE);

 

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


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

Vref смотрели, нормальное, не шумит, не возбуждается, не звенит?

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


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

Vref смотрели, нормальное, не шумит, не возбуждается, не звенит?

Действительно, там шумновато. амплитуда шумов около 0.05 В. Попробую докинуть ёмкости. Но мне кажется, дело не только в шуме.

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


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

Но мне кажется, дело не только в шуме.

В питании в целом?

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


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

. . . Даже если их накоротко посадить на землю, то на некоторых каналах (особенно у ADC3) измерения достигают 100-150 LSB. . . .
Может в разводке дело, по GND переток под процессором ? Соблюдено, то что в даташите "General PCB design guidelines" ?

ps :)

ну, и банальная промывка платы рекомендуется.

 

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


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

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

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


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

Некоторые дополнения. Смотрите, у меня 20 идентичных по схемотехнике каналов. Все 20 каналов идут через повторители на ОУ. Перед ОУ стоят цифровые потенциометры которые в данный момент прижимают сигнал к земле накоротко. Если замерить мультиметром то сопротивление получается там около 200-300 Ом. Так вот сейчас для эксперимента запускаю измерения только для одного канала циклически через ДМА (буфер на 10 замеров) и каждую миллисекунду смотрю что в буфере. И например на канале ADC1-15 среднее значение этого буфера всегда равно нулю, а максимальный пик фиксируется за длительное время не более 10 LSB. Если же взять канал ADC1-10 то там картина разительно отличается. Среднее значение буфера скачет от 20 до 80 LSB. А максимальный пик фиксируется практически сразу в районе 180 LSB, и постепенно доходит до 200 LSB. Даже если я замыкаю напрямую землю контроллера и пин АЦП. На мой взгляд такое поведение вряд ли можно объяснить (оправдать) неправильной разводкой (разводка отличается лишь тем что длина дорожки от ОУ до АЦП больше на 4 см), непромывкой, или проблемами с питанием. Кто что думает?

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


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

Да не над чем тут думать, кроме очередной страницы ни о чём. Когда таки соизволите додумать выложить схему и разводку — вот тогда подумаем подумать.

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


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

. . . Перед ОУ стоят цифровые потенциометры которые в данный момент прижимают сигнал к земле накоротко. Если замерить мультиметром то сопротивление получается там около 200-300 Ом. . . .
Накоротко - это перемычка входа на GND, все остальное от линии отключено.

Если стоят повторители (как оказалось), зачем время выборки максимальное ? Поставьте среднее, минимальное.

 

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


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

Калибровку произвожу

    
ADC_Cmd(adc->number, ENABLE);   
    
    // калибровка АЦП
    ADC_ResetCalibration(adc->number);

"Если ничего не помогает - прочтите, наконец, инструкцию"...

Note: 1 It is recommended to perform a calibration after each power-up.

2 Before starting a calibration the ADC must have been in power-off state (ADON bit = ‘0’) for

at least two ADC clock cycles.

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


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

Частота тактирования АЦП = 36МГц.

Максимальная частота тактирования АЦП - 14 МГц. Отсюда и могу быть проблемы.

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


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

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

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

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

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

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

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

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

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

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