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

Arduino для RTL8710.

pvvx

Активный участник сообщества
По этому смешно // статейку - MBED, или о дырявых абстракциях: "Тестовой платформой стала давно лежащая без дела STM Nucleo F030" :)
Чувак занимается ногодрыганием через операционную систему, а не использованием аппаратных интерфейсов. Он бы ещё VUSB на i7 попробовал написать... Один OUT в порт = полная очистка всех кешей, т.к. может это порт переключает банки внешней памяти... :) А дальше куча транзакций по шине PCIE, к примеру... до контроллера ISA тактируемого у Intel всего десятком MHz и наконец в порт LPT, с отсутствующим разъемом на корпусе компа... :) Итого не быстрее STM Nucleo, даже если на ASM :)
 
Последнее редактирование:

A_D

Active member
Я не предпочитаю никакой из описанных, но чего-то придерживаться надо. Так-же я не болен синдромом NIH :)
На сегодня можно все устройства используемые как конструкторы (Arduino и т.д.) разбить на три класса:
1) 8/16 битные MCU (датчики)
2) Нормальные SoC (MCU 32 бит, RAM от пол до дцать мег) (автономные устройства и т.д.) (включая OpenWRT и её развитие)
3) Linux устройства
Для каждого из них своя ниша и применение на долгие времена. ESP8266 и прочие огрызки не лезут ни в какую из них, т.к. являются временным промежуточным этапом перехода от класса 1 в 2. Все наработки на них будут поскипаны.
Для класса 2 уже давно есть много MCU, но с WiFi как конструктор пока мало.
Часто там стоит BSD. Туда "портировано" уже всё. Полная Lua и т.д.
(Первый попавшийся по поиску пример GitHub - sergev/LiteBSD: Variant of 4.4BSD Unix for microcontrollers)
Раз уж намекаете: Я то тоже не болен NIH, не редко смотрю как у других сделано, учусь на чужих ошибках\работах. Но изучать всё подряд нету как квалификации программиста должной, так и времени, вот и спрашиваю потому - стоит ли оно того и почему Вы эту библиотеку применяете.

В целом понятно по какой причине был выбран mbed, Спасибо за разьяснение. :)

И к слову вопрос - а не попадался ли кому даташит на RTL8710AF ? интересует пинаут самого чипа, не модуля.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
1) 8/16 битные MCU (датчики)
2) Нормальные SoC (MCU 32 бит, RAM от пол до дцать мег) (автономные устройства и т.д.) (включая OpenWRT и её развитие)
3) Linux устройства
Разреши не согласиться... смотрю я на китайцев (а они реальные паровозы в этом) и вижу немного другой расклад:
1. Массовое использование STC и других 8051 (30+ рублей за штуку)
2. Массовое использование младших Altera(Max3000 например) в местах где мы привыкли использовать 8-16 разрядные контроллеры.
3. Atmel/старшие Stm только на европейский рынок
4. высшие Arm только в телефоны/планшеты, а в прочих устройствах только на европейский рынок (мы для них типа Европа)
5. Linux только на Европу
 

pvvx

Активный участник сообщества
Разреши не согласиться... смотрю я на китайцев (а они реальные паровозы в этом) и вижу немного другой расклад:
1. Массовое использование STC и других 8051 (30+ рублей за штуку)
2. Массовое использование младших Altera(Max3000 например) в местах где мы привыкли использовать 8-16 разрядные контроллеры.
3. Atmel/старшие Stm только на европейский рынок
4. высшие Arm только в телефоны/планшеты, а в прочих устройствах только на европейский рынок (мы для них типа Европа)
5. Linux только на Европу
Если вы засели на слабых контроллерах для датчиков, то что с того?
Класса 2 (по моему описанию) у китайцев много, но не SoC. Дитяти (дети-дяди :)) их не освоили из-за отсутствия SDK и поддержки в Дуринах.
К контролерам датчиков можно отнести и 32-х разрядные с RAM < пол метра. Просто не вписал в класс 1, т.к. разрядность там без разницы.

Nikolz вон предлагает использовать отстой из того века… Большие транзисторы и логику с фронтами > 20 ms амплитудой к 18 В на газоразрядные индикаторы… :)

А у меня тут rtlDuina пишет: [inline]RTL8195A[Driver]: skb_unavailable=6 in last 2 seconds[/inline] - что это такое - пока не знаю, но 5-ть открытых TCP льют за 1.5Mbytes/sec...
Нашел: UDP fast packet transmission – Realtek IoT/Arduino Solution
Придется лечить...
В четыре потока такого нет... Может опции LwIP поменять?
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
Если вы засели на слабых контроллерах для датчиков, то что с того?
Я??? Ты в шкафу моем смотрел :) !!? Это китайцы... а они, гады деньги умеют считать, не то что мы.
И вообще... хватит прессовать Nikolz не к месту, а то просто смешно - ну взрослые мужики же, пора бы понять что право думать иначе - это не Горбачев придумал, это абсолютно НОРМАЛЬНО. Кстати... второй день бодаюсь с rtlduina - никак не уговорю. Штука классная но что то не учитываю. То есть: стандартную прошивку - вижу. По COM откликается. В Ozone (j-link) как Cortex M3 девайс - вижу, регистры-память-стэк. В Arduine - компилится. Но никак не загружается внутрь...
 

pvvx

Активный участник сообщества
Я??? Ты в шкафу моем смотрел :) !!? Это китайцы... а они, гады деньги умеют считать, не то что мы.
И вообще... хватит прессовать Nikolz не к месту, а то просто смешно - ну взрослые мужики же, пора бы понять что право думать иначе - это не Горбачев придумал, это абсолютно НОРМАЛЬНО. Кстати... второй день бодаюсь с rtlduina - никак не уговорю. Штука классная но что то не учитываю. То есть: стандартную прошивку - вижу. По COM откликается. В Ozone (j-link) как Cortex M3 девайс - вижу, регистры-память-стэк. В Arduine - компилится. Но никак не загружается внутрь...
Но оно, rtlDuino, ещё не готово на использование без самостоятельного допиливания.
Вот пилю... Ещё много пилить там.
---
Тест по многопоточному TCP накрылся - карта в компе или роутере не смогла тянуть такие мелкие пакеты, перезапустилась... И тут надо копать...:(:mad:
Загрузка CPU RTL8710AF при этом всего 22%

А зачем вам Nikolz - он только лается и ничего дельного за всю местную историю не предложил...
 

Юрий Ботов

Moderator
Команда форума
Мне Nicolz не нужен. Просто СМЕШНО когда серьезные мужики письками меряются. Ну поздно уже. Или рано... По любому не во время :)
 

sharikov

Active member
В Ozone (j-link) как Cortex M3 девайс - вижу, регистры-память-стэк. В Arduine - компилится. Но никак не загружается внутрь...
Ozone на ура грузит axf в рам (проверял на rtl00mp3, но и ардуину должен грузить). Еще и периферию показывает .
Путь к jlink.exe в ардуиновском батнике исправили ?
 

pvvx

Активный участник сообщества
И к слову вопрос - а не попадался ли кому даташит на RTL8710AF ? интересует пинаут самого чипа, не модуля.
Возьмите от RTL8711AF. Различий там нет, вообще.
Только тут:
Код:
void setup() {
/* HalGetChipId:
* 0xff - RTL8711AM, 0xfe - RTL8195AM, 0xfd - RTL8711AF,
* 0xfc - RTL8710AF, 0xfb - RTL8711AN, 0xfa - RTL8710AM */
  printf("ChipID: %p\n", HalGetChipId());
}
Так-же добавлены:

GetFlashSize() - размер Flash в байтах

GetFlashId() - Bit16..23: manufacturer ID, Bit8..15: memory type, Bit0..7: memory density :
0xC22015 - MXIC MX25L1606E, F11AMIM13 (RTL8711AM) module,
0xC22014 - MXIC MX25L8006E, RTL00 (RTL8710AF) module

Добавлен NetBIOS. Примеры в SimpleServerWiFi.ino, WiFiWebServer.ino.

netbios_set_name(0,"rtlweb"); // задать имя для доступа интерфейсу №0 (http://rtlweb/)
netbios_init(); // запуск драйвера Netbios
netbios_off(); // отключить драйвер Netbios

Доступ из броузеров Windows к модулю теперь по имени.

С номерами интерфейсов ещё путаница, т.к. в AT интерфейсы (номера netif):
0 - SoftAP, 1 - Station, 2 - Ethernet
А в Ameba Arduino - по последовательности инициализации.

Интерфейс 2 - Ethernet уже готовится, пока для этого у меня есть только модули W5500, но его тоже можно использовать в режиме RAW... Они более адекватны цена/ 100Mbit/s и имеют SPI более 60MHz (попробую на 83MHz).
Типа такие W5500 USR-ES1:
WizNet.jpg
Будет объединен-приобщен к общему LwIP. На модулях RTL871x для внешнего PHY не хватает выводов у интерфейса MII, но он присутствует в чипе.
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
Путь к jlink.exe в ардуиновском батнике исправили ?
Спасибо за идею :) исправить то исправил, но оказалось что у меня стоит 2 копии SDK одна в appdata/local другая в appdata/roaming причем правлю я как написано - local а реально работает roaming :) залилось, но пока не пойму работает или нет
 

A_D

Active member
Возьмите от RTL8711AF. Различий там нет, вообще.
Спасибо за подсказку!

Добавлен NetBIOS. Примеры в SimpleServerWiFi.ino, WiFiWebServer.ino.

netbios_set_name(0,"rtlweb"); // задать имя для доступа интерфейсу №0 (http://rtlweb/)
netbios_init(); // запуск драйвера Netbios
netbios_off(); // отключить драйвер Netbios

Доступ из броузеров Windows к модулю теперь по имени.

С номерами интерфейсов ещё путаница, т.к. в AT интерфейсы (номера netif):
0 - SoftAP, 1 - Station, 2 - Ethernet
А в Ameba Arduino - по последовательности инициализации.

Интерфейс 2 - Ethernet уже готовится, пока для этого у меня есть только модули W5500, но его тоже можно использовать в режиме RAW... Они более адекватны цена/ 100Mbit/s и имеют SPI более 60MHz (попробую на 83MHz).
Типа такие W5500 USR-ES1:
Посмотреть вложение 2869
Будет объединен-приобщен к общему LwIP. На модулях RTL871x для внешнего PHY не хватает выводов у интерфейса MII, но он присутствует в чипе.
хм, т.е. будет драйвер для W5500 по SPI ?
Зы. Сам нашел ответ уже: Ну да, тут по другому и не сделать :)
 

Вложения

pvvx

Активный участник сообщества
хм, т.е. будет драйвер для W5500 по SPI ?
Зы. Сам нашел ответ уже: Ну да, тут по другому и не сделать :)
Есть и другие модули c W5500 - побольше габаритами и дешевле. На Arduino драйвера на W5500 есть, но мне надо состыковать в общий LwIP, т.е. использовать W5500 не по назначению, а как тупой PHY...
 

pvvx

Активный участник сообщества
Спасибо за идею :) исправить то исправил, но оказалось что у меня стоит 2 копии SDK одна в appdata/local другая в appdata/roaming причем правлю я как написано - local а реально работает roaming :) залилось, но пока не пойму работает или нет
А как это влияет на RtlDuino, если она сидит и ставится в каталог Arduino?
И все директории назначает и передает tools-ам сама Arduino.
Похоже, что вы запутались во множестве установленных Arduino...
В батниках никаких путей нет RtlDuino/JLink-RunRAM.bat at master · pvvx/RtlDuino · GitHub - все давно выкинуты и назначаются автоматом средой Arduino.
 
Последнее редактирование:

A_D

Active member
Offtop:
Дотянулись руки таки засесть за изучение RTL00 модулей. Поигрался с NFC немного и решил уже что то посерьезнее - Мигание Светодиодом! :) но не просто так, а через wifi и через mqtt - RTL00 конектится к роутеру, в качестве сервера мой комп, на нем запущен брокер на C#, а так же клиент, который тут же к серверу обращается. В общем моргает светодиод) и собственно чего пишу то это - модуль ХОЛОДНЫЙ и быстрый. (правда пока экспериментировал, полностью затер всю флеш на нем, в том числе и калибровки и МАС... с другого скопировал, МАС чуть изменил - работает!) Насколько же велика разница по сравнению с кустарным esp ....
 

pvvx

Активный участник сообщества
Offtop:
Дотянулись руки таки засесть за изучение RTL00 модулей. Поигрался с NFC немного и решил уже что то посерьезнее - Мигание Светодиодом! :) но не просто так, а через wifi и через mqtt - RTL00 конектится к роутеру, в качестве сервера мой комп, на нем запущен брокер на C#, а так же клиент, который тут же к серверу обращается. В общем моргает светодиод) и собственно чего пишу то это - модуль ХОЛОДНЫЙ и быстрый. (правда пока экспериментировал, полностью затер всю флеш на нем, в том числе и калибровки и МАС... с другого скопировал, МАС чуть изменил - работает!) Насколько же велика разница по сравнению с кустарным esp ....
Ameba Arduino тоже "куcтарная", т.е. даже хуже... PINE вообще кошмар - одни обещания в их форуме "о будущих исправлениях" прошивки, которая не совместима ни с чем, т.к. ограничивает доступ к большей части устройств чипа и i/o и полная безграмотность оф.ответов по поводу загрузчика в image1... JTAG можно отключить в eFuse у RTL8710 навсегда. Складывается впечатление что они не знают вообще что туда прошили и где выдрали свой SDK (взяли из предварительного недоделанного варианта от Ameba Arduino к RTL8710 и вписали кривые ограничения по ID чипа из eFuse)...
На PINE модуле почему-то не удается запустить даже SDIOH контроллер - возможно, что их "загрузчик" в image1 что-то не так конфигурирует... Я пока не занимался полным "реверсом" загрузчика в image1, т.е. нет полностью готовой версии для выкладывания пользователям. Завязка идет с возможностью работы загрузчика с любым чипом из серии RTL871x и пока нет проработанного варианта запуска кода в SDRAM без предварительной прошивки для RTL871xAM.
 
Последнее редактирование:

A_D

Active member
Ameba Arduino тоже "куcтарная", т.е. даже хуже... PINE вообще кошмар - одни обещания в их форуме "о будущих исправлениях" прошивки, которая не совместима ни с чем, т.к. ограничивает доступ к большей части устройств чипа и i/o и полная безграмотность оф.ответов по поводу загрузчика в image1... JTAG можно отключить в eFuse у RTL8710 навсегда. Складывается впечатление что они не знают вообще что туда прошили и где выдрали свой SDK (взяли из предварительного недоделанного варианта от Ameba Arduino к RTL8710 и вписали кривые ограничения по ID чипа из eFuse)...
На PINE модуле почему-то не удается запустить даже SDIOH контроллер - возможно, что их "загрузчик" в image1 что-то не так конфигурирует... Я пока не занимался полным "реверсом" загрузчика в image1, т.е. нет полностью готовой версии для выкладывания пользователям. Завязка идет с возможностью работы загрузчика с любым чипом из серии RTL871x и пока нет проработанного варианта запуска кода в SDRAM без предварительной прошивки для RTL871xAM.
Ну активно RTL начали довольно недавно в народе появляться, когда esp были на заре - сверх дешевый wifi чип, то ситуация с sdk была не лучше.. в RTL по крайней мере "железо" явно лучше, а программную часть уже проще исправить, чем "железную".

я от PINE модули не заказывал, только B&T, последние регулярно за 1,9...2,2$ аукционы выйграть удаётся :p
А нельзя к примеру забекапить PINE полностью (на всяк) и потом залить в него всё из B&T - модули то по железу одинаковые. Может такой вариант поможет? или вопрос принципиально в прошивке - чего там намудрили китайцы из PINE..

Поглядел на форуме - вот тут позабавило PADI - Overclocking to 166MHz works well
ответ китайца на найденную фичу
>> Awesome, great finding but not surprise

как бы типа молодец, но мы это и так знали)) явно имеют больше документации на чип, чем выкладывают в открытый доступ.
 
Последнее редактирование:

pvvx

Активный участник сообщества
А нельзя к примеру забекапить PINE полностью (на всяк) и потом залить в него всё из B&T - модули то по железу одинаковые. Может такой вариант поможет? или вопрос принципиально в прошивке - чего там намудрили китайцы из PINE..

Поглядел на форуме - вот тут позабавило PADI - Overclocking to 166MHz works well
ответ китайца на найденную фичу
>> Awesome, great finding but not surprise

как бы типа молодец, но мы это и так знали)) явно имеют больше документации на чип, чем выкладывают в открытый доступ.
Дык это kissste - мы с ним и разгребали тему I2S и SPI, я ему и дал как включить на 166... E PINE ошибка - при загрузке с Jtag в память включается 166 MHz, а при старте с Flash - 83MHz. Тем более они ковыряли это кое как и забыли поправить ход тиков в RTOS.
Отличие может быть в eFuse - мне неизвестно что там прошили в PINE. Области eFuse прошиваются как угодно, но вроде есть ограничение... пока не стал портить модули такими "тестами". У kissste модуль от PINE...
Efuse RTL00
PS: я думаю, что через время у PINE будет меньше документации и исправлений ошибок в SDK, чем у меня. Уже нашел достаточно ошибок в SDK...
В моем SDK все eFuse, кроме WiFi драйвера не воспринимаются. PINE вписали в Hal невозможность использования внутреннего оборудования чипа и даже некоторых I/O - весь этот лишний код выкинут и сделано на усмотрение пользователя. Ameba Arduino тоже ограничивает использование оборудования и I/O под свою плату отладки. Скорее всего и 150Mbit/s у PINE запрещено на WiFi - посмотрите любым сканером WiFi пакеты конфигурации со списком поддерживаемых скоростей...
 
Последнее редактирование:

garry64

New member
получилось собрать OTA были проблемы с xcopy
теперь залить не могу
==============
Writing 0x00000000 @ address 0x40006018

Writing 0x00000000 @ address 0x4000601C

Writing 0x00000000 @ address 0x4000604C

Get ImagesSize:
Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
Image2Size = 262896
Restoring binary file ota.bin into memory (0x10000300 to 0x10000304)
ImageSdramSize = 0
initializing RTL8710 flasher
Resetting target

Restoring binary file rtl8710_flasher.bin into memory (0x10001000 to 0x100013c8)
gdb_img.jlink:330: Error in sourced command file:
Flash ID = 0x001420c2 : MX25L8006E (1024 kbytes)
Remote communication error. Target disconnected.: No error.
RTL8710 flasher initialized
write offset 0x0000b000
Restoring binary file ota.bin into memory (0x10008020 to 0x10048334)
erase sector 11 at 0x0000b000
erase sector 12 at 0x0000c000
erase sector 13 at 0x0000d000
(gdb)
 
Сверху Снизу