• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTL00 MP3 player

pvvx

Активный участник сообщества
Но столкнулся с совершенно иным подходом к процессу вцелом (начиная с загрузки) и с вашим, @pvvx, снобизмом.
Но есть и положительные стороны от всего этого - мой общий уровень значительно вырос (спасибо всем участвовавшим).
Ну тут уж без Зорга никак, т.е. быстрее никак. :) Тама так-же всё - первые ответы всегда идут с двойным смыслом, чтобы вы выбрали сторону. Т.е. вы сами решили принять сторону "снобизма". Кому-как привычней. :)
[off]
ОтОно как!? Ну прям ... Майн Кампф ... )))
[/off]
[off]Ну планетка то маленькая, а на 8-ми битнике и c I2С её не покинуть... Там какая-то оптика уже нужна, а тащат в пещеру...[/off]
 
Последнее редактирование:

Creep

Member
развить функционал ЕСП за счет дополнительных гпио, коих в ртл слегка поболе будет,
может неверно оценена "архитектура" решения? один и2ц дает огромное кол-во периферии в прямую, а через расширители вообще трудно представить сколько туда влезает - 2! пина всего.
 

Pilnikov

Active member
может неверно оценена "архитектура" решения? один и2ц дает огромное кол-во периферии в прямую, а через расширители вообще трудно представить сколько туда влезает - 2! пина всего.
у меня почти вся периферия из-за ограниченного числа гпио итак на и квадрате. а вы попробуйте (поделитесь экземплом) подключить ну хотя бы к эспиай цветную led матрицу 32х64, пускай даже в текстовом режиме, пускай даже в основных цветах \(без хуе)/ Или скажите модель контроллера для нее с интерфейсом уарт || спи || и2ц
З.Ы. опять оффтоп опять не в ту тему. зорг заклюет:(
 

Creep

Member
опять оффтоп опять не в ту тему. зорг заклюет
а как же обмен информацией?
матрица не имеет своего контроллера? если нет то пачка сдвиговых регистров и прочее придется собирать, если требуется просто spi превратить в шину то расширителем портов можно быстро соорудить чип-селект (исходим из экономии портов), большие скорости переключения устройств на шине вроде не требуются. управление светодиодными матрицами как я погляжу (в гугле) вполне типовые - построчно зажигаются нужные диоды в столбцах, остальное технические нюансы; что лед-матрицы, что световые кубы, принцип один.
посмотрите на проекты "кубов 8*8*8" может найдете идею или вдохновение ;)
 

pvvx

Активный участник сообщества
у меня почти вся периферия из-за ограниченного числа гпио итак на и квадрате. а вы попробуйте (поделитесь экземплом) подключить ну хотя бы к эспиай цветную led матрицу 32х64, пускай даже в текстовом режиме, пускай даже в основных цветах \(без хуе)/ Или скажите модель контроллера для нее с интерфейсом уарт || спи || и2ц
З.Ы. опять оффтоп опять не в ту тему. зорг заклюет:(
А кто так делает? Смысл тогда иметь на борту контроллеры разных интерфейсов? Вам нужен другой чип - какой-то многоножка с сотней GPIO. Вы выбрали не ту микросхему и смысл ваших постов тут совершенно ничем не подкреплен, кроме блажи.
Вот интерфейс к 4K экрану по вашему должен иметь 12 582 912 *3 DAC на каждую точку, т.е. минимум 12 582 912*3*8 выходов GPIO для подключения резисторов (12 582 912*3 DAC на 8 бит) :)

Теперь посмотрите, как вы извращаетесь с SoC, у которого интерфейсы рассчитаны и заточены на скорость коммуникаций по WiFi. Это, при учете, что в эфире несколько участников, выходит на уровне 1 мегабит в сек, а при одиночном монопольном включении ST<->AP - до 15 мегабит/cек. Но буфера (объем RAM) не могут обеспечивать заполнение неизбежных пауз в эфире WiFi от помех и реальная закладываемая скорость для данного чипа ограничивается на уровне немного менее, для непрерывных потоков.
Как вы представляете ногодрыг за 1 МГц на каждый из 8 пинов? Проц это обеспечить не может, а вот DMA в данном SoC (и его устройства, хотя-бы через MII с тактом 100МГц) - запросто. Но это уже задачи не для Arduino, да и проще их решить специализированным внешним контроллером подключенным по одному из имеющихся интерфейсов в SoC RTL.
RTL8195 в состоянии формировать выходы для цветного VGA на QSPI+SPI, что уже доказано в теме
RTL8710 VGA Driver Дело там остановилось на стадии лени перелопачивать приоритеты прерываний всего SDK (иначе возникает потеря синхронизации двух каналов SPI при загрузке их DMA по прерываниям во время работы WiFi). А у вас одни задачи Arduino на уровне для 4-х битного MCU с тактом до 1 МГц, мигающего раз в несколько секунд светодиодом или дрыгающего ногой для эмуляции UART до 9600 baud. Дык возьмите какой чип с BT – его вам за глаза хватит поиграться, а не извращайтесь на чипе не приспособленном для ногодрыга командами CPU :p
 
Последнее редактирование:

aloika

Active member
Вот такая проблема была: при нажатии на цель flashburn не запускался Jlink GDB server.

В flasher.mk строка 133 была
[inline]@cmd /K start $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000 [/inline]

заменил на

[inline]@cmd CMD /K start \"\" $(JLINK_PATH)$(JLINK_GDBSRV) -device Cortex-M3 -if SWD -ir -endian little -speed 1000 [/inline]

и всё заработало.

Разворачивается она у меня в:

[inline]CMD /K start "" c:/Program Files (x86)/SEGGER/JLink_V612a/JLinkGDBServer.exe -device Cortex-M3 -if SWD -ir -endian little -speed 1000[/inline]

То ли ошибка, то ли у меня какие-то индивидуальные особенности винды (Win 10)
 

rkravt

Member
Пользуйте сколько угодно пробелов, вроде вещи тривиальные, двойные ковычеки (") для этого
 

aloika

Active member
а разве это:
@cmd /K start \"$(JLINK_PATH)$(JLINK_GDBSRV)\" -device Cortex-M3 -if SWD -ir -endian little -speed 1000
Нет, там почему-то сложнее. Более того, разные проекты, доходя до этой строчки, по-разному ее разворачивают. Вот это экранирование кавычек в некоторых проектах (MP3) работает, а в некоторых (HTTPD) почему-то нет. Где-то, похоже какие-то настройки еще есть.
Пока сделал пути без пробелов, как-то работает.
 

Creep

Member
Нет, там почему-то сложнее. Более того, разные проекты, доходя до этой строчки, по-разному ее разворачивают. Вот это экранирование кавычек в некоторых проектах (MP3) работает, а в некоторых (HTTPD) почему-то нет. Где-то, похоже какие-то настройки еще есть.
Пока сделал пути без пробелов, как-то работает.
мк-файлы смотрел полтора месяца назад по диагонали, на вид ничего сложного, все линейно, лаконично, интуитивно понятно. Глубже разбирать не стал. Боги риалтека против меня - за 2,5 месяца из 4х магазинов али и ебея ни одной платки с модулем не дошло.
 

pvvx

Активный участник сообщества
У кого есть декодеки на ARM к DSD? Хочу ДД в 120дБ сразу с цифровых ножек :)
(Однобитный цифровой формат записи Direct Stream Digital (DSD), используется для записи SACD-дисков)
Что-то так сразу не натыкаюсь... А вывести его в два канала SPI или I2S на RTL возможно - там всего-то 1 bit на 2.8224 МГц...
На I2S в формате 96 кГц на 2x32 bit не пойдет, т.к. выводиться только 2 по 24 бита с дыркой в 8 бит, которая всё и портит (DSD так невозможна, по этому в MP3 и применен ШИМ на 96 бит. 96к*2*24/48к = 96
Может MP3 можно как-то сразу перекодировать в DSD, минуя PCM в ИКМ или ШИМ?
 

pvvx

Активный участник сообщества
попытался собрать RT00MP3 на eclipsе
Получил сообщение :
section .romheap VMA [10002400,10002fff] overlaps section .ram_image1.text VMA [10000bc8,10002be3]
Eclipse выступает в роли редактора и не более. Проект собирается и без неё.
Только что запсустил:
>git clone git@github.com: pvvx/RTL00MP3.git
>cd RTL00MP3
>mingw32-make.exe -s >log.txt
log.txt:
Код:
===========================================================
Compile (build)
project/src/user/main.c
....
....
Image (build/bin/ota.bin) size 300160 bytes
Image (build/bin/ram_all.bin) size 345212 bytes
===========================================================
В системе установлено:
D:\MCU\GNU_Tools_ARM_Embedded\5.4_2016q2
C:\MinGW\msys\1.0
C:\MinGW\mingw64

Используется Eclipse версии Cpp Neon
 
Последнее редактирование:

pvvx

Активный участник сообщества
---------------------------------------------
У меня установлено
D:\MCU\GNU_Tools_ARM_Embedded\6_2017
C:\MinGW\msys\1.0
C:\MinGW\mingw32
-------------------------
Но почему линкер дает мне это сообщение?
Не знаю, и могу только предполагать, что что-то другой версии.
Конкретнее можно указать на ссылку инсталлятора GCC? Тогда проверю с ним.
Сейчас оно работает со всеми последними и предыдущими релизами GCC, с Version 6-2017-q1-update не проверял.
 
Последнее редактирование:

pvvx

Активный участник сообщества
следующая остановка:
Что не так?
Это не Arduino - разберетесь сами. Необходимые утилиты для сборки проектов на ARM описаны в других темах...
Исходник RTL00MP3\RTL00_SDKV35a\component\soc\realtek\8195a\misc\iar_utility\common\tools\src\pick.cpp дан, а разгребать что вы там у себя поставили вы должны сами. Вариантов системы сборки под ARM в Винде слишком много и я не в состоянии и не имею цели учитывать все.
Приложение создано не для сборки одной кнопкой, а для создания своих проектов и вы должны уметь работать со своим окружением сборки и со знаниями Eclipse, GCC, MinGW, СИ/C++ и аппаратных фич, наличествующих в том-же чипе RTLxxx, используемым Jtag и т.д....
Ну а так - наверно надо:
mingw32-make.exe -s clean
mingw32-make.exe -s
JLink-RunRAM.bat
Снимок1533.gif
 
Последнее редактирование:

pvvx

Активный участник сообщества
Спасибо ,
но можно было и короче ответить ,
что не знаете причины.
Почему это "не знаю" - вроде ответил и указал :)
Не описывать же каждую опцию выводимую по "?" в терминале, т.к. они описаны в СИ?
После запуска надо указать соединение:
ATPN=<SSID>[,password[,encryption[,auto-reconnect[,reconnect pause]]]: WIFI Connect to AP
Достаточно всего [inline]atpn SSID password[/inline]
далее прога запомнит и будет соединяться сам при следующем пуске...
На счет вылетов самого декодера MP3 при пуске я не разбирался - такая его библиотека и вылеты не связаны с другими компонентами...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ттеперь понятно, что знаете.
--------------------------
Еще пару вопросиков.
1) А если мне не надо ничего коннектить, то что делать?
2) Почему Вы не сделали сторку SDK как самостоятельный проект?
Спасибо.
Потому, что SDK невозможно сконфигурировать под каждый проект. Для этого надо изменить все примеры в нем и все проверить во всех комбинациях, коих там сотни.
Вот счас вышел новый SDK 4.0 - его адаптировал для моих проектов, но не для примеров идущих к самому SDK.
Так-же в стандартном SDK 4.0 MP3 не лезет вообще в чипы с буквой "F" и пока удалось его ужать до работы в режиме ST без ST+AP, т.к. драйвер WiFi и другие части в SDK 4.0 толще...

Да и эти мелочи не интересуют "разработчиков" и эксперементаторов...
https://esp8266.ru/forum/threads/rtl00-mp3-player.1697/page-12#post-38496
Как-бы более интереснее запустить проигрывание DSD и получить ДД в 120 дБ на козявке за пару $ с несколькими элементами... разбив глупости на дороговизну аппаратуры для DSD :) Поток dsd в канал WiFi укладывается, останется оценить ждиттеры на выводе SPI или I2S...
Примеры DSD файлов: 2L High Resolution Music .:. free TEST BENCH
В *.dsf сжатия вообще не используется - значит можно гнать прямо в 2 канала... Но вот времени пока на эксп нету... А то идет борьба по глупости "воздушности" в DSD в отличии от PCM кодирования :) где никто и никогда не учитывал дискрет самой оцифровки и что итого не одинаково сопсем, и выдумал что там высокие частоты имеют оцифровку фазу лучше, т.к. 1 бит цифруется чаще :)
 
Последнее редактирование:

sharikov

Active member
...используется синтаксис линукса при сборке то можно рекомендовать тем кто с виндой
поставить cigwin и указать его в пути.
Верно? или можно иначе?
cygwin лучше потому что он полностью эмулирует линукс окружение.
msys ущербен потому что это попытка скрестить ежа с ужом.

в амебовских мэйкфайлах проверяют наличие cygwin.
 
Сверху Снизу