USMI

Объявление

12/06/2025 (Administration) - Spamming for the purpose of boosting messages will be punished with a ban. Спам с целью накрутки сообщений будет караться баном.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Подключение разной периферии к JL SoC. SPI/I2C/I2S/PWM/UART/GPIO...


Подключение разной периферии к JL SoC. SPI/I2C/I2S/PWM/UART/GPIO...

Сообщений 221 страница 240 из 260

221

barbaror4 написал(а):

Я протестировал FR и FF,и, что интересно, логотип Firefox остаётся на экране независимо от настроек, даже после того, как я отпускаю кнопку. Это ошибка?

Да, для перемотки файла - нужно задавать правильные режимы, в правильных состояниях кнопок.
Я давно не работал с 692 чипами, но если помню правильно - нужно задавать состояние зажатой кнопки и отпущенной для остановки перемотки.  Там вроде так сделано.

Подпись автора

USMicro® 2026©

222

BIOS написал(а):

Да, для перемотки файла - нужно задавать правильные режимы, в правильных состояниях кнопок.
Я давно не работал с 692 чипами, но если помню правильно - нужно задавать состояние зажатой кнопки и отпущенной для остановки перемотки.  Там вроде так сделано.

Я добавил функции быстрой перемотки вперед и назад в раздел ADKEY_HOLD, а также в ADKEY_LONG. Я также пробовал добавить их только в один из этих разделов, но ни один из вариантов не сработал.

Подпись автора

Türkiye

223

При отпускании клавиш нужно вызывать соответствующие события "MSG_MUSIC_[FF/FR]_KEY_UP", они снимают флаги отображения статуса перемотки на дисплее. (см. task_music.c)

Отредактировано kagaimiq (2026-07-31 23:39:33)

Подпись автора

水Mizu-DEC JLtech since 22.06.2019

224

kagaimiq написал(а):

При отпускании клавиш нужно вызывать соответствующие события "MSG_MUSIC_[FF/FR]_KEY_UP", они снимают флаги отображения статуса перемотки на дисплее. (см. task_music.c)

Отредактировано kagaimiq (Сегодня 23:39:33)

Хорошо, попробую завтра, спасибо за информацию.

Подпись автора

Türkiye

225

Исправил перемотку (FF/FR). Как я понял, функция удаления здесь стирает файлы сразу, без подтверждения. Поэтому я перенастроил кнопки Mode и P/P на "Да/Нет" (M = No, P/P = Yes). Работе плеера это вообще не мешает, выбор "Да/Нет" срабатывает только при нажатии на кнопку удаления.

Подпись автора

Türkiye

226

https://upforme.ru/uploads/001b/ca/8a/339/t519487.jpg
Простой эксперимент по визуализации спектра (работает, но требует доработки, есть некоторые несоответствия).

Подпись автора

Türkiye

227

Интересно, в SDK есть функция DAC_GET_ENERGY вроде как, но в чипе нету хардварного FFT, оно появилось только начиная с 695 серии.
Я пробовал по разному, программные вычисления очень сильно нагружают процессор даже при 240мгц, что было видно по тормозам системы.
Понятно, что я там написал говнокод без оптимизации... Но все же интересно как оно работает на 692?
На 695 я разобрался давно.

Подпись автора

USMicro® 2026©

228

BIOS написал(а):

Interestingly, the SDK seems to have a DAC_GET_ENERGY function, but the chip doesn't have a hardware FFT; it only appeared with the 695 series.
I tried various approaches, but software calculations put a significant load on the processor even at 240 MHz, which was noticeable by the system lag.
Clearly, I wrote crappy code there without any optimization... But I'm still curious how it works on the 692.
I figured it out on the 695 a long time ago.

Ого, очень плавно получилось! Для WS2812 и аппаратного FFT на 695 выглядит вообще отлично)) Я тоже немного поигрался со спектром на AC692.

Да, насколько я понимаю, в 692 аппаратного FFT нет. В моём варианте `DAC_GET_ENERGY` не используется: он был бы хорош для обычного VU-индикатора общей громкости, но не даёт отдельные полосы частот.

Я беру PCM уже после декодера, прямо перед отправкой в DAC. В аудиопотоке сохраняю только каждый 4-й 16-битный сэмпл в кольцевой буфер на 256 значений — это очень лёгкая часть. Сам FFT не выполняется в аудио-обработчике: он считается только при обновлении LCD, примерно 20 раз в секунду.

Дальше:
- 256-точечный radix-2 FFT на целых числах Q15, без float;
- окно Hann перед FFT, чтобы меньше было утечки между полосами;
- снимок PCM-буфера копируется быстро и атомарно, а тяжёлые расчёты идут уже вне critical section;
- для 10 столбиков берутся нужные FFT bins с учётом текущей частоты дискретизации;
- есть медленная нормализация/AGC для каждой полосы, отдельные display-gain для верхов и peak-hold на LCD.

То есть это не идеальный аудио-анализатор, а лёгкий визуальный spectrum для маленького 128x64 LCD. Точный профайлинг CPU я ещё не делал, поэтому не буду говорить, что нагрузка нулевая, но на моём 692 система и Bluetooth-музыка работают нормально. На 695 с аппаратным FFT, конечно, можно сделать заметно чище и ещё плавнее.

Подпись автора

Türkiye

229

Вот видео этого события.

Подпись автора

Türkiye

230

На самом деле это очень хорошая работа. Особенно без hardware FFT.
Однозначно лайк.

Подпись автора

USMicro® 2026©

231

BIOS написал(а):

На самом деле это очень хорошая работы. Особенно без hardware FFT.
Однозначно лайк.

Спасибо! Мне очень понравился ваш проект на WS2812, он работает очень плавно!

Подпись автора

Türkiye

232

barbaror4 написал(а):

Ого, очень плавно получилось! Для WS2812 и аппаратного FFT на 695 выглядит вообще отлично))

Действительно, но чуть позже я продолжу работу на этим проектом.
Там два режима отображения - линейный, работает отлично, и логарифмический, более приятный и насыщенный для глаз. Но там есть над чем еще поработать.

barbaror4 написал(а):

То есть это не идеальный аудио-анализатор, а лёгкий визуальный spectrum для маленького 128x64 LCD. Точный профайлинг CPU я ещё не делал, поэтому не буду говорить, что нагрузка нулевая, но на моём 692 система и Bluetooth-музыка работают нормально. На 695 с аппаратным FFT, конечно, можно сделать заметно чище и ещё плавнее.

А по моему очень крутой вариант. Я когда то хотел сделать простенькую плату на ac692x с OLED... Ни как руки не дойдут.

Подпись автора

USMicro® 2026©

233

BIOS написал(а):

Действительно, но чуть позже я продолжу работу на этим проектом.
Там два режима отображения - линейный, работает отлично, и логарифмический, более приятный и насыщенный для глаз. Но там есть над чем еще поработать.

А по моему очень крутой вариант. Я когда то хотел сделать простенькую плату на ac692x с OLED... Ни как руки не дойдут.

Удачи с вашим проектом на базе WS2812B. У меня есть плата на базе AC6965, если я правильно помню, у меня также есть WS2812B, но их всего 6 штук, не знаю, может быть, попробую в качестве эксперимента.

Подпись автора

Türkiye

234

Что ж, для программного интерфейса I2C и программного БПФ это работает без проблем.
https://youtu.be/DdqN4DBXGmQ

Подпись автора

Türkiye

235

Пора поэкспериментировать с ЖК-дисплеями! У меня есть SPI-дисплей ST7789 240x240 без CS (поэтому, если я правильно понимаю, при его использовании воспроизведение с SD-карт недоступно, так как технически ЖК-дисплей всегда будет выбран. Посмотрим). А ещё у меня плата на базе AC6901 с 8-мегабитной флэш-памятью!

Вот ЖК-дисплей, о котором идёт речь.
https://upforme.ru/uploads/001b/ca/8a/339/t458933.jpg
https://upforme.ru/uploads/001b/ca/8a/339/t627756.jpg
 

Вот плата AC6901.
https://upforme.ru/uploads/001b/ca/8a/339/t654296.jpg
https://upforme.ru/uploads/001b/ca/8a/339/t815089.jpg

Как видно, на плате есть светодиоды, что интересно, получается что-то вроде 4-разрядного 8-сегментного светодиодного дисплея с дополнительными светодиодами для значков. Я, вероятно, смогу провести обратное проектирование платы, на ней нет ни сдвигового регистра, ни микросхемы расширителя ввода-вывода. Судя по общей информации, похоже, что светодиоды напрямую подключены к SoC или соединены каким-то мультиплексным способом. В любом случае, мой план состоит в том, чтобы установить высокий уровень на некоторых выводах GPIO (тех, которые я хочу использовать для ЖК-дисплея), а затем проследить их до отдельных светодиодов, к которым я смогу припаять тонкий провод после удаления этих светодиодов. Кажется ли вам этот проект хорошей идеей? Я готов выслушать любые советы, прежде чем начать это дело.   

https://upforme.ru/uploads/001b/ca/8a/339/t354283.jpg

Отредактировано barbaror4 (2026-08-05 15:53:25)

Подпись автора

Türkiye

236

barbaror4 написал(а):

без CS (поэтому, если я правильно понимаю, при его использовании воспроизведение с SD-карт недоступно, так как технически ЖК-дисплей всегда будет выбран

SD карта с SPI интерфейсом дисплея никак не связана, если только их вместе к одним ногам не подключать, поэтому конфликтовать они между собой не будут. В отстутствии CS единственный нюанс заключается в том, что SCK должен находится в высоком уровне при отпускании сброса (RES), это можно достичь если сконфигурировать SPI в mode 3 (в JL это установка битов [6] CKID и [5] UE в SPI_CON).

Отредактировано kagaimiq (2026-08-05 16:40:00)

Подпись автора

水Mizu-DEC JLtech since 22.06.2019

237

kagaimiq написал(а):

The SD card is not connected to the display's SPI interface in any way, unless they are connected to the same pins, so they won't conflict with each other. Without CS, the only caveat is that SCK must be high when the reset (RES) pin is released. This can be achieved by configuring SPI in mode 3 (in JL, this is by setting bits [6] CKID and [5] UE in SPI_CON).

Edited by kagaimiq (Today 16:40:00)

Спасибо за помощь!

Подпись автора

Türkiye

238

Прежде чем перейти к AC6901, я хочу протестировать его на BT201. Я буду использовать PC3, PC4, PC5 для SPI ЖК-дисплея (ST7789 240x240, SDMMC1 отключен) и PA0 для RST. Микрофон не используется, поэтому теоретически я могу использовать PA0 как обычный вход/выход.Для отладки, поскольку я временно не буду использовать OLED-дисплей, чтобы проверить работоспособность моего подхода с ЖК-дисплеем, я отключу I2C OLED и установлю pb0/pb1 в режим отладки.

Подпись автора

Türkiye

239

Ну, у меня получилось! Вот видео, правда, оно не очень хорошее, мне ещё нужно доработать драйвер.

ST7789

https://youtu.be/7NmH7TJypZk?si=FR3Ouvoqpn6qL9g-

Отредактировано barbaror4 (2026-08-05 23:41:42)

Подпись автора

Türkiye

240

Hardware SPI,SPI1B, ​Драйвер ST7789 а-ля DMA.
https://upforme.ru/uploads/001b/ca/8a/339/t411524.jpg
https://upforme.ru/uploads/001b/ca/8a/339/t623274.jpg

Подпись автора

Türkiye


Вы здесь » USMI » MCU, SoC, CPU Микроконтроллеры » Подключение разной периферии к JL SoC. SPI/I2C/I2S/PWM/UART/GPIO...