Например TDA7294

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

Текущее время: Сб июл 26, 2025 21:30:33

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


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



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 03:33:29 
Мудрый кот
Аватар пользователя

Карма: 27
Рейтинг сообщений: 77
Зарегистрирован: Пн июн 24, 2013 23:00:42
Сообщений: 1781
Откуда: Казахстан
Рейтинг сообщения: 0
Такой вот вопрос. Кто как реализует функции непрерывной обработки в реальном времени, допустим аналогового сигнала, если нужно делать что-то еще.
Ну вот допустим есть f103. Мне нужно взять АЦП, скорректировать его по какому-то алгоритму и вывести в ЦАП, и это все с минимальной задержкой. Недавно сталкивался с этим. Но кроме этого мне нужно выводить значения на дисплей, но можно не так часто, скажем раз в секунду. А если еще получить что-то по UART и отправить.
И того при выводе на дисплей или работе с UART получаем ступеньку на синусе.
Решил очень топорно- просто стал посылать нужное в UART, а там уже AVR c дисплеем. Итого что-то около 200Гц идеального синуса в 12 бит получилось.
Загнать обработку в прерывание я так понимаю сломает UART как минимум на прием. Вот собственно и не понимаю как.

_________________
Изображение
Ваши хотелки за ваши деньги


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 04:12:35 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
я бы по прерыванию от uart rx/tx сделал простейшую запись в rx fifo и из tx fifо (софтовые кольцевые буферы) буквально 5-8инструкций.
а их заполнение и считывание делал бы в бесконечном цикле вместе с дисплейным алгоритмом ( который выполняется только если rx fifo далек от переполнения)

а обработки adc/dac сделать в прерывании по таймеру, c более низким приоритетом чем uart rx.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 05:42:49 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23922
Откуда: Московская область, Фрязино
Рейтинг сообщения: 3
Ну вот допустим есть f103. Мне нужно взять АЦП, скорректировать его по какому-то алгоритму и вывести в ЦАП, и это все с минимальной задержкой. Недавно сталкивался с этим. Но кроме этого мне нужно выводить значения на дисплей, но можно не так часто, скажем раз в секунду. А если еще получить что-то по UART и отправить.

Для сигнальной обработки есть DMA. И в качестве реквеста к нему источник в виде таймера.
Остальное зависит от диаграммы работы АЦП и ЦАПа. Из условия задачи непонятна эта самая диаграмма. Но вывод в ЦАП должен быть очевидно по таймеру и через DMA. Зазор между выборкой АЦП и выводом в ЦАП будет СТРОГО ДЕТЕРМИНИРОВАННЫМ, ибо определится таймером. И в этом зазоре делайте свой расчет и обрабатывайте УАРТ с необходимым приоритетом. УАРТ в силу своей тормознутости обычно на обработку никак не влияет. Только писать код желательно в CMSIS, чтобы уменьшить латентность обработки прерываний. И без колбэков, естественно...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 16:15:52 
Мудрый кот

Карма: 11
Рейтинг сообщений: 114
Зарегистрирован: Пт июн 01, 2018 07:28:45
Сообщений: 1759
Рейтинг сообщения: 0
Либо 2 МК, либо программируемая логика.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 18:37:32 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15108
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Основная задача - АЦП+ЦАП (предпочтение наличию аппаратных модулей).
Индикация фоном на основе таймера и пары буферов.
То же и с UART - работа через буфер при скорости, допускающей задержку считывания данных на интервал на порядок более, чем циклы обработки данных.
Но таки максимум быстродействия при дополнительном МК, занимающимся обработкой данных АЦП+ЦАП.
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн окт 11, 2021 19:10:23 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2516
Рейтинг сообщения: 0
У STM32 есть DMA, что очень хорошо расширяет возможности!
Ну и, понятное дело, нельзя пользоваться калокубом.

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


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 09:48:12 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23922
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Но таки максимум быстродействия при дополнительном МК, занимающимся обработкой данных АЦП+ЦАП.
:roll:

Второй МК тут вообще ни к чему. Проблема обмена с быстрым процессом так и останется.
Вангую, что проблема ТС совсем не в скорости, а в переменной задержке между захватом сигнала ADC и его выводом в DAC. Поэтому важно лишь обеспечить правильный захват по Найквисту и ОДНОВРЕМЕННО с захватом выводить предыдущее пересчитанное значение в DAC. Будет задержка на один отсчет на выходе относительно входа и ПОЛНОЕ СОХРАНЕНИЕ ФОРМЫ СИГНАЛА.
ЗЫ. Ничего не понял из опасений ТС за прием по УАРТу. Это вообще асинхронный процесс. Самого низкого приоритета. Байт будет в буфере приема до завершения приема следующего байта. Там времени туева хуча на обработку буфера в коде.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 13:27:29 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
на высоких скоростях uart без подтверждения готовности приемника нередко требует довольно оперативного зачитывания данных чтоб избежать потерь, я не читал про f103 но нередко uart без аппаратного fifo, точнее fifo на 1 байт)).

а синхронизировать adc/dac обмен кмк нужно в зависимости от тяжести алгоритма обработки, если это безусловные 10 инструкций скажем или легко подравнять по тактам то можно в коротком таймерном пререывании с высшим приоритетом зачитать/обработать/ответить, не мудрствуя лукаво ...
а иначе в таймере только зачитывать adc в буфер и выкидывать из буфера вывода в dac а глубина буферов (задержка выдачи в dac) будет определяться латентностью алгоритма и производительностью оставшейся от других задач. dma - не знаю насколько даст преимущество, если речь о паре байтов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 13:58:32 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23922
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
О каких "высоких скоростях" УАРТ идёт речь? Даже при рейте 115200 байт принимается почти 90 мкс. Это для контроллера с циклом в 20 нс будет составлять 4500 машинных циклов. ЧЕТЫРЕ С ПОЛОВИНОЙ ТЫСЯЧИ, Карл!!! )))
И ДМА обеспечит СИНХРОНИЗМ захвата данных и вывода на ЦАП. При формировании отсчётов сигнала важна стабильность интервалов.Ни в каких прерываниях её не обеспечить.
Забудьте о задержке. Она не имеет особого значения если стабильна и не пропускает отсчеты.
Вы пытаетесь решить сигнальные задачи хаотичными любительскими методами.
Альтернативой ДМА при выводе в ЦАП может быть только наличие у ЦАПа синхронного режима работы, когда программный вывод в буфер ЦАПа не изменяет выходной сигнал, а лишь при приходе синхросигнала буфер защелкивается в выходной регистр ЦАПа и на его выходе появляется новое значение.


Последний раз редактировалось КРАМ Вт окт 12, 2021 14:17:48, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 14:14:38 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
50MHz :o ... дауж и разработчики ставят 2й mpu чтоб оcвободить такого монстра от "лишних" задач ... ;)
никак не избавлюсь от привычки что каждый такт может быть на счету но да, это уже слишком архаичный подход ...

да, c прерываниями асинхронность 1-3такта обычно тоесть целых 60nS у нас)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 14:22:05 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23922
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
да, c прерываниями асинхронность 1-3такта обычно тоесть целых 60nS у нас)

Откуда дровишки, милейший? Латентность прерываний у АРМов выше нулевых кортексов плавает от 6 до 20 машинных циклов. И нахрена грузить код всякой белибердой тогда, когда драйвер кода способен легко решать задачи исходной настройкой? Только потому, что кому то трудно понять принципы работы?
ЗЫ 50 МГц для сигнальных задач - начальная школа. И там многое зависит не столько от частоты, сколько от архитектуры и особенностей периферии.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 17:02:24 
Друг Кота

Карма: 31
Рейтинг сообщений: 817
Зарегистрирован: Пт сен 10, 2021 15:19:36
Сообщений: 5556
Откуда: Протвино
Рейтинг сообщения: 0
>Латентность прерываний у АРМов выше нулевых кортексов плавает от 6 до 20 машинных циклов.
оопс, не работал с ними :oops: .
конечно нужно использовать доступный аппаратный функционал, и вообще странно не знать mpu c которым работаешь, я не пропогандирую колхоз-программирование :? , просто тема в общем разделе а не в arm/dsp и я подумал что взгляд из другого мира тоже может быть полезен. тс же не обозначил конкретные цифры времен и как он выбрал mpu.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт окт 12, 2021 17:10:15 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23922
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Контроллер он выбрал бюджетный (если не учитывать нынешнюю ценовую инфернальность с АРМами) и достаточный для решения задачи.
Не вижу проблем.
Решение задачи несложное, но нужны подробности, о чем я и написал в своем первом комментарии в теме.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн ноя 01, 2021 04:00:04 
Мудрый кот
Аватар пользователя

Карма: 27
Рейтинг сообщений: 77
Зарегистрирован: Пн июн 24, 2013 23:00:42
Сообщений: 1781
Откуда: Казахстан
Рейтинг сообщения: 0
КРАМ ругается что я тему запустил. Эх.
Вопрос тут скорее общий, а не по конкретной задаче.
Вопрос звучит скорее так- как распараллелить выполнение кода чтобы не просрать такты на задачи бывающие иногда, чтобы не попортить задачи выполняющиеся всегда и зависящие от всяких задержек.
Так например вывод на дисплей отнимает кучу тактов, что очень плохо отражается на выводе ЦАП.

_________________
Изображение
Ваши хотелки за ваши деньги


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Пн ноя 01, 2021 06:28:23 
Друг Кота
Аватар пользователя

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт ноя 02, 2021 18:00:02 
Друг Кота
Аватар пользователя

Карма: -74
Рейтинг сообщений: -204
Зарегистрирован: Пн окт 03, 2016 22:50:22
Сообщений: 3943
Рейтинг сообщения: 0
Мне нужно взять АЦП, скорректировать его по какому-то алгоритму и вывести в ЦАП, и это все с минимальной задержкой. Недавно сталкивался с этим. Но кроме этого мне нужно выводить значения на дисплей, но можно не так част

После корректировки выводить значения на дисплей и читать/писать в UART только потом выводить на ЦАП.

Добавлено after 1 minute 31 second:
Так например вывод на дисплей отнимает кучу тактов, что очень плохо отражается на выводе ЦАП.

Прикрутить дополнительный MCU к дисплею или использовать дисплей с SPI шиной.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт ноя 02, 2021 20:35:14 
Друг Кота
Аватар пользователя

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

Да чего там стесняться... Давай сразу ТРИ контроллера. Нет, лучше пять. Может еще на что нибудь пригодится... :))) :))) :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт ноя 02, 2021 20:46:58 
Друг Кота
Аватар пользователя

Карма: -74
Рейтинг сообщений: -204
Зарегистрирован: Пн окт 03, 2016 22:50:22
Сообщений: 3943
Рейтинг сообщения: 0
Да чего там стесняться... Давай сразу ТРИ контроллера. Нет, лучше пять. Может еще на что нибудь пригодится... :))) :))) :)))

Ну если человеку не хватает ресурсов на LCD дисплей, почему бы нет. Лучше я думаю использовать микроконтроллер с более высокой частотой, чем текущий.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт ноя 02, 2021 20:58:31 
Друг Кота
Аватар пользователя

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

Нет, не лучше. Во первых, текущий уже есть, а в нынешних диспозициях с другими проблема. Во вторых, другой потребует переделки железа. Ну и в третьих, я уже ранее сказал, он РЕШАЕТ поставленную задачу. Просто нужно "его правильно готовить"... :tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Обработка сигналов, прерывания, жопа в общем
СообщениеДобавлено: Вт ноя 02, 2021 21:07:39 
Друг Кота
Аватар пользователя

Карма: -74
Рейтинг сообщений: -204
Зарегистрирован: Пн окт 03, 2016 22:50:22
Сообщений: 3943
Рейтинг сообщения: 0
Нет, не лучше. Во первых, текущий уже есть, а в нынешних диспозициях с другими проблема. Во вторых, другой потребует переделки железа. Ну и в третьих, я уже ранее сказал, он РЕШАЕТ поставленную задачу.

Тогда отказаться от дисплея или использовать символьный монохромный некрасивый дисплей. Графические дисплеи требуют много ресурсов, подготовительная отрисовка информации в буфер RGB отнимает такты и процессорное время и частоты 16 MHz для графических дисплеев мало, просматривать слайды такое себе удовольствие. Подготовительная отрисовка и обработка входящей для дисплея информации можно реализовать как раз на отдельном микроконтроллере, который не будет отнимать процессорное время основного MCU.


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

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


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

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


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

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


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