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

Arduino для RTL8710.

mikush

New member
HEAP: Alloc 15560 failed! я так понимаю что не хватает RAM для буферов если компилировать с моим проектом, до выделения
Код:
CLK CPU        166666666 Hz
RAM heap    43720 bytes
TCM heap    27928 bytes
 

pvvx

Активный участник сообщества
HEAP: Alloc 15560 failed! я так понимаю что не хватает RAM для буферов если компилировать с моим проектом, до выделения
Код:
CLK CPU        166666666 Hz
RAM heap    43720 bytes
TCM heap    27928 bytes
Да. Уменьшайте буфера. Они там слишком большие просто так :)
Если перекидывать на RTL8711AM, то надо следить, чтобы буфера работающие с DMA не попали в SDRAM, при условии, что вывод на два канала ШИМ. SDRAM не справляется с сразу со всеми потоками - исполнения кода от туда, 2 канала DMA на десятку мегабит и буфер FIFO для декодека... Рвет DMA поток - наверно у него выставил приоритет меньше - не помню. Если выход на DAC, то таких проблем нет - там требуется значительно меньшая скорость DMA... Возможно ещё надо скорректировать параметры калибровки SDRAM - у меня работают прошитые в Flash установки, пришедшие уже в модуле. Автонастройка параметров SDRAM в коде SDK работает и c тестом выбирает максимальные настройки на производительность если нет записи от прошлых настроек в flash, но я тестировал с установками из Flash от SDK 3.4 2015 года, прошитого в модули RTL8711AM тогда-же :) Все варианты не проверить и не сразу всё можно учесть...
Увеличение FIFO на 2 мегабайта вызывает проблемы – начальная загрузка половины буфера (1 мегабайт) очень долгая – сервер радио-MP3 медленно отдает - очень долго ждать старта проигрывания. :)

В RtlDuino использовался этот код arduino-src-patch.zip - из него была сделана либа lib_mp3i2s.a.
 
Последнее редактирование:

Pilnikov

Active member
pvvx я конечно дико извиняюсь за ламерский подход к постановке вопроса, но....
я тут получил модулек (самый бюджетный 8710 B&T RTL00) "на поиграться". Вечер мучался пытаясь хоть что-то от него услышать. Сейчас зацепил напрямую к СН340 RX TX GB0 GB1 и питалово. Получил картинку (в прицепе) И чего с этим делать дальше? Объясните мне пожалуйста не посылая далеко и надолго: что есть JLINK, если это вид аппаратного программатора, то получается без его наличия используя вашу свалку модулек не прошить?
 

Вложения

  • 32.3 KB Просмотры: 94

sharikov

Active member

pvvx

Активный участник сообщества
Объясните мне пожалуйста не посылая далеко и надолго: что есть JLINK, если это вид аппаратного программатора, то получается без его наличия используя вашу свалку модулек не прошить?
Можно без JLINK, но это надо создать прошивку OTA в RtlDuino и обновить модуль через "AT" команды.

Данную тему, конкретную прошивку, для заливки по OTA через AT команды в модуль для дальнейшей работы с Arduino я оставил на реализацию другими. Не всё же мне лепить. Надо оставить место другим. :)
 
Последнее редактирование:

VDS1986

New member
Добрый день!
Прошу совета у людей, работавших с RTL8710.
Удастся ли на этом модуле получить скорость обмена порядка 1-2 Мбит/сек в режиме, когда есть хост-контроллер,
который передаёт модулю данные по UART? Сам модуль должен работать в режиме TCP-сервера,
к нему подключается клиент и тянет потоковые данные.
Сейчас использую модуль STM SPWF01, реальный выхлоп у него 40 кбит/сек, в чём признались
разработчики на форуме саппорта. Хотя в документации было заявлено 54 Мбит/сек, а о реальной скорости ни слова.
Вообще, как я понял, из даташитов на различные вай-фай модули трудно оценить реальную скорость передачи данных.
 

pvvx

Активный участник сообщества
Удастся ли на этом модуле получить скорость обмена порядка 1-2 Мбит/сек в режиме, когда есть хост-контроллер,
который передаёт модулю данные по UART? Сам модуль должен работать в режиме TCP-сервера,
к нему подключается клиент и тянет потоковые данные.
Зависит от UART. Скорости в TCP и UDP при одной антенне (RTL871x).
Для реализации полной скорости передачи по WiFi в TCP потребуется скорость от UART не менее 12..13 Мегабит в секунду. Справиться ли ваш контроллер?

WiFi 54 Мбит/с (одна антенна) / 3 (реальный трансфер) / 8 (бит в байте) / 1.5..2 (TCP запрос-ответ с ACK) = ~ 1.1...1.3 Мегабайта в сек.
 
Последнее редактирование:

VDS1986

New member
Контроллер ATSAM3X8E (Arduino Due), тактовая 84 МГц. Максимальная скорость UART получается 5250000 бод.
Полная скорость не нужна, 1 Мбит/сек хватит за глаза. Но я на стмвском модуле и 50 кбит/сек не могу сейчас получить...
 

pvvx

Активный участник сообщества
Контроллер ATSAM3X8E (Arduino Due), тактовая 84 МГц. Максимальная скорость UART получается 5250000 бод.
Полная скорость не нужна, 1 Мбит/сек хватит за глаза. Но я на стмвском модуле и 50 кбит/сек не могу сейчас получить...
Придется заливать по 3-м UART, т.к. гарантированно UART у RTL871x работает на 4Mbit/s с DMA без всяких оверклоков. :) См. док на RTL8711AF - там есть таблица дискретности baud rate для UART.
1 Mbit - это ужасный тормоз - менее 100к/с...
 

VDS1986

New member
Не понял про "Придется заливать по 3-м UART". По трём портам одновременно?
Может тогда посмотреть в сторону SPI...
100 кбайт/сек достаточно, как ни странно.
6 каналов 8-бит АЦП с частотой 10 кГц генерируют в секунду 60000 байт данных.
И их надо срочно передать, так как хранить на борту, увы, негде: у хоста всего 96 кбайт SRAM.
По-настоящему тормозной SPWF01 не позволяет столько протолкнуть в воздух.
 

pvvx

Активный участник сообщества
Не понял про "Придется заливать по 3-м UART". По трём портам одновременно?
Может тогда посмотреть в сторону SPI...
Может.
И их надо срочно передать, так как хранить на борту, увы, негде: у хоста всего 96 кбайт SRAM.
По-настоящему тормозной SPWF01 не позволяет столько протолкнуть в воздух.
Это "AT" не позволяет. Через DMA протолкнется, но всё равно придется отслеживать хосту RTS/CTS. WiFi дело не надежное и бывают дырки из-за помех и прочего...
 

VDS1986

New member
У STM'овского модуля фишечка, что когда к серверу подключается клиент, то модуль переходит в прозрачный режим, и всё,
что летит ему в UART, падает прямиком в сеть и попадает клиенту.
Внутренний буфер UART у него, как удалось выяснить у разрабов, 1000 байт. Хост, естественно, следит за RTS.
Вот, что мне ответили на форуме STM:
54 Mbit/s refers to wifi chip. Current FW release speed is around 50Kbps.
More or less, which transfer rate are you looking for?
и:
Due to low RAM, SPWF as default is not able to reach 1Mbps.
Please contact your local ST office/distributor...

Нубский вопрос по модулю RTL00:
- Прошивается он по UART'у через бутлоадер, как все Cortex'ы умеют? Или нужен именно STLink/JLink?
 

sharikov

Active member
- Прошивается он по UART'у через бутлоадер, как все Cortex'ы умеют? Или нужен именно STLink/JLink?
#@$&$#%!!!!!!
RTL по uart НЕ ПРОШИВАЮТСЯ!!!
Только JTAG/SWD.
Сколько можно повторять?
Надо это прибить наверху каждого раздела про RTL.

6 каналов 8-бит АЦП с частотой 10 кГц генерируют в секунду 60000 байт данных.
И их надо срочно передать, так как хранить на борту, увы, негде: у хоста всего 96 кбайт SRAM.
Если хотите чтобы работало всегда ставьте буфер на несколько секунд, лучше десятков. Wifi это не провод а радио, в нем могут быть замирания связи. Любой радиоканал вы разделяете с целой вселенной и снаружи прилететь может все что угодно.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Внутренний буфер UART у него, как удалось выяснить у разрабов, 1000 байт.
Менее MTU? Что за бардак?
Для передачи на максимальной скорости по TCP надо буфер на два пакета. Это обычно 15xx*2. Т.е. более 3 килобайт.
- Прошивается он по UART'у через бутлоадер, как все Cortex'ы умеют? Или нужен именно STLink/JLink?
Jtag и/или SWD.
#@$&$#%!!!!!!
RTL по uart НЕ ПРОШИВАЮТСЯ!!!
Да - сделано искусственно. Чтобы не использовали совсем не шарящие. Бутлоадер для загрузки с UART я не дам - не моя это задача. У меня есть Jtag и им быстрее, проще, надежней и с отладкой. У современных компов нет UART.
 
Последнее редактирование:
@pvvx, про mbed
А есть другие предложения по стандартизации интерфейса для "Абстрагирующихся" = пользователей Arduino?
Я адский нуб (который использовал из армов только STM32) но есть же, к примеру, SPL? Или она только для STM32, а под "чисты" ARM есть только CMSIS, который есть просто работа с регистрами? И libopencm3 вроде как.

Все как-то так запутано с этими библиотеками для ARM'ов, каждый норовит свой велосипед написать.
 

pvvx

Активный участник сообщества
@pvvx, про mbed


Я адский нуб (который использовал из армов только STM32) но есть же, к примеру, SPL? Или она только для STM32, а под "чисты" ARM есть только CMSIS, который есть просто работа с регистрами? И libopencm3 вроде как.
CMSIS - смешной набор драйверов: CMSIS_5/CMSIS/Driver/DriverTemplates at develop · ARM-software/CMSIS_5 · GitHub
Все как-то так запутано с этими библиотеками для ARM'ов, каждый норовит свой велосипед написать.
Ничего запутанного в RTL в упор не вижу. HAL уровень есть, RTOS прикручен, api уровень есть...
Может беда в том, что SDK содержит слишком много примеров?
Описания в хидерах есть на 90% регистров и контроллеров данного SoC (ещё и с примерами :) ). Документацию в PDF на сложные контроллеры я выложил. На RF часть - только хидеры - нефиг там копаться :) Пишите любой интерфейс или прямо в регистры...
Картинок не будет - я не художник и не нанимался в Realtek. На поступающие предложения от производителей модулей для детей я отказал. У меня своя работа и предприятия есть... Т.е. имею производство способное лепить хоть модули, но это не интересует, т.к. работать в области частных мелких заказов нет никакого желания. Это слишком муторно и не дает прибыли.
 
Последнее редактирование:
Ничего запутанного в RTL в упор не вижу. HAL уровень есть, RTOS прикручен, api уровень есть...
Может беда в том, что SDK содержит слишком много примеров?
Описания в хидерах есть на 90% регистров и контроллеров данного SoC (ещё и с примерами :) ). Документацию в PDF на сложные контроллеры я выложил. На RF часть - только хидеры - нефиг там копаться :) Пишите любой интерфейс или прямо в регистры...
Картинок не будет - я не художник и не нанимался в Realtek. На поступающие предложения от производителей модулей для детей я отказал. У меня своя работа и предприятия есть... Т.е. имею производство способное лепить хоть модули, но это не интересует, т.к. работать в области частных мелких заказов нет никакого желания. Это слишком муторно и не дает прибыли.
Да нет, это риторическое высказывание от нуба, который еще не разобрался во всем. К Вам-то вообще никаких претензий - наоборот, я искренне восхищаюсь и благодарен Вам за ту работу, которую вы проделали.
 

pvvx

Активный участник сообщества
Да нет, это риторическое высказывание от нуба, который еще не разобрался во всем. К Вам-то вообще никаких претензий - наоборот, я искренне восхищаюсь и благодарен Вам за ту работу, которую вы проделали.
Ну это только в рамках "хобби". Большего не сделать одному.
mbed - это C++.
 
Последнее редактирование:

Pilnikov

Active member
RTL по uart НЕ ПРОШИВАЮТСЯ!!!
Только JTAG/SWD.
Второй нубский вопрос - схема подключения например к такому
(перешит в jlink по рекомендациям pvvx) ?
Третий нубский вопрос - как проверить работоспособность зверька (jlink -a) без 2-го STM-a? При попытке прошивки выдает картинку из прицепки.
Четвертый нубский вопрос в каком режиме прошивать, какие настройки делать для jlinka?
Пятый нубский вопрос - указывать сом порт или не обязательно?
 

Вложения

Последнее редактирование:

pvvx

Активный участник сообщества
Второй нубский вопрос - схема подключения например к такому
Скачайте и ищите знакомые буквы тут: RTL871x_Info/padi-jtag-swd-connections-diagram.pdf at master · pvvx/RTL871x_Info · GitHub
(перешит в jlink по рекомендациям pvvx) ?
Я давал такую рекомендацию: Используйте нормальный Jlink - он при соединении ещё с reset (CHIP_EN) модуля хорошо работает и дает большие скорости...
Третий нубский вопрос - как проверить работоспособность зверька (jlink -a) без 2-го STM-a? При попытке прошивки выдает картинку из прицепки.
Нет смысла в проверке, если адаптер исправен.
Четвертый нубский вопрос в каком режиме прошивать, какие настройки делать для jlinka?
Никаких. установки берутся из скриптов.
Пятый нубский вопрос - указывать сом порт или не обязательно?
Куда и какой COM порт? У JTAG нет COM портов. И на компьютерах тоже ныне нет COM портов. Это чтобы прошить ESP8266 надо покупать адаптер USB-COM порта отдельно, JTag тоже отдельно и переписать самому UDK или купить лицензию на платную версию Xtensa (ныне Cadence Design Systems) компилятора под Windows. А тут RTL871x.
 
Сверху Снизу