Например TDA7294

Форум РадиоКот • Просмотр темы - STM32, первые впечатления.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 26, 2025 18:25:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 124 ]    , , 3, , , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Чт авг 27, 2020 10:48:19 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
НЧ фильтр с постоянной времени 0.001 c. Выборка 50кГц.
Прога в микробейсике.

program filtr
dim akk as longword
dim Vout as word
dim Vin as word
main:
ADC1_Init()
ADC_Set_Input_Channel(6)

GPIO_Digital_Output(@GPIOB_BASE, _GPIO_PINMASK_ALL)

while TRUE
Vin = ADC1_Read(6)
akk = akk + Vin - Vout
Vout = akk / 50
GPIOB_ODR = Vout
wend
end.

Сигнал на выходе ЦАПа из резисторов. На входе меандр 240 Гц.
Вложение:
filtr.jpg [65.96 KiB]
Скачиваний: 245


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Чт авг 27, 2020 18:08:03 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24626
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
НЧ фильтр с постоянной времени 0.001 c. Выборка 50кГц.

Из приведенной программы следует, что реализован IIR LPF первого порядка в узких кругах именуемый ЭКСПОНЕНЦИАЛЬНЫМ ФИЛЬТРОМ СГЛАЖИВАНИЯ имеющим простейшую математику вида:
Uout [i+1]=(1-b)*Uout[i]+b*Uin[i+1], где b<1.
Реализован коэффициент фильтра b=0,02.
Из той же программы совершенно не следует, что частота выборок равна 50 кГц, как не следует и соответствие фильтра этой частоте....
:dont_know:
:tea:
Экспоненциальные фильтры обычно применяют не для фильтрации сигналов, а для сглаживания пульсаций. Это канешна тоже фильтрация, но самая примитивная.
Странно ее реализовывать на АРМах. Такой фильтр на предложенной частоте дискретизации может переварить и восьмибитник...
И уж тем более, для его расчета не требуется никакая программа.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Чт авг 27, 2020 19:07:33 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
КРАМ, это была проба пера, но я ценю Ваши комментарии. Прога Filter Solutions мне выдала готовый код на Си, но я с ним не разобрался. Алгоритм отрабатывал ручками в визуал бейсике. Если завтра сам не разберусь, то понадобится Ваша помощь. Если внимательно смотреть на выходной сигнал с ЦАПа, то видны некоторые дефекты, два пина PB3 и PB4 оказались нерабочими. То ли брак, то ли фаза на корпусе компа виновата. Обязательно заземляйте комп и другие сетевые приборы. Евростандарт обязывает ставить кондеры с фазы на корпус. Европейцы ружья кирпичом не чистят и имеют на вилках третий контакт заземления.:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Чт авг 27, 2020 20:37:19 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Цитата:
А если обладает, то почему бы ему пару книжек по цифровой обработке сигналов не осилить?

Eddy_Em, не осилит. У тебя на на лице учёная дотошность написана. Для тебя осиливать- профессиональная привычка. У поколения некст терпежа хватает на новостную заметку в один экран. Не суди людей, тем более молодых, по себе.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 01:02:58 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -24
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
tonyk, если не осилит, то пусть сливается в канализацию! Тем паче, у нас нонче "капитализм", и слабые просто вымирают. Псевдоестественный отбор...

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 09:54:37 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
Filter Solutions генерирует не совсем корректный код. Подправил, как сам понимаю и заработало.
Там еще все типы float и пришлось переводить в целые для быстродействия. А раз нельзя тупо копировать, то буду еще переводить на бейсик.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 10:11:52 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
linkov1959 писал(а):
Там еще все типы float и пришлось переводить в целые для быстродействия.
Возьмите МК с аппаратной поддержкой плавающей точки (M4, M7).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 12:25:56 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24626
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Там еще все типы float и пришлось переводить в целые для быстродействия

Рекурсивные фильтры нельзя переводить в целые. Нужен либо флоат, либо фикспойнт.
Иначе рекурсивный фильтр будет иметь порог в связи с умножением входного сигнала на коэффициент меньше 1.
Вы плавно приходите к пониманию простого факта - DSP не для школьнегов. За внешней якобы простотой кроется фундаментальная теория. И без ее понимания ничего путного получить невозможно.
Но у меня есть практический совет. Переходите на FIR. Он гораздо проще в реализации реальных фильтров с заданной АЧХ, а не эллиптического недофильтра.
Форма АЧХ в FIR определяется оконной функцией. А кроме того, можно использовать штатные DSP инструкции процессора в очень простом исполнении.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 14:29:27 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
КРАМ, мне реально нужен полосовой 4-го порядка до 1кГц с полосой 10-20Гц.
Я пробовал FIR в Filter Solutions, мне не понравился. В целые должно перевестись до 4-го порядка точно.
Целый час потратил, что бы расшифровать выражение [i<3?i:4-i] :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 14:56:33 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24626
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
В целые должно перевестись до 4-го порядка точно.

НЕТ!!!
Даже первый порядок - нет. Я объяснил почему. Только фикспойнт, как разновидность целого, но с фиксированной дробной частью.
На FIR такой проблемы нет. Там разрядность аккумулятора решает все, а числа могут быть целые и без дробной части.
Я пробовал FIR в Filter Solutions, мне не понравился.

Чем конкретно не понравился?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 18:52:28 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Цитата:
Вы плавно приходите к пониманию простого факта - DSP не для школьнегов. За внешней якобы простотой кроется фундаментальная теория. И без ее понимания ничего путного получить невозможно.

Вот как раз теорию читать и не хотят. Потому и не понимают нифига. Я двумя руками "за" то, о чём говорит КРАМ. Для осознания глубины непонимания вопроса, нарисуйте схему аналоговой части своего цифрового фильтра. Нарисуете с первого раза правильно- пишите номер телефона, а я перевожу на него деньги на пиво.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 19:36:53 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
КРАМ, АЧХ кривобокая и в коде сотни коэффициентов.
tonyk, Вы не в теме.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 20:24:35 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1270
Рейтинг сообщения: 0
Цитата:
tonyk, Вы не в теме.

Я-то как раз в теме, а тот кто написал, что я не в теме, не понял сути моего вопроса. И подвоха. Н-да, разберитесь с теорией для начала. С такой базой лезть в эту область не стОит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт авг 28, 2020 22:42:24 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24626
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
КРАМ, АЧХ кривобокая и в коде сотни коэффициентов.

Эти "сотни коэффициентов" являются той самой оконной функцией. Длина оконной функции равна длине буфера сигнала. Форма АЧХ определяется формой оконной функции. ФЧХ абсолютно линейна. Фильтр абсолютно устойчив. Код фильтра при использовании DSP инструкций РОВНО ТРИ ИНСТРУКЦИИ. То есть фильтр - это тупо сумма произведений отсчетов в буфере на значения оконной функции с одинаковыми индексами. Ну еще нормировка после этого.
Что касается кривобокости, то полагаю, что Вы пытались задать некорректные условия реализации фильтра. БИХ при таких условиях просто возбуждается.
Открыл онлайн расчет КИХ (FIR) и за одну минуту получил вот такую АЧХ:
Изображение
Стесняюсь спросить... А где тут "кривобокость? :dont_know: :tea:
Параметры:
Центральная частота 1кГц
Частота дискретизации 10 кГц
Полоса пропускания 100 Гц
Подавление вне полосы -80дБ
Неравномерность в полосе 1дБ.
Итого 601 тапов фильтра.
При системной частоте МК 100 МГц фильтр будет посчитан примерно за 6 мкс. При частоте дискретизации 10 кГц (период отсчетов 100 мкс) - более чем легкий режим.
http://t-filter.engineerjs.com/
tonyk, Вы не в теме.

Вопрос был про антиалиасинг. Актуальный вопрос для полосового фильтра, патамушта имеет место быть противоречие с высокой частотой дискретизации - фильтр перестает быть реализуемым и потребуется два последовательных фильтра с децимацией между ними, тогда зеркальные частоты будут значительно отодвинуты от полосы пропускания фильтра и реализация антиалиасинга по входу АЦП будет простой. В предложенном выше фильтре для обеспечения подавления зеркальных частот на величину заграждения самого фильтра в антиалиасинге требования оказываются слишком высокими - примерно -35 дБ/окт.
Но ситуация с БИХ будет примерно такой же.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 09:29:05 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
По полосовым фильтрам 4-го порядка такой расклад выходит.
На каждую выборку приходится десяток умножений Float. Было 20мкС, стало 25.
Разогнал АЦП с 12 до 18 Мгц, работает стабильно, стало опять 20мкС.
Выходит, что максимальная частота выборки 50кГц. Ее нужно задавать таймером.
Повысить можно, если использовать stm32f401 c аппаратным Float и DMA c АЦП. Но в stm32f401 нет ни одного полного порта и придется ставить stm32f407 с внутренним ЦАП, а он дорогой, если на плате.
Прога Filter Solutions выдает код на Си. Замучился переводить в микроБейсик и поставил себе микроСи.
Почти тоже самое, легко освоился.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 10:01:42 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
linkov1959 писал(а):
Выходит, что максимальная частота выборки 50кГц.
Нет. В STM32F103 максимальная частота оцифровки 1 миллион выборок в секунду.
linkov1959 писал(а):
Повысить можно, если использовать stm32f401 c аппаратным Float и DMA c АЦП.
Что мешает в STM32F103 использовать таймер+АПЦ+DMA? Я об этом уже писал. https://radiokot.ru/forum/viewtopic.php ... 4#p3882554


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 10:25:07 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
Мурик, Float вычисления тормозят. Пока мне 50кГц даже много, буду на 10-20кГц работать.
Сам по себе STM32F407 не дорогой, но придется плату самому делать, зато ЦАП внутри. Моя утюжная технология пока не справляется, но будем пробовать улучшить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 11:57:53 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
Тогда можно попробовать STM32H750VBT6. Стоит примерно как STM32F407.
Аппаратно поддерживает float и double. Работает на частоте 480 МГц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 12:18:57 
Держит паяльник хвостом

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
Мурик, шустрый кристалл и ЦАП есть. Я с внутренним ЦАП не работал. Там аналоговый выход коммутируется на любой пин?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пн авг 31, 2020 12:37:56 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24626
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
По полосовым фильтрам 4-го порядка такой расклад выходит.
На каждую выборку приходится десяток умножений Float. Было 20мкС, стало 25.
Разогнал АЦП с 12 до 18 Мгц, работает стабильно, стало опять 20мкС.
Мыши кололись, плакали, но продолжали жрать кактус...
Какой то фееричный набор несуразностей...
Зачем нужно 18 МГц АЦП, если выборки 50 кГц? Впрочем, выборки 50 кГц так же ничем не обоснованы. Сигналы никак не определены от слова совсем.
Зачем применять рекурсивные фильтры в МК с практически неограниченным объемом ОЗУ для таких задач? Просто чтобы получить геморрой с флоатами?
Основная проблема с флоат без FPU не умножения, а сложения-вычитания, ибо требуется многократное приведение к нормативному виду и обратно.

Добавлено after 8 minutes 19 seconds:
Что мешает в STM32F103 использовать таймер+АЦП+DMA?

Ну наверное рекурсивная фильтрация... :) Какой смысл в ДМА, если кольцевой буфер как таковой не нужен или он совсем короткий?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 124 ]    , , 3, , , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y