Сравнение RTL8710 и ESP8266

A_D

Active member
Там уже две версии бывает V00 и V01
Сегодня забрал с почты - пришла пачка таких V0.1 (кое как сфотал для разрисовки, чтоб припаять... надо в сканер засунуть для нормального качества, но лень...):
Да, такие же пришли оба - RTL00-V1.0
Да, надо. Какой там чип так никто и не знает :p
Пробовал крышку оторвать отверткой - не отдирается :) На ESP12 открывалась влет...
утром прочитал, пока с работы пришел - Вы уже и сфотали... )

Пытался уже ST-Link-ом, когда завесил ATой - не захотел зашивать... Бросил и включил J-link в режиме JTAG - пошло.
Необходимо разобраться куда и какие пины потягивать для стабильной работы JTAG/SWD. В доках пока не нашел...
Я пробовал как раз ST-Link-ом конектится по SWD, из под Keil для ARM - нормально определял, правда зашивать ничего не пробовал.
 

sharikov

Active member
Под крышкой один чип + 'кварц' и практически всё.
В правом нижнем углу нечто похожее на два светодиода. Зачем они под крышкой ?
Количество конденсаторов "внушаить" по сравнению с модулями на esp8266. Они даже антенну пытались согласовать.
Эх, мои модули никак не приходят. Две нужные посылки заказанные в одно время канули в черную дыру, даже не трекаются после экспорта (одна была с трекингом).
 

pvvx

Активный участник сообщества
В правом нижнем углу нечто похожее на два светодиода. Зачем они под крышкой ?
Они через дырку светят. Вроде когда красный светит - у меня не работает Jtag... Когда оба не горят (второй зеленый на UART-TX) - работает.
Исходники загрузчика пока никто не выкладывал и ничего не ясно, а мне пока лень ковырять... Нужен порт GCC для RTL с конфигами к Eclipse на Амёбу на MinGW = под винду, т.к. чаще на ней приходится сидеть... В IAR ужасный редактор.:(
 
Последнее редактирование:

goodwin

Member
"За шесть лет всё-таки прошивка J-Link на STM32 дошла до потребителей"

Да как то не нужно было, у меня полноценные V8 и "Flasher" имеются.
Просто встретилось на днях.
Залил - работает...
 

pvvx

Активный участник сообщества
"За шесть лет всё-таки прошивка J-Link на STM32 дошла до потребителей"

Да как то не нужно было, у меня полноценные V8 и "Flasher" имеются.
Просто встретилось на днях.
Залил - работает...
Пару месяцев назад - надо было прошить ADUC 'в полевых условиях' :)
20160906_173549x.jpg
Плата с STM103x08 превратилась в Jtag... SEGGER :) И так с 2009-го....
Теперь китайцы наделают дешевых плат RTL с J-Link-ом - полноценным JTAG и SWD, да COM-USB на одной микрухе за 10 центов.... Для ESP так никто не сделал.

----
Если стереть всю Flash, то по старту RTL8710AF выдаст в UART-TX:
Код:
=========================================================

ROM Version: 0.3

Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)

=========================================================
Check boot type form eFuse
SPI Initial
Image1 length: 0xf, Image Addr: 0xf
Image1 Validation Incorrect !!!
Please Re-boot and try again, or re-burn the flash image
Вводим символ 0x1B и открывается монитор:

Код:
<RTL8195A>?
----------------- COMMAND MODE HELP ------------------
        HELP (?)   : Print this help messag

        DB <Address, Hex> <Len, Dec>:
                                 Dump memory byte or Read Hw byte register
        DHW <Address, Hex> <Len, Dec>:
                                 Dump memory helf-word or Read Hw helf-word register
        DW <Address, Hex> <Len, Dec>:
                                 Dump memory word or Read Hw word register
        EW <Address, Hex> <Value, Hex>:
                                 Write memory word or Write Hw word register
                                 Can write more word at the same time
                                 Ex: EW Address Value0 Value1
        SPICTOOL <Mode, Dec> <BitMode, Dec>:
                                 Mode = 1: Init SPIC;  BitMode: 0(One)/1(Dual)/2(Quad)
                                 Mode = 2: Erase Chip

----------------- COMMAND MODE END  ------------------
<RTL8195A>DB 0 32
[Addr]   .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
00000000: fc ff ff 1f 01 01 00 00 09 01 00 00 0d 01 00 00     ................
00000010: 21 01 00 00 25 01 00 00 29 01 00 00 00 00 00 00     !...%...).......
<RTL8195A>DW 0 4
00000000:    1FFFFFFC    00000101    00000109    0000010D
<RTL8195A>DHW 0 4
00000000:       FFFC    1FFF    0101    0000    0109    0000    010D    0000
<RTL8195A>SPICTOOL 1 1
Initial Spi Flash Controller
Initial Spic Two bit mode
<RTL8195A>SPICTOOL 2 1
Erase Falsh Start
Init Baud Rate: 0x1
Init RD Dummy: 0x1
Init Delay Line: 0x5e
Erase Cmd Set
Erase Falsh End
<RTL8195A>
А всё это значит, что в чип с 'пустой' Flash можно записать байтиками програмку и плюнуть в стек, для перехода в неё. Т.е. загрузить чип с UART в текстовом мониторе :)

Первый мегабайт адресного пространства RTL8710AF - там должен быть ROM-BIOS. Но он какой-то короткий = 299296 байт всего. Остальное пусто :(
 
Последнее редактирование:

goodwin

Member
С моей стороны:
ST-Link ногами дрыгает, чип видит, но для проекта из SDK скорее всего его драйвер "жидковат".
Срубается на загрузке. Может версия IAR/драйвера ST-Link у меня не самая свежая.
Бросил каку...

А вот с Jlink все путем. Даже с "ущербным" - из моего предыдущего поста.
Летает по двум проводкАм SWD на скорости 4 Мгц.
Способ сброса "сore".
ПО и драйверы у него покруче...
Можно разглядывать всю память утилитой JMem.exe, как бонус.
Если после компиляции проекта установить галку "Attach nj runnig target" в отладчике
(не заливать флэш), томожно в окне дизассемблера ставить бряки, выполнять пошагово.
Так как имеется отладочная информация, то видно имена подпрограмм в ROM и пр.
интересные штучки.
Т.е. можно начать с точки входа ROM и посмотреть, чем занимается загрузчик...
 

Вложения

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

goodwin

Member
Какой то подозрительный ROM BIOS ;)
Вот что кажет JMem с нулевого адреса.
 

Вложения

pvvx

Активный участник сообщества
Какой то подозрительный ROM BIOS ;)
Вот что кажет JMem с нулевого адреса.
Наверно не то записал, но дальше совпадает :) Сотру. Писал уже из Web-сервера сооруженного на скорую руку...
AT говорит:
Код:
# ATSD=0, 32
[ATSD]: _AT_SYSTEM_DUMP_REGISTER_
00000000:    1FFFFFFC    00000101    00000109    0000010D
00000010:    00000121    00000125    00000129    00000000
и Flash:
Код:
# ATSF=0
[ATSF]: _AT_FLASH_DAMP_
00000000 99 99 96 96 3f cc 66 fc c0 33 cc 03 e5 dc 31 62 e8 36 00 00 c8 0b 00 10 2c 00 ff ff ff ff ff ff
00000020 2b 25 00 10 f5 22 00 10 f5 22 00 10 f5 22 00 10 f5 22 00 10 23 79 16 88 ff ff ff ff 08 00 00 00
---
И после стирания всей Flash модуль забыл свой MAC :) Но всё сохранено ранее...

Есть непонятности с Flash. Когда включена аппаратура SPIC, то Flash отображается в c адреса 0x98000000. Интересно - возможно ли запустить там код на исполнение, чтоб SPIC работал как 'кеш'? Или реалтек что-то там накосячил?
Код:
int  flash_read_word(flash_t *obj, uint32_t address, uint32_t * data)
{
    // Read Word
    flash_init(obj);
    // Wait flash busy done (wip=0)
    SpicWaitWipDoneRefinedRtl8195A(obj->SpicInitPara);
    * data = HAL_READ32(SPI_FLASH_BASE, address);
    SpicDisableRtl8195A();
    return 1;
}
А тут нет Wait() - arm-gcc-blink-example/flash_api.c at master · neojou/arm-gcc-blink-example · GitHub
 
Последнее редактирование:

pvvx

Активный участник сообщества
С моей стороны:
ST-Link ногами дрыгает, чип видит, но для проекта из SDK скорее всего его драйвер "жидковат".
Срубается на загрузке. Может версия IAR/драйвера ST-Link у меня не самая свежая.
Бросил каку...
ST-Link со стандартной прошивкой ID чипа видит и далее ругается...
На такого типа ST-Link-и уже есть какая прошивка для перевода в J-link SWD 'без паяльника'?
STLch_k.jpg STLch_sch.gif
Это SEGGER - The Embedded Experts - ST-LINK on-board
пишет:
Preparing for FW update (can take up to 10 seconds)...O.K.
Identifying ST-LINK variant...ERROR: Unsupported ST-LINK hardware variant
---
'Подлечил':
Сравнение файлов STLinkReflash.exe и newSTLINKREFLASH.EXE
000026AA: 74 EB
Теперь пишет:
Preparing for FW update (can take up to 10 seconds)...O.K.
Identifying ST-LINK variant...O.K.: ST-LINK/V2
Performing firmware update...O.K.
Теперь В IAR:
IAR J-Link STLink V2 Debug.gif
IAR J-Link STLink V2.gif


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

pvvx

Активный участник сообщества
Значит имеем ещё одно отличие RTL от ESP - наличие отладчика/программатора за 130р без "пляски c бубном".
 

goodwin

Member
Эх, кабы еще заливать для отладки образ прямо в RAM, без длительной процедуры программирования флэш...
Цены бы не было :)
Сейчас оно шьет флэш, потом перезапущает чип, отрабатывают загрузчики по полной схеме и только потом подключается отладчик к уже работающей программе.
Убрать, короче, длительные промежуточные процессы...
Подсунуть скрипт отладчику, инициализирующий тактовый генератор и пр. можно.
Он там уже есть, только поработать напильником.
И кусок кода для загрузки прямо в RAM с передачей туда управления.
Надо перчить ROM загрузчик на предмет всех тонкостей...
Там при старте настраиваются тактирование, ноги JTAG, проверяются e-fuses, после этого настраиваеся SPI и проверяется наличия валидного загрузчика во флэш.

Кстати, залил прошиву V3.4.2.2.bin. через OTA (родную то снес).
А она не переходит в режим "INTERACTIVE MODE".
Всяческие пляски с бубном (подача разных уровней на разные ноги) не помогли.
Какого рожна ей надо?
 

pvvx

Активный участник сообщества
Кстати, залил прошиву V3.4.2.2.bin. через OTA (родную то снес).
А она не переходит в режим "INTERACTIVE MODE".
Всяческие пляски с бубном (подача разных уровней на разные ноги) не помогли.
Какого рожна ей надо?
На модуле RTL00 V1.0 для входа в режим 'Enter INTERACTIVE MODE' (AT) пин GC1 сажается на GND.
Иначе 'ENTER TEST MODE !!!'.
Только после ATE=2 начинают работать AT команды.
---
После стирания всей Flash и записи прошивки из IAR OTA не работает :(
Пишет: [update_ota_local_task] Invalid OTA Address 0xffffffff.
Исходя из void sys_recover_ota_signature(void) в sys_api.c нарушено что-то в по адресу 0x18 в Flash...
Что-то не найти процедуры начальной инициализации пустой Flash.:(
Ищу как это добить. Записать считанную изначальную - не дело.
 
Последнее редактирование:

goodwin

Member
Не "выходит каменный цветок" с "На модуле RTL00 V1.0 для входа в режим 'Enter INTERACTIVE MODE' (AT) пин GC1 сажается на GND" с выложенной тобой же прошивкой "V3.4.2.2.bin" ...
"Родная" и так переходила в INTERACTIVE MODE - без манипуляций.
И в моем модуле "родная" не требовала ввода ATSE=2.
Видимо китайцы туда шьют, что угодно...

Спасибо за STLinkReflash.exe.
Во всех имеющихся у меня STM32 Discovery
эта фишка прекрасно сработала ;)
Правда J-Link там сильно зажат - нет лицензий на всяческие сеггеровские "плюшки".
Имхо, "J-Link OB" из китайской платки за 100 руб поинтереснее.
Тем более, увы, не все так радужно.
Оба моих китайских клона ("массовых" - " за 130 руб") не хотят становиться J-Link-ами :)
Виснут после процедуры, мигая светодиодом (определяются STLinkReflash, как ST-Link v2.1).
Причем в одном ничего не трогал, а второй перешивал ходящей по интернетам прошивой ...
Результат одинаков - китайцы туда льют то же самое похоже...

 

pvvx

Активный участник сообщества
Оба моих китайских клона ("массовых" - " за 130 руб") не хотят становиться J-Link-ами :)
Виснут после процедуры, мигая светодиодом (определяются STLinkReflash, как ST-Link v2.1).
Причем в одном ничего не трогал, а второй перешивал ходящей по интернетам прошивой ...
Результат одинаков - китайцы туда льют то же самое похоже...
Это без патча (замены байтика в EXE 000026AA: 74 EB) ?
 

goodwin

Member
Без патча посылало в известном напрвлении :) C патчем конечно... Оно вроде как даже заливает, но "китаец" виснет по окончании процесса, мигая светодиодом. После передергивания питания остается прошива ST-Linк.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Без патча посылало в известном напрвлении :) C патчем конечно... Оно вроде как даже заливает, но "китаец" виснет по окончании процесса, мигая светодиодом. После передергивания питания остается прошива ST-Linк.
:) Китайская зашита от перезаписи?
---
Решилось с OTA после erase Flash - надо ставить [inline][HASHTAG]#define[/HASHTAG] WRITE_OTA_ADDR 1[/inline] в update.c. После прошивки этой 'Амёбы' из IAR заработает OTA.

После Erase Flash ставиться MAC Реалтековский, но последние цифири =0
От китайцев модуль имел неизвестного производителя :(

Пора писать FAG и прочие про RTL00 V1.0 - уже много накопилось...
Например - если убить прошивку от китайцев *Company website&Support&Forum link: 瑞昱RTL8710 wifi模块 无线物联网解决方案--博安通 командой ATSC=x, то модуль не грузится - пишет всякие ошибки типа:
Initializing WIFI ...RTL8195A[HAL]: Hard Fault Error!!!!
но работает встроенный debag описанный тут http://esp8266.ru/forum/threads/sravnenie-rtl8710-i-esp8266.1467/page-2#post-21303
В инете уже торчат заявки "Чё делать?" при Initializing WIFI ...RTL8195A[HAL]: Hard Fault Error!!!! :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
"Родная" и так переходила в INTERACTIVE MODE - без манипуляций.
В Амёбе INTERACTIVE MODE - дублирует AT команды. Итог, при включенных и тех и других + Web + SSL + ... :) :
Код:
Enter INTERACTIVE MODE

# help

WLAN AT COMMAND SET:
==============================
1. Wlan Scan for Network Access Point
   # ATWS
2. Connect to an AES AP
   # ATW0=SSID
   # ATW1=PASSPHRASE
   # ATWC
3. Create an AES AP
   # ATW3=SSID
   # ATW4=PASSPHRASE
   # ATW5=CHANNEL
   # ATWA
4. Ping
   # ATWI=xxx.xxx.xxx.xxx
COMMAND LIST:
==============================
    wifi_connect
    wifi_connect_bssid
    wifi_disconnect
    wifi_info
    wifi_on
    wifi_off
    wifi_ap
    wifi_scan
    iwpriv
    wifi_promisc
    wifi_update
    wifi_start_webserver
    wifi_simple_config
    wifi_wps
    wifi_sta_ap
    ssl_client
    wifi_debug
    ping
    cpu
    dw
    ew
    exit
    help
[MEM] After do cmd, available heap 44256
# ATWL=github.com
[ATWL]: _AT_WLAN_SSL_CLIENT_

[MEM] After do cmd, available heap 39544


#
  . Connecting to tcp/github.com/443... ok

  . Setting up the SSL/TLS structure... ok

  . Performing the SSL/TLS handshake... ok

  . Use ciphersuite TLS-RSA-WITH-AES-128-CBC-SHA256

  > Write to server: 18 bytes written

GET / HTTP/1.0



  < Read from server: 103 bytes read

HTTP/1.1 301 Moved Permanently
Content-length: 0
Location: https://github.com/
Connection: close



Min available heap size = 10864 bytes during ssl_client
# ATS?
[ATS?]: _AT_CMD_LIST_
ATWL
ATWM
AT--
ATWO
ATWP
ATW0
ATWQ
ATW1
ATWR
ATW2
ATXP
ATWS
ATW3
ATS?
ATW4
ATS@
ATW5
ATS!
ATW6
ATWw
ATWW
ATS#
ATSC
ATSD
ATSE
ATWZ
ATSF
ATxx
ATSG
ATW?
ATSL
ATWA
ATWB
ATWC
ATWD
ATSP
ATWE
ATSR
ATSS
ATWI
Так-же в RTL8710AF нет SDRAM - 'Move the SSL related files in project (for Ameba 8710/8711AF users)' -> http://www.amebaiot.com/en/standard-sdk-ssl-https/
Конфигурация системы в Амёбе ужасная. Два Heap:
Код:
# ATS# (только в моей прошивке)
[ATS#]: _AT_HEAPS_INFO_
[ATS#]: tcm_heap_freeSpace = 10392
---Free List--
prev 10058cb8, chunk 1fff5334, size 10392
--------------
[ATS#]: xPortGetFreeHeapSize = 44256
[ATS#]: xPortGetMinimumEverFreeHeapSize = 10864
[ATS#]: Free heaps = 54648

[MEM] After do cmd, available heap 44256
Необходимо ещё изменить platform_autoconf.h - вырубить отсутствующую аппаратуру в RTL8710AF.
 
Последнее редактирование:

goodwin

Member
Хе-хе...
Для "народного" ST-Link "за 130 руб" надо еще пару "волшебных байтиков".
00002568 90 90
Оно в этом случае элегантно перешивается и туда, и обратно...
А можно даже так ;)
 

Вложения

Сверху Снизу