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

Realtek RTL872x (WiFi+BLE5.0)

pvvx

Активный участник сообщества
В общем надоело ковыряться там. Мешает пресловутая VS - на случайные нажатия на asm и прочее грузит с SSD своё толстое тело и всё тормозит глухо на все десятки потоков CPU... А переназначать счас лень... Ей чё в 64ГБ DDR не закешироваться? :eek:
 

pvvx

Активный участник сообщества
А SDK ведь можно посмотреть уже, вполне доступен - ambiot/ambz2_sdk
В данном SDK по описаниям BLE и USB нет.

Но для Ameba-D в Application Note:

Halbtc8721d_phy.c
component\common\drivers\wlan\realtek\src\hal\btc
Ble_app_main.c
component\common\bluetooth\realtek\sdk\example\ble_peripheral
Ble_central_at_cmd.c
component\common\bluetooth\realtek\sdk\example\ble_central

component\common\bluetooth\realtek\sdk\board\amebad\lib
и т.д.
Итого:
upload_2020-1-30_2-58-11.png
 

cheblin

Member
и прочее грузит с SSD своё
а вот нефиг SSD дергать, у него рессурс не резиновский

в Виллабаджо, все уже давно на RAM диски перекатились
во-первых рессурс неограничен , а во-вторых существенно быстрее.
весь трэшЪ от компиляции туда выношу
 

pvvx

Активный участник сообщества
а вот нефиг SSD дергать, у него рессурс не резиновский

в Виллабаджо, все уже давно на RAM диски перекатились
во-первых рессурс неограничен , а во-вторых существенно быстрее.
весь трэшЪ от компиляции туда выношу
Я от этого отказался в позапрошлом году. Кеш дисков в RAM и так в win-де работает - зачем двойное дублирование.
 

pvvx

Активный участник сообщества
ты реально, просто читать не умеешь. перечитай моё сообщение. хотя нет. не перечитывай.
Может вы писать?
И проблемс не в ресурсах SSD, а в том что VS при посадке в систему садится на все расширения файлов и грузится чтобы показать тот-же текст asm или ... Но её время загрузки и инициализации ужасающее.
За это время проходят сотни кадров экрана и кулеры взвывают, а я читаю и ищю инфу быстрее, чем оно шевелиться и нажимая капы возникают лаги, приводящие к новым вызовам только что убитой VS.
Поиск и анализ при обработке сотен файлов у нормальных людей происходит на подсознательном уровне - кадров через пять-десять пролистывания и открытия уже нового файла руками... Лаг такой у мозга - низкая тактовая 7 Гц.
Вот пока инфа анализирется, ручками уже другие файлы открываются и далее. Потом отрабатывает салбаск по соответствию заданным шаблонам поиска и соответственно производится откат ручками - много тапов и тут вам вылазит VS в этом процессе.. Ручки прыгают к мышке и ждут сигнала поиска крестика да нового убийства этого никчемного монстра (капа такая - закрыть нафиг)... Процесс сбивается и одна мечта убить вообще нафиг эту VS.
 

pvvx

Активный участник сообщества
У вас все дома? Настройте правильно компилятор. Ничего на диск не пишется при нормальной сборке. Даже на RAM диск!
При сборке файлы открываются и закрываются, потом уничтожаются. Что делает кеш c отложенной записью?
Купите нормальный CPU и время сократится до отработки кеш.
 

pvvx

Активный участник сообщества
Амеба совсем обамебилась. За год ничего не сделали в SDK или Arduino...
Проверил указанные ими параметры deep-sleep на их-же eval плате в Arduino.
Ameba D RTL8722DM
1603451982432.png
По докам:
1603452197628.png
В реале:
1603452226512.png
Рис1: Включение питания и старт сразу в deep-sleep, без всяких printf() и инициализаций serial.

1603452236349.png
Рис2: Выход по RTC из deep-sleep и снова в deep-sleep, без всяких printf().

Не вижу заявленных 18 ms WAKEUP у KM0, больше - есть.

Потребление при deep-sleep на данной eval не измерить. Источник 3.3В на плате ужасно шумный.
При внешнем стабильном источнике 3.3В в deep-sleep и RTC на пины JP1 - R38 жрет около 1 мкА
 

pvvx

Активный участник сообщества
SeeedStudio Wio Terminal имеет RTL8721DN и они кинули на github более расширенный SDK:

Там имеются примеры по USB dev/host и многое другое.

В отличии от Ameb-ного выкидыша оно собирается в WSL1/WSL2 без танцев с бубном.

Выходит, что самый дешевый на али модуль/чип со встроенным PHY USB2.0 hi-speed это BW16 RTL8720DN - два ядра cortex-m23 + cortex-m33 (200 MHz), более пол мега SRAM только для старшего ядра…

При включении в рабочем режиме только одного cortex-m23, чип жрет 4..5 мА, в sleep - 2 uA, c опросом клавиатуры 3 uA, при дополнении TOUCH – 4 uA, ... в полном deep-sleep уже что-то неизмеримое…
 

pvvx

Активный участник сообщества
Собрал тестовую прошивку с WiFi+BT+USB для тестов с USB ACM. Пока ничего не оптимизировал. M33 Core на 200 MHz.
Итог по питанию (WiFi остановлен "ATWD"):
PowerUSB.gif
В режиме работы шины USB на максимуме получаем средний потребляемый ток в 40 mA.

Тест скорости (COM Echo), при блоке в 2047 байт показывает:
1604177296222.png
Более 9 Мегабайт в секунду.
 

pvvx

Активный участник сообщества
Т.к. USB у RTL872xDx работает возникает непонятка - фигли Ameba не встроила в Arduino подключение и программирование чипа по USB?
Так-же установлено, что соединение с AP в Ameba-Arduino происходит раз в 10 дольше, чем в SDK с Fast-Connect.
В текущем SDK при Fast-Connect соединение с AP (2.4ГГц, WPA, DHCP) устанавливается за менее 1 сек с подачи питания.
В Ameba-Arduino производятся дополнительные циклы опроса всех диапазонов 2 и 5 ГГц далее очень долго соединяется и делает ещё что-то лишнее. Наверно великая забота и смысл в том, чтобы гарантированно подключилось с соблюдением всех спецификаций и сделано это последовательно, без оптимизаций, т.к. нет возможности установить точную метрику AP в стандартных функциях Arduino до старта подключения.
 

pvvx

Активный участник сообщества
Добился нормального sleep c активным WiFi на AmebaD (RTL8722DM) плате, поковыряв всякие sleep опции в SDK...
Пример типичного замера работы со стандартными настройками на роутерах и конфига соединения:
1604581002109.png
Среднее потребление при соединении с AP гуляет в пределах 0.9..1.1 мА в зависимости от радиоэфира в WiFi (без опроса модуля)
В данном замере 1.09 мА:
1604581025877.png
 

pvvx

Активный участник сообщества
WiFi и BLE работают одновременно. Но в таком варианте ещё не смог нормально врубить sleep.
Походу ESP совсем умерли, оставшись для игр беспомощным Ардуинщикам.
Вот тут скетчеписатель не справился с установками режимов сна у системы и RF...
 
Сверху Снизу