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

STM32 и аналоговый сигнал на вход ADC

В 28.10.2022 в 14:45, Lmx2315 сказал:

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

 

ну я думаю это от того что adc  не откалибрована. Но думаю все таки схематически вопрос решить . програмно конечно можно но по идее на adc должно быть выпрямленное напряжение ИМХО.

Обработка сигнала написана ниже 

void audioErrorTrack (uint32_t *setTimeDelay,uint32_t *timeCountDelay, float *ADCMess) {
   
  ADC_Convers( ADCMess);
  if (*ADCMess){
//    if (*setTimeDelay==*timeCountDelay){    
//     HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
       GPIOB -> BSRR = GPIO_BSRR_BS0;
        GPIOB -> BSRR = GPIO_BSRR_BS1;
        *timeCountDelay=0;
        printf("%.2fv \r\n",*ADCMess);
       }
        else{
              GPIOB -> BSRR = GPIO_BSRR_BR0;
              GPIOB -> BSRR = GPIO_BSRR_BR1;
              printf("NULL v \r\n");     
   }
}

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


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

В 28.10.2022 в 14:58, reg33 сказал:

ну я думаю это от того что adc  не откалибрована. Но думаю все таки схематически вопрос решить . програмно конечно можно но по идее на adc должно быть выпрямленное напряжение ИМХО.

Обработка сигнала написана ниже 

void audioErrorTrack (uint32_t *setTimeDelay,uint32_t *timeCountDelay, float *ADCMess) {
   
  ADC_Convers( ADCMess);
  if (*ADCMess){
//    if (*setTimeDelay==*timeCountDelay){    
//     HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
       GPIOB -> BSRR = GPIO_BSRR_BS0;
        GPIOB -> BSRR = GPIO_BSRR_BS1;
        *timeCountDelay=0;
        printf("%.2fv \r\n",*ADCMess);
       }
        else{
              GPIOB -> BSRR = GPIO_BSRR_BR0;
              GPIOB -> BSRR = GPIO_BSRR_BR1;
              printf("NULL v \r\n");     
   }
}

да и еще заметил если сигнала от внешнего источника нет то по схеме два резистора и конденсатор присутствует 0,3v и adc это видит если отключить аудио провода то напряжение становиться 1,74v . Откуда оно берется? Напряжения замерены на входе adc тестером.

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


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

1 час назад, reg33 сказал:

ну я думаю это от того что adc  не откалибрована. Но думаю все таки схематически вопрос решить . програмно конечно можно но по идее на adc должно быть выпрямленное напряжение ИМХО.

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

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

Потом, о какой минимальной частоте сигнала на входе идёт речь? Ведь, чем меньше частота анализируемого сигнала - тем дольше нужно делать интервал измерения, если речь идёт об АЦп или тем уже делать полосу пропускания фильтра ФНЧ если речь идёт об выпрямлении сигнала.

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

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


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

4 часа назад, reg33 сказал:

поставил на место как советовали делитель резестивный и после него конденсатор

Так не советовали, а советовали конденсатором заменить диод.

Какие проблемы показать фактическую схему? Иначе, в очередной раз, десяток страниц ни о чём гарантированы.

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


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

В 28.10.2022 в 19:20, Plain сказал:

Так не советовали, а советовали конденсатором заменить диод.

Какие проблемы показать фактическую схему? Иначе, в очередной раз, десяток страниц ни о чём гарантированы.

щас схема выглядит так 

image.thumb.png.12b5bd36af4cf1f3547a8b18902ebfb8.png

В 28.10.2022 в 16:29, Lmx2315 сказал:

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

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

Потом, о какой минимальной частоте сигнала на входе идёт речь? Ведь, чем меньше частота анализируемого сигнала - тем дольше нужно делать интервал измерения, если речь идёт об АЦп или тем уже делать полосу пропускания фильтра ФНЧ если речь идёт об выпрямлении сигнала.

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

Ну у меня сигнал в принципе звуковой ориентировочно будет в диапазоне от 1 до 5 кГц. Щас adc настроена на  12 MHz .ADC  делает выборки с частотой 1,5 MHz. Измерения произвожу каждые 300 мС. А возможно выпрямить переменное напряжение диодным мостом? а потом уже мерять постоянку?  

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


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

12 минут назад, reg33 сказал:

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

Можно, с ухудшением точности и температурной стабильности. Причем чем меньше измеряемое напряжение, тем катастрофичнее на точность будет влиять падение напряжения на диодах

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


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

18 минут назад, reg33 сказал:

щас схема выглядит так

Ничего странным не кажется ?

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


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

В 31.10.2022 в 16:15, Vasily_ сказал:

Ничего странным не кажется ?

ну как посоветовали так сделал

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


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

22 минуты назад, reg33 сказал:

ну как посоветовали так сделал

Такую схему вам никто не советовал.

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


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

В 31.10.2022 в 16:55, Vasily_ сказал:

Такую схему вам никто не советовал.

Буду признателен если посоветуйте правильную схему

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


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

19 минут назад, reg33 сказал:

Буду признателен если посоветуйте правильную схему

Для начала конденсатор переместите между переменным резистором R1 и делителем R2/R3.

Схема.png

Затем отключите источник сигнала и закоротите вход на землю. Измеряйте напряжение на входе АЦП с помощью самого АПЦ или мультиметра должно быть в районе 1В.

Далее если вы хотите использовать всю шкалу АЦП вам придется убрать перекос делителя, для этого необходимо заменить R2 на 500 Ом, в этом случае у вас на входе АЦП будет в районе 1,65В.

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

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

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


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

2 часа назад, reg33 сказал:

Щас adc настроена на  12 MHz

Да уж, при максимально разрешенной 1мГц ? 

Читайте внимательно даташит для начала, только потом переходите к схеме.

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


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

12 - нормально, ещё 2 МГц до предела, а вот частота выборки (1.5 МГц) тут да - перебор в 1.5 раза.
Желать оцифровывать до 5 кГц и задирать выборку к мегагерцу? "На куа", в смысле зачем?

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


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

42 minutes ago, Obam said:

Желать оцифровывать до 5 кГц и задирать выборку к мегагерцу? "На куа", в смысле зачем?

А разве не понятно? Достаточно почитать даташиты на микросхемы-измерители RMS, чтобы стало понятно, зачем для измерений сигнала сетевого напряжения 50/60Гц используется частота выборки 1-2МГц. Сразу говорю, что дело не в точности, даже 50-ая гармоника сетевого напряжения это всего лишь 2500Гц.. У AD в даташитах вся теория хорошо изложена.

Хотя, похоже, ТС сдуру такую частоту задал.

 

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


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

On 10/26/2022 at 2:13 AM, reg33 said:

Что я делаю не так ?

Не пользуетесь симулятором электронных схем. Рекомендую Micro Cap. Там можно собрать и аппробировать различные варианты входного тракта до того, как Вы сожгёте звуковую карту ноутбука.

image.thumb.png.dbba7242dbb0937742ab1109f07bb93f.png

Впрочем, симулятор может быть любой другой: LTSpice, Multisim, Qucks и т.п. Неважно. Можно даже взять старую добрую бумагу, карандаш и калькулятор)

Но есть нюанс: какой бы симулятор Вы не использовали, он не заменит отсутствие знаний по схемотехнике. Но всё же лучше сначала в нём, чем с реальными компонентами и ноутбуком.

P.S. ФНЧ не нарисовал перед АЦП...

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


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

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

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

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

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

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

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

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

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

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