Например TDA7294

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

Текущее время: Вс дек 21, 2025 22:47:24

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


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



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

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
NStorm, у меня максимальная частота 775Гц. Свою часть проекта я сделал, но не могу остановиться, буду осваивать и звуковой диапазон.


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

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

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


Последний раз редактировалось КРАМ Чт сен 03, 2020 22:21:06, всего редактировалось 1 раз.

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

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
КРАМ, всё уже работает как надо, проект закончен и реализован успешно. Дальше уже моё баловство, можно и побузить:)
А не замахнуться ли нам на преобразования Фурье, можно пока не быстрые! Вы готовы помогать конструктивно?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Чт сен 03, 2020 21:51:54 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1659
Рейтинг сообщения: 0
MikroElektronika имеет лучшие компиляторы на Си, бейсик и паскаль!
Обоснуйте! Я про си. Васик со товарищи я думаю тут мало кому интересен.


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

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

Помогать то я могу, только проку с Вашим подходом никакого не будет.
Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.
Чтобы грамотно работать с сигналами, нужно понимать теорию того, что Вы делаете. Что Вы знаете об FFT или DFT, кроме самой этой аббревиатуры?

Добавлено after 5 minutes 33 seconds:
Дальше уже моё баловство, можно и побузить:)

Я иногда собеседую кандидатов на работу. Ваши сентенции тут не дали бы Вам ни единого шанса, если бы Вы претендовали на обсуждаемую тут тематику. Серьезные проекты не пишут на Васиках. Из чего следует, что к "серьезному проекту", даже если он существует, лично Вы отношения не имеете.


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

Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1269
Рейтинг сообщения: 0
Вы часом аналоговый звук под сывороткой не знаете как сделать? А то тут коллега интересуется: https://radiokot.ru/forum/viewtopic.php?f=17&t=172440

То есть не мне одному это же самое показалось. На Easy Electronics тоже подобная тема прорезалась:
http://forum.easyelectronics.ru/viewtop ... 33&t=43138
Всё это напоминаетна сезонное обострения.

КРАМ, по-моему, имеет два высших образования: одно по электронике, второе по медицине. Или он монах, постигший высшую Суть, не знаю. Ничем другим я для себя не могу объяснить такое спокойное и методичное исследование патологического образа мышления, которым отличается ТС. Хотя... Может, просто тренируется на котиках. Завидую и преклоняюсь перед его терпением!


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

Карма: -2
Рейтинг сообщений: 35
Зарегистрирован: Пн сен 10, 2018 19:16:28
Сообщений: 923
Рейтинг сообщения: 0
Спасибо всем за участие. Проект на микроСи фильтр Баттерворта 725Гц, полоса 20Гц, выборка 20кГц.
Вложение:
си725_20.rar [132.57 KiB]
Скачиваний: 205


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

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
linkov1959 писал(а):
Посмотри код , его таймер калькулятор выдает.
По прерыванию от таймера. В котором ждете пока АПЦ оцифрует, а это время. Настройте периферию так чтобы таймер запускал АПЦ и в прерывании от которого забираете данные из регистра ADC1->DR. А еще лучше чтобы данные из АЦП забирал модуль DMA. Это уменьшит необходимое число прерываний, а значит увеличит достижимую частоту оцифровки, т. к. на вход и выход из прерывания нужно по 12 тактов.

linkov1959 писал(а):
MikroElektronika имеет лучшие компиляторы на Си, бейсик и паскаль!
Признавайтесь сколько вам заплатила микроэлектроника за рекламу их продукта? :)))
Эти компиляторы далеко не лучшие если их сравнить например с GCC, они существенно проигрывают в размере прошивки и скорости работы. :dont_know:

linkov1959 писал(а):
Да пофиг на события и прерывания, лишь бы работало!
Это не правильный подход к разработке. Обычно применяется большинством ардуинщиков и другими быдлокодерами. Как правило качество кода и надежность работы близки к нулю и вероятность ошибки в работе устройства велика.
Если проект серьезный, нужно писать так чтобы гарантировано работало без сбоев в любых ситуациях включая нестандартные режимы работы.


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

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

Я уже говорил. Не выйдет. Нечего копить. Каждый отсчет фильтр должен быть пересчитан.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт сен 04, 2020 12:01:02 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1659
Рейтинг сообщения: 0
Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Это смотря что называть "DSP-инструкциями". :)


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

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

Я не в курсе про "смотря что", но под DSP инструкциями называют MAC-инструкции и их разновидности. Это конвейерная операция вида Acc=Acc+X*Y с предвыборками операндов, поскольку шина одна, а операндов два, а исполняется инструкция за 1 машинный цикл при конвейере типовой для данной архитектуры длины. Таким образом, этот класс инструкций не может быть использован компилятором из-за своего ненативного механизма работы.


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

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1659
Рейтинг сообщения: 0
Я не в курсе про "смотря что", но под DSP инструкциями называют MAC-инструкции и их разновидности. Это конвейерная операция вида Acc=Acc+X*Y с предвыборками операндов

IAR for ARM 7.80.4:
Код:
                    In section .text, align 2, keep-with-next
u32 FlatToRealTime(u32 time)
{
  return time + (u32)timezone * 3600;
        _Z14FlatToRealTimem: (+1)
 0x.... 0x....      LDR.W    R1,??DataTable513_1
 0x7809             LDRB     R1,[R1, #+0]
 0xF44F 0x6261      MOV      R2,#+3600
 0xFB12 0x0001      SMLABB   R0,R2,R1,R0
 0x4770             BX       LR               ;; return
}

                    In section .text, align 2, keep-with-next
u32 RealToFlatTime(u32 time)
{
  return time - (u32)timezone * 3600;
        _Z14RealToFlatTimem: (+1)
 0x.... 0x....      LDR.W    R1,??DataTable513_1
 0x7809             LDRB     R1,[R1, #+0]
 0xF44F 0x6261      MOV      R2,#+3600
 0xFB02 0x0011      MLS      R0,R2,R1,R0
 0x4770             BX       LR               ;; return
}

Как видно - IAR вполне себе успешно использует MAC-инструкции. И, если приглядеться, таковых в типичном листинге - множество.
Конечно "предыборок операндов" здесь нет, но это - ограничения ARM-архитектуры, в которой в принципе отсутствуют вычислительные команды обращающиеся к памяти.

Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти. Хотя впрочем тут ещё вопрос: Что в полноценном DSP называть "DSP-инструкцией", а что - нет? :)
Потому я и писал "Это смотря что называть "DSP-инструкциями"...


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

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

Добавлено after 14 minutes 58 seconds:
MikroElektronika новый проект выдала, NECTO.
Что за зверь? Пригодится новичкам?
Вложение:
nekto.txt [3.61 KiB]
Скачиваний: 168


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

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

Даладна!!! И в каком же месте там Си-конструкция скомпилирована с MAC-командами?
:))) :))) :)))
Это как раз то, о чем я и написал ранее:
Вы в курсе, что для использования в коде DSP инструкций процессора (ЛЮБОГО процессора), нужно писать этот самый код на АСМе?
Ну или использовать библиотеку, которая так же написана на АСМе.


Но если взять CPU с соответствующей архитектурой (полноценный DSP), так там современные компиляторы вполне себе успешно используют MAC-инструкции с выборками из памяти....

Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.
Заставить компилятор преобразовать некую строку на Си:
Код:
Acc += A[i]*B[i++];

в соответствующую ей MAC-инструкцию невозможно.
Что в полноценном DSP называть "DSP-инструкцией", а что - нет?...

А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.Ну если не считать в особо мощных процессорах возможности параллельного выполнения единой группы инструкций над массивом операндов (комплексные многомерные вычисления)...
Таким образом, те же самые MAC инструкции в ЛЮБОМ DSP процессоре и называются DSP, в отличии от обычной арифметики общего применения.
Самому приходила идея одновременной работы АЦП и вычислений

Ну если не ждать в пустом цикле результата преобразования и лишь потом считать фильтр, то вычисления ПО ЛЮБОМУ будут происходить одновременно с преобразованием с той лишь разницей, что при запуске АЦП в прерывании от таймера ко времени вычислений добавится время обработки этого прерывания. Это максимум 20 машинных циклов. Запуск преобразования по событиям от таймера ДЛЯ ВАШЕГО СЛУЧАЯ не столько увеличивает скорость, сколько упрощает код.


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

Карма: 1
Рейтинг сообщений: 179
Зарегистрирован: Пн окт 11, 2010 19:00:08
Сообщений: 3382
Рейтинг сообщения: 0
КРАМ писал(а):
ко времени вычислений добавится время обработки этого прерывания. Это максимум 20 машинных циклов.
12 тактов вход и 12 выход. Сколько получается?
Это только сохранение и восстановление регистров выполняемое аппаратно.


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

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

Ну значит 40 или около того. При тактовой под 100 МГц (цикл 10 нс) и имеющихся у ТС вводных это совершенно не принципиально.
Но даже в таком случае лучше делать красиво. То есть подключить таймер к АЦП.
Но ДМА по любому тут не канает. Если бы хотя бы фильтр был двухкаскадный с децимацией, то тогда ДМА бы пригодился.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт сен 04, 2020 15:12:49 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1659
Рейтинг сообщения: 0
Даладна!!! И в каком же месте там Си-конструкция скомпилирована с MAC-командами?
Команды SMLABB, MLS в листинге видите? Это они и есть - MAC. Открывайте мануал по системе команд Cortex-M и читайте описание.

Ну или использовать библиотеку, которая так же написана на АСМе.
Где в приведённом листинге вы узрели некую "библиотеку"??? :shock:

Нет. Не используют. Там точно так же БИБЛИОТЕЧНЫЕ функции написаны на АСМе.
Т.е. как видно - Вы никогда не имели дел с DSP. Зачем тогда говорить о том, чего не знаете? :dont_know:
Тот же CCS уже лет 10 точно умеет генерить код довольно плотно использующий ядро. Причём с распараллеливанием инструкций. А MAC-инструкции он вообще имхо всегда умел генерить.

Заставить компилятор преобразовать некую строку на Си:
Код:
Acc += A[i]*B[i++];

в соответствующую ей MAC-инструкцию невозможно.
А мужики-то авторы компиляторов не знали что это невозможно и сделали. :)))

А чем "полноценный" DSP отличается от "неполноценного"? Да по сути ничем.
Самое главное отличие полноценного DSP от DSP-набора инстркций ARM: Возможность выполнения операций доступа к памяти одновременно с операциями на АЛУ. Это не считая: распараллеливания инструкций, аппартных циклов, циклической адресации, "насыщающей" арифметики и т.п.


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

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

Причем тут распараллеливание?
Я привел конкретный пример. Каким образом компилятор ОБЫЧНУЮ арифметику интерпретирует в конвейерные РЕГИСТРОВЫЕ команды?
Чтобы было понятно.
Имеем стандартную MAC-команду, которая суммирует результат умножения двух 32 разрядных РОНов с содержимым аккумулятора, который по сути так же является РОНом, но с разрядностью, например 80. При этом еще и имеется специальным образом настраиваемая сатурация оного аккумулятора.
Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ. А так же инкремент указателей.
Это МАС команда, а не простое умножение с накоплением.
Какое все это имеет отношение к Си?
Покажите Си-строку, которая будет скомпилирована в MAC.
ЗЫ. Если уменьшить разрядность операндов до 16, а аккумулятора до 40 - это будет DSP ядро dsPIC33. Скалярный FIR на этом МК будет из себя представлять четыре строки на АСМе:
1. Сброс аккумулятора с предзагрузкой
2. Команда repeat
3. MAC-инструкция
4. нормализация результата и выгрузка
Все. Никаких пересылок и инкрементов. Все внутри одной команды, которая повторяется число тапов раз.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32, первые впечатления.
СообщениеДобавлено: Пт сен 04, 2020 15:49:45 
Говорящий с текстолитом

Карма: -7
Рейтинг сообщений: 187
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1659
Рейтинг сообщения: 0
Я привел конкретный пример. Каким образом компилятор ОБЫЧНУЮ арифметику интерпретирует в конвейерные РЕГИСТРОВЫЕ команды?
Чтобы было понятно.
Я выше привёл пример листинга где есть две MAC-команды. Вы его не поняли?? :shock:

Это МАС команда, а не простое умножение с накоплением.
MAC - это и есть умножение с накоплением.
Откройте хотя-бы википедию: https://en.wikipedia.org/wiki/Multiply–accumulate_operation
Или любой другой учебник.

Одновременно с этим происходит подгрузка РОНов-операндов по РОНам-указателям из ОЗУ.
Приведите пример хотя бы одной такой команды в системе команд ARM! Пример в студию!!! :)))
Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???

PS: В ARM есть MAC-команды. Но нет команд выполняющих одновременно АЛУ-операцию с доступом к памяти. Это - ограничение архитектуры ядра. Компилятор тут не при чём. Я уже дважды писал об этом.

Добавлено after 2 minutes 19 seconds:
Покажите Си-строку, которая будет скомпилирована в MAC.
Я выше две таких строки приводил. Вы не умеете читать листинги???


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

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
В ARM есть MAC-команды. Но нет команд выполняющих одновременно АЛУ-операцию с доступом к памяти. Я уже дважды писал об этом.

Это не DSP МАС. Я не знаком с ASMом ARM-в, но в курсе, что есть недоMAC инструкции, которые, как я теперь вижу, даже аббревиатуру MAC не имеют. Таким образом, построить на их основе фильтр или бабочку FFT, мягко говоря, невозможно.
А речь вообще то была об этом.
Но Вы намекнули, я так понимаю, на архитектуру DSP Аналог девайса и ТИ. Расскажите как там Си интерпретируется в DSP MAC?
ЗЫ. Как теперь выяснилось, dsPIC33 - это trueDSP... :))) :tea:

Добавлено after 5 minutes 49 seconds:
Нет таких команд в ARM!
И как позвольте спросить компилятор сможет сгенерить несуществующую команду???

Вообще то мой исходный комментарий не содержал упоминания об ARM, а напротив говорил о DSP процессорах.


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

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


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

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


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

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


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