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

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

Господа, подскажите по аппаратному усреднению отсчётов в АЦП 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

 

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

Спасибо.

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

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


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

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

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

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


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

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." 

 

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

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

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


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

10 минут назад, euthon сказал:

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

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

Цитата

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

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

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


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

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

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


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

1 minute ago, Михась said:

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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