• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTL00 MP3 player

Pilnikov

Active member
Это путь.
У меня так: [inline]atws den.101.ru/ar_66_03 4000[/inline] или [inline]atws=den.101.ru/ar_66_03,4000[/inline]
Код:
>atws den.101.ru/ar_66_03 4000
ATWS: den.101.ru/ar_66_03,4000
MP3: Connect url: den.101.ru/ar_66_03:4000
FIFO: Alloc 16384 bytes at 0x10058168
MP3: Connecting to server 193.232.148.44...
>HTTP/1.0 200 OK
Content-Type: audio/mpeg
Date: Sun, 16 Apr 2017 23:54:15 GMT
icy-br:128
icy-description:Avtoradio Ekaterinburg 105.0 FM
icy-name:Avtoradio Ekaterinburg
icy-pub:-1
Server: Icecast 2.4.0-kh3
Cache-Control: no-cache, no-store
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-Type
Access-Control-Allow-Methods: GET, OPTIONS, HEAD
Connection: Close
Expires: Mon, 26 Jul 1997 05:00:00 GMT
FIFO: Start Buffer fill 8273
[I2S  Wrn]I2S0 Pin may conflict with JTAG
I2S0: Alloc DMA buf 12288 bytes (4 x 384 samples 96 bits)
I2S1: Alloc DMA buf 12288 bytes (4 x 384 samples 96 bits)
MAD: Alloc 15546 bytes at 0x10065220
MAD: Decoder start.
MAD: Dec err 0x0235 (bad main_data_begin pointer)
MAD: Rate 44100, channels 2
I2S: Set Sample Rate 88200 (x1)
Avtoradio Ekaterinburg 105.0 FM, Rate 44100, 2 channels
А там [inline]atws=ic4.101.ru/p822837,8000[/inline] - какой-то другой кодек или ещё чаго...
Код:
>atws=ic4.101.ru/p822837,8000
ATWS: ic4.101.ru/p822837,8000
MP3: Connection closed.
MAD: Closed.
I2S0: Closed.
I2S1: Closed.
FIFO: Closed.
MP3: Connect url: ic4.101.ru/p822837:8000
FIFO: Alloc 16384 bytes at 0x100586c0
>MP3: Connecting to server 91.207.59.29...
HTTP/1.0 200 OK
Content-Type: audio/aacp
Date: Mon, 17 Apr 2017 00:00:41 GMT
icy-br:64
ice-audio-info: bitrate=64;channels=1;samplerate=22050
icy-description:personal station #
icy-genre:varios
icy-name:personal station #822837
icy-pub:0
icy-url:http://101.ru
Server: Icecast 2.4.0-kh3
Cache-Control: no-cache, no-store
Pragma: no-cache
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-Type
Access-Control-Allow-Methods: GET, OPTIONS, HEAD
Connection: Close
Expires: Mon, 26 Jul 1997 05:00:00 GMT
FIFO: Start Buffer fill 8445
[I2S  Wrn]I2S0 Pin may conflict with JTAG
I2S0: Alloc DMA buf 12288 bytes (4 x 384 samples 96 bits)
I2S1: Alloc DMA buf 12288 bytes (4 x 384 samples 96 bits)
MAD: Alloc 15546 bytes at 0x10065208
MAD: Decoder start.
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0104 (reserved sample frequency value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0104 (reserved sample frequency value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0104 (reserved sample frequency value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0103 (forbidden bitrate value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0104 (reserved sample frequency value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0101 (lost synchronization)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
MAD: Dec err 0x0102 (reserved header layer value)
Премного благодарен + благодарность от супруги.
Во втором случае тип потока - flv
 

rst

Member
Помимо всего вышеперечисленного у модулей доступен режим отладки/программирования по Jtag (через J-Link2) и слегка большее чем у 8266 чиcло GPIO.
Наличие JTAG и GPIO в модулях мне безразлично - как я уже писал - меня интересует только законченный модуль с готовой прошивкой позволяющей доступ к её функционалу через некий протокол. Желательно не AT-командным и с бОльшим функционалом чем у ESP8266.
Но получается, что доступные подобные прошивки для RTL почти не отличаются по функционалу от ESP8266. :(((
Так что, вместо того, чтобы собачиться, лутче окажите сообществу хомячков конструктивную поддержку в плане веб библиотек (морды всякие).
Абдуринами не занимаюсь и никогда не занимался. И никому не советую ;)
 

rst

Member
А какой функционал вам нужен?
...
А понятие "готовая прошивка" это не для здесь - РТЛ это МК а не блютуз модуль и не Wifi -> Uart bridge.
Любой блютуз модуль - это тоже МК с готовой прошивкой.
Вот мне и нужен такой WiFi-модуль управляемый через внешний интерфейсом. Но с протоколом лучше чем у ESP8266 (не АТ-командным) и с бОльшим функционалом.

PS: Вобщем - вопрос закрыт. Как я понял - такого не существует. Придётся пользоваться тем, что есть (ESP8266; ну или RTL8710, что то же самое) :(
 

rst

Member
МП3 спеть из интернета сразу безо всяких езернет и прочих DAC шилдов - пожалуйста
Ну да, без, как же o_O
Чтобы с ШИМ получить что-то более-менее приемлемого качества звучания, а не хрипения, нужно ещё фильтр навесить да пару операционников. А сигнал с 12-битного DAC можно напрямую на УМЗЧ подавать.
 

pvvx

Активный участник сообщества
зачем внешний мк
Тяжелый случай. Чел не умет писать на СИ, а умеет только через "AT". Скорее всего ему дали внешнюю плату с каким-то Basic типа, он её и подключает ко всему, но там управляется только UART и SPI, до 1 мбит/сек по его сведениям... Скорость тоже ограничена этим Basic или Fort...
 

Pilnikov

Active member
Блин, опять 25!.... :eek:
Перечитайте мои посты выше.
Свет клином не сошёлся на этом вашем RTL или ESP.
Фишка ртл именно в том, что внешний мк практически никогда не нужен. Если нужно мощнее и функциональнее, то это pi zero (но жрет много) или стм + вифи шилд - а это уже огород
 

pvvx

Активный участник сообщества
Блин, опять 25!.... :eek:
Перечитайте мои посты выше.
Свет клином не сошёлся на этом вашем RTL или ESP.
Но здеся тема про встроенный декодек MP3 в RTL. Если вам так сложно, то есть уже порт с Java (тоже встроенный :) ).
Фишка ртл именно в том, что внешний мк практически никогда не нужен. Если нужно мощнее и функциональнее, то это pi zero (но жрет много) или стм + вифи шилд - а это уже огород
У Оранж Pi - не работает WiFi. Есть замена, значительно дешевле, и жрет как ESP8266 - MIFI 3G/4G Router, но чел не умеет даже читать, попал не в ту тему...
 

Neov

Member
После console_init(), ещё до запуска scheduler, не срабатывают прерывания gtimer.
 

Neov

Member
Почему в i2s драйвере функции ОС дергаются вперемешку из freertos.h и osdep_api.h ? Что приоритетнее? Стоит ли всерьез относиться к внедрению mbed?
---
Предусмотрены ли в SDK семафоры на периферию, или нужно городить самому?
 

pvvx

Активный участник сообщества
Почему в i2s драйвере функции ОС дергаются вперемешку из freertos.h и osdep_api.h ? Что приоритетнее?
Они повязаны.
Любой современный код имеет наслоения в виде переходников и переназначения названий функций. Делается это для совместимости. Уровень такого наслоения в SDK имеет более 5 шкурок, к примерe для драйвера WiFi. :)
Стоит ли всерьез относиться к внедрению mbed?
Это смотря с какой стороны.
Как примеры - да :)
Предусмотрены ли в SDK семафоры на периферию, или нужно городить самому?
Предусмотрены (сделаны) только три семафора и то просто так. RTL00MP3/device_lock.h at master · pvvx/RTL00MP3 · GitHub
Я применяю их.
 

pvvx

Активный участник сообщества
@pvvx стесняюсь спросить, сложно сделать вывод не декодированного потока в i2c/spi?:rolleyes:
Всё можно, но кому нужен пример с сотнями опций? В нем потом будет не разобраться.
Тут пример рассчитан на использование только модуля, без какой либо обвязки из внешних микросхем...
 

Neov

Member
кстати, у меня при запуске вызывается read_wifi_cfg, что нормально, но и write_wifi_cfg вызывается аж 3 раза, это нормально?

Код:
===== Enter SRAM-Boot 1 ====
CPU CLK: 83333333 Hz, SOC FUNC EN: 0x20111113
Img Sign: RTKWin, Go @ 0x1000605d
===== Enter Image: Software ====
read_wifi_cfg: checkpoint

RTL8195A[Driver]: port switch - port0(wlan2), port1(wlan1)
SoftAP ip: 192.168.4.1
write_wifi_cfg: checkpoint

RTL8195A[Driver]: set ssid [apname]

RTL8195A[Driver]: start auth to 00:78:9e:e1:61:ee

RTL8195A[Driver]: auth success, start assoc

RTL8195A[Driver]: association success(res=5)

RTL8195A[Driver]: set pairwise key to hw: alg:4(WEP40-1 WEP104-5 TKIP-2 AES-4)

RTL8195A[Driver]: set group key to hw: alg:2(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:1
write_wifi_cfg: checkpoint

RTL8195A[Driver]: set group key to hw: alg:2(WEP40-1 WEP104-5 TKIP-2 AES-4) keyid:1
Station ip: 192.168.1.5
write_wifi_cfg: checkpoint
 

pvvx

Активный участник сообщества
кстати, у меня при запуске вызывается read_wifi_cfg, что нормально, но и write_wifi_cfg вызывается аж 3 раза, это нормально?
write_wifi_cfg работает с проверкой - если запись не поменялась, то ничего лишний раз не пишет.
Что пытаться сохранить при изменении указывается в конфиге wifi_user_set.h:
Код:
/* Опции разрешения записи конфигов по уcпешному соединению или выполнению операции установок режимов WiFi без ошибок  */
#define DEF_SAVE_CFG (BID_ALL_WIFI_CFG | BID_WIFI_CFG)    // сохранение по успешному соединению/выполненю для всех конфигов:
                                                        // (для ST или AP пишутся раздельно) с проверкой на изменения
Три раза и произошло:
  1. Включилась SoftAP
  2. Произошло соединение Station с внешней AP
  3. Получен IP адрес и сработал DHCP (проверились изменения опции DHCP или fixed IP)
При старте тоже считываются прошлые установки и алгоритм, что читать или нет и какие, в какой режиме стартовать WiFi. Всё указывается в wifi_user_set.h. Запись установок производиться в два последних сектора 1МБ Flash у RTL8710AF с хитрой оптимизацией чтобы не протереть дырку... см. RTL00_SDKV35a\component\common\mbed\targets\hal\rtl8195a\flash_eep.c.

И что это за сообщения "write_wifi_cfg: checkpoint" ?
Для вывода всех отладочных сообщений измените в platform_autoconf.h:
Код:
/* CONFIG_DEBUG_LOG:
=0 Off all diag/debug msg,
=1 Only errors,
=2 errors + warning, (default)
=3 errors + warning + info,
=4 errors + warning + info + debug,
=5 full */
#define CONFIG_DEBUG_LOG 4
И всё выведется само, что там писало или нет в Flash и т.д. Будет целая простыня всяких сообщений... Выбрать какие глушить или выводить можно через флаги (биты в):
extern u32 ConfigDebugErr;
extern u32 ConfigDebugInfo;
extern u32 ConfigDebugWarn;
extern u32 CfgSysDebugErr;
extern u32 CfgSysDebugInfo;
extern u32 CfgSysDebugWarn;
описанные в diag.h.
Чтобы не забивать память, по умолчанию стоит уровень трансляции вывода только сообщений ошибок и warning-ов.
Так-же в SDK добавлен флаг отключения вывода rtl_printf() (замены обычного printf()) на ходу, а то тормозит при работе некоторых приложений выводя на 38400 baud сообщения в LogUART. DiagPrintf() она не отключает, для разного подхода...
ram_libc.c: char print_off;
print_off = 1; - отключить вывод.
 
Последнее редактирование:

Neov

Member
Тут заметил, что lwip перестает принимать пакеты, если очередь mbox была переполнена.
 
Сверху Снизу