EdigE
← ЛЕНТА
MCU · 08.08.2026

STM32MP257 разделил аудиоанализ и управление VFD между A35 и M33

8192-точечное БПФ выполняется под Linux на Cortex-A35, а 25 рассчитанных полос передаются с частотой 100 Гц на bare-metal Cortex-M33 для вывода на VFD 256×64. Такое разделение освобождает обновление параллельной шины дисплея от задержек Linux, однако заявленная предсказуемость пока не подкреплена измерениями джиттера.

Аудиовизуализатор на STM32MP257F-DK разделяет обработку сигнала и управление дисплеем между разнородными ядрами одного микропроцессора. Два Cortex-A35 с частотой до 1.5 ГГц работают под OpenSTLinux: захватывают loopback-аудио, рассчитывают спектр и формируют 25 частотных полос. Cortex-M33 с частотой до 400 МГц получает готовые значения через RPMsg и в bare-metal-прошивке обновляет вакуумно-люминесцентный дисплей Noritake GU256X64D-3900B.

DSP-часть написана на C++ и использует PortAudio, FFTW и метод Уэлча с перекрывающимися окнами. В выбранной по умолчанию теме анализатора задано окно на 8192 отсчёта. Это повышает частотное разрешение относительно коротких блоков, одновременно увеличивая задержку накопления данных и вычислительную нагрузку. Итоговый спектр сжимается до 25 полос, которые, по заявлению автора, отправляются на M33 100 раз в секунду.

Для такого потока RPMsg имеет большой запас пропускной способности. Механизм OpenAMP использует общую память и virtio vring, а штатный буфер сообщения на STM32MPU вмещает 512 байт. Число буферов задаётся таблицей ресурсов; автор указывает конфигурацию из 16 сообщений, хотя соответствующий файл опубликованной сборки пока недоступен. Передача компактного кадра из 25 значений укладывается в прямой обмен RPMsg. Для крупных непрерывных потоков документация ST рекомендует передавать через сообщения только дескрипторы больших общих буферов, сокращая число прерываний и копирований.

M33 управляет 8-битным CMOS-интерфейсом VFD напрямую. Дисплей имеет разрешение 256×64, питается от 5 В и также поддерживает асинхронный RS-232. Вынос GPIO-операций из Linux userspace устраняет влияние планировщика и системных вызовов на формирование импульсов параллельной шины. Bare-metal сам по себе не подтверждает жёсткие временные гарантии: для такой оценки потребуются осциллограммы, распределение задержек, данные о прерываниях и худшее время выполнения обработчика. Эти измерения автор не опубликовал.

Открытый репозиторий подтверждает структуру DSP-приложения и размер БПФ, однако в нём пока отсутствуют MP257-специфический передатчик RPMsg и прошивка M33. На странице проекта также встречаются имена /dev/rpmsg0 и /dev/ttyRPMSG, поэтому точный пользовательский интерфейс канала остаётся неясным. Устройство следует считать аудиовизуализатором: точность амплитуды зависит от калибровки всего тракта захвата, а данных о такой калибровке нет.