euthon 0 7 февраля, 2019 Опубликовано 7 февраля, 2019 (изменено) · Жалоба Господа, подскажите по аппаратному усреднению отсчётов в АЦП 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 Проверить этот момент экспериментально затруднительно, т.к. всё вроде работает, но в когда именно запускается оцифровка, что и как усредняется сходу не видно. Если только с собственного ЦАПа сигнал обратно на вход завести. Спасибо. Изменено 7 февраля, 2019 пользователем euthon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 февраля, 2019 Опубликовано 8 февраля, 2019 · Жалоба "Отсечение сетевых наводок" несовместимо с "аппаратным усреднением". Потому что первое должно делаться перед вторым. Т.е. - так же аппаратно. А в вашем МК имеется аппаратный медианный фильтр? Так что скорей всего делать всё придётся программно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
euthon 0 8 февраля, 2019 Опубликовано 8 февраля, 2019 (изменено) · Жалоба 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." Медианного фильтра нет, но есть зачатки ЦСП, наверное несложно и наваять, но я не вникал, т.к. пока начинающий. И вообще, хочется, чтобы железо работало - за него деньги уплочены. Изменено 8 февраля, 2019 пользователем euthon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 8 февраля, 2019 Опубликовано 8 февраля, 2019 · Жалоба 10 минут назад, euthon сказал: Почему? В мануале сказано Потому что для отсечения случайных помех, самое правильное решение - медианный фильтр. Если станете сразу усреднять, то просто добавите мощную помеху в сигнал, частично её размазав по сигналу. Цитата Медианного фильтра нет, но есть зачатки ЦСП, наверное несложно и наваять, но я не вникал, т.к. пока начинающий. И вообще, хочется, чтобы железо работало - за него деньги уплочены. Тогда придётся аппаратное усреднение отключать. О чём я и писал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Михась 2 8 февраля, 2019 Опубликовано 8 февраля, 2019 · Жалоба Определить работает ли аппаратное усреднение можно подав на вход прямоугольник. Очевидно что после усреднения будет трапеция. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
euthon 0 8 февраля, 2019 Опубликовано 8 февраля, 2019 · Жалоба 1 minute ago, Михась said: Определить работает ли аппаратное усреднение можно подав на вход прямоугольник. Очевидно что после усреднения будет трапеция. Действительно. Но нужно синхронизироваться с усреднителем (он же по триггеру работает). Проблемка в том, что на своей платке я уже все лишние ноги на "землю" посадил. Попробую один из "кнопочных" входов под выход таймера использовать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 63 8 февраля, 2019 Опубликовано 8 февраля, 2019 · Жалоба 4 часа назад, euthon сказал: Но нужно синхронизироваться с усреднителем (он же по триггеру работает). Необязательно - делайте скользящее среднее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
euthon 0 9 февраля, 2019 Опубликовано 9 февраля, 2019 · Жалоба В общем, разобрался я как оно всё работает. Действительно, можно включить аппаратный усреднитель на несколько каналов. Тогда АЦП выполнит необходимое количество усреднений по одному каналу, затем по второму и т.п. Т.е. это не совсем то, что мне нужно. Придётся таки усреднять програмно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться