Jump to content

    
Sign in to follow this  
euthon

STM32L4 АЦП аппаратное усреднение

Recommended Posts

Господа, подскажите по аппаратному усреднению отсчётов в АЦП STM32L4.

 

Возникла необходимость измерять температуру с помощью АЦП встроенного в STM32L431 и RTD pt100 (особой точности не требуется). Подключил внешний усилитель, собственно RTD, настроил АЦП - что-то вроде измеряет. Появилось желание немного улучшить качество измерений сделав простейший фильтр для отсечения сетевых наводок и заодно реализовать усреднение сигнала для уменьшения шумов используя для этого функции "железа". В Reference Manual функциональность АЦП неплохо описана, но остаются некоторые вопросы.

 

В частности, в мануале сказано: "The oversampling can be enabled for [regular and injected sequences] with some limitations if they have to be used simultaneously (this is related to a unique accumulation unit)." Для меня здесь ключевые слова "unique accumulation unit." Означает ли это, что только один канал может усредняться одновременно? Т.е. аппаратное усреднение нескольких каналов (сканирование) запускаемое по внешнему триггеру невозможно?

 

Вопрос возникает потому что ниже по тексту мануала есть следующие фразы: "It is possible to oversample auto-injected sequences [...] It is possible to have also the triggered mode enabled, using the TROVS bit. In this case, the ADC must be configured as following: JAUTO = 1, DISCEN = 0, JDISCEN = 0, ROVSE = 1, JOVSE = 1 and TROVSE = 1". Очевидно, что в AUTO-INJECTED режиме оцифровывается (и усредняется?) как минимум два канала. На мой взгляд, это противоречит предыдущему параграфу.

 

Собственно требуется получить такую последовательность:

Trigger->Ch1_Sample0 -> Ch2_Sample_0 -> ChN_Sample0 ->Wait->Trigger -> Ch1_Sample1 -> Ch2_Sample_1 -> ChN_Sample1 ->Wait->Trigger->Ch1_SampleN -> Ch2_Sample_N -> ChN_SampleN

 

Проверить этот момент экспериментально затруднительно, т.к. всё вроде работает, но в когда именно запускается оцифровка, что и как усредняется сходу не видно. Если только с собственного ЦАПа сигнал обратно на вход завести.

Спасибо.

Edited by euthon

Share this post


Link to post
Share on other sites

"Отсечение сетевых наводок" несовместимо с "аппаратным усреднением". Потому что первое должно делаться перед вторым. Т.е. - так же аппаратно. А в вашем МК имеется аппаратный медианный фильтр?

Так что скорей всего делать всё придётся программно.  :sad:

Share this post


Link to post
Share on other sites
12 minutes ago, jcxz said:

"Отсечение сетевых наводок" несовместимо с "аппаратным усреднением". Потому что первое должно делаться перед вторым. Т.е. - так же аппаратно.

Почему? В мануале сказано "The averager can also be used for basic filtering purpose.  ... it can be used as a notch filter to reject constant parasitic frequencies (typically coming from the mains ...)".  Насколько я понимаю, для одного канала это точно работает. А вот для нескольких - вопрос, ибо "unique accumulation unit." 

 

Медианного фильтра нет, но есть зачатки ЦСП, наверное несложно и наваять, но я не вникал, т.к. пока начинающий. И вообще, хочется, чтобы железо работало - за него деньги уплочены.

Edited by euthon

Share this post


Link to post
Share on other sites
10 минут назад, euthon сказал:

Почему? В мануале сказано

Потому что для отсечения случайных помех, самое правильное решение - медианный фильтр. Если станете сразу усреднять, то просто добавите мощную помеху в сигнал, частично её размазав по сигналу.

Цитата

Медианного фильтра нет, но есть зачатки ЦСП, наверное несложно и наваять, но я не вникал, т.к. пока начинающий. И вообще, хочется, чтобы железо работало - за него деньги уплочены.

Тогда придётся аппаратное усреднение отключать. О чём я и писал.

Share this post


Link to post
Share on other sites
1 minute ago, Михась said:

Определить работает ли аппаратное усреднение можно подав на вход прямоугольник. Очевидно что после усреднения будет трапеция.

Действительно. Но нужно синхронизироваться с усреднителем (он же по триггеру работает). Проблемка в том, что на своей платке я уже все лишние ноги на "землю" посадил. Попробую один из "кнопочных" входов под выход таймера использовать...

Share this post


Link to post
Share on other sites
4 часа назад, euthon сказал:

Но нужно синхронизироваться с усреднителем (он же по триггеру работает).

Необязательно - делайте скользящее среднее.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this