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

EMW3080

pvvx

Активный участник сообщества
Пришли с али модули EMW3080(BP) (MXCHIP). Шли в Питер ровно 3 недели.
EMW3080sm.jpg
На сегодня средняя цена на них колеблется в пределах от 200 до 300 руб в мелкой партии или поштучно на разных торговых площадках.

Хорошее описание по ним предоставлено A_D::Схемотехника и обзор модуля EMW3080
Но не сказано, что прошивка модуля поддерживает дополнительные функции (Build-in Commands), вызываемые в мониторе UART:
Код:
# help
====Build-in Commands====
help:
version:
echo:
exit: CLI exit
scan: scan ap
wifistate: Show wifi state
wifidebug: wifidebug on/off
ifconfig: Show IP address
arp: arp show/clean
ping: ping <ip>
dns: show/clean/<domain>
sockshow: Show all sockets
tasklist: list all thread name status
memshow: print memory information
memdump: <addr> <length>
memset: <addr> <value 1> [<value 2> ... <value n>]
memp: print memp list
wifidriver: show wifi driver status
reboot: reboot MiCO system
tftp: tftp
time: system time
ota: system ota
flash: Flash memory map
micodebug: micodebug on/off
====User Commands====
---> Пример:
# tftp
Usage: tftp <ip> put <filename> <partition type> <flashaddr> <flashlen>
       tftp <ip> get <filenmae> <partition type> <flashaddr> <flashlen>
# version
Product module: EMW3080B
Hardware version: 3080B
Manufacture: MXCHIP Inc.
Kernel version: 3080B002.010
MiCO version: 3.5.2
Firmware version: ATV1.9
Application info: AT Command on MICO OS
Bootloader version: bootloader
WIFI version: 3080B-3.6a
# flash
   0 |  Bootloader |  Dev:0  | 0x0000b000 | 0x00008000 |
   1 | Application |  Dev:0  | 0x00013000 | 0x00075000 |
   2 |         ATE |  Dev:0  | 0x000d0000 | 0x00040000 |
   3 | OTA Storage |  Dev:0  | 0x00110000 | 0x000b5000 |
   4 | User Application |  Dev:0  | 0x00088000 | 0x00040000 |
   5 |  PARAMETER1 |  Dev:0  | 0x000c8000 | 0x00004000 |
   6 |  PARAMETER2 |  Dev:0  | 0x000cc000 | 0x00004000 |
   7 | USER Storage |  Dev:0  | 0x001c5000 | 0x0003a000 |
# tasklist
Name                             Status Prio    Stack   TCB
---------------------------------------------------------------
cli                              R      5       156     8       0x10005ef0
IDLE                             R      0       111     2       0x10026da8
UART Recv                        B      3       265     19      0x1001c280
TCP_IP                           B      9       762     10      0x10007a60
Bonjour                          B      3       85      31      0x100277e8
SYS MONITOR                      B      10      167     7       0x10004a40
HealthMon                        B      3       231     17      0x10006f20
Tmr Svc                          B      5       450     3       0x10002f30
httpd                            B      3       1955    29      0x10023708
Local Server1                    B      3       353     33      0x100280f8
Local Server2                    B      3       353     34      0x10028900
worker thread                    B      7       477     6       0x10005010
mxchipTimer                      B      5       475     16      0x10006558
WifiMgr                          B      3       471     18      0x1001ba78
dhcp-server                      B      5       137     28      0x100231f0
wifi_recv                        B      5       1276    24      0x1001fef8
# sockshow
FD      Type State        PCB
-------------------------
0   UDP  NONE     0x10022c50
1   UDP  NONE     0x10022db8
2   TCP  Listen   0x10026470
3   UDP  NONE     0x100263e0
4   TCP  Listen   0x100259d0
5   TCP  Listen   0x10029848

TCPPCB     LocalIP          LPORT RemoteIP         RPORT State
---------------------------------------------------------------------
0x10029848 0.0.0.0          8088  0.0.0.0          0     Listen(0 /5 )
0x100259d0 0.0.0.0          8080  0.0.0.0          0     Listen(0 /5 )
0x10026470 0.0.0.0          80    0.0.0.0          0     Listen(0 /5 )

UDPPCB     Local IP         Remote IP        LPORT RPORT
-------------------------------------------------------------
0x100263e0 0.0.0.0          0.0.0.0          5353  0
0x10022db8 127.0.0.1        0.0.0.0          12679 0
0x10022c50 0.0.0.0          0.0.0.0          67    0
0x10005918 0.0.0.0          0.0.0.0          56555 0
#
...
На форуме уже есть про них темы, но пока нет никаких программных и аппаратных тестов.

Использование UART на EMW3080B:

  • Bootloader: Pin9/Pin10 921600bps
  • Прошивка AT: Pin9/Pin10 115200bps
  • LogCLI(консоль в стартовой прошивке) Pin21/Pin22: 115200bps
  • TCP2UART: Pin9/Pin10 115200bps
*(pin-ы даны номерам из DS0069EN_EMW3080(AB)_V1.4.pd)
EWM3080B-MICO.gif
pin19 - SYS_LED (AT) + MICO bootloader
pin23 - Easylink (AT)
pin21/24 - UART_DOWNLOAD (ROM function)

Далее попробую произвести разнообразные тесты и пишите, что хотелось бы там измерить – попробую учесть...
 
Последнее редактирование:

pvvx

Активный участник сообщества
По началу предстоит выяснить, используется ли там перемаркированный чип RTL8710BN или нет. И почему заявлена частота 133 МГц, хотя у RTL8710BN по спецификации 125МГц.

Обратную проверку, путем заливки разных прошивок от EWM3080 в RTL8710BN уже производил, выяснив, что они прописывают eFuse на отключение возможности прошивки модуля по UART и требует включение шифрации Flash, а так-же имеет свой загрузчик из-за того, что flash включена по DIO, а не по QIO и активируются прочие защиты. Не рекомендуется повторять, т.к. исправить потом eFuse будет проблемно - останутся записи доп.блоков т.к. оно OTP, но можно...
------------ через время....
При проверке пришедших модулей выяснилось, что они не имеют описанные выше проблемы - у них уже другие версии прошивок. Заливка прошивки из пришедших EWM3080 в чистый RTL8710BN вызывает только это:
Код:
ROM:[V0.1]
FLASHRATE:4
BOOT TYPE:0 XTAL:40000000
IMG1 DATA[1152:10002000]
IMG1 ENTRY[800043b:100021e5]
RDP not enable in efuse
Не хватает всяких записей в eFuse.

Считанные данные из ROM совпадают:
E:\RTL87xx\EMW3080\Jlink>fc /b EMW3080-bios-rom.bin rtl8710bn-bios-rom.bin
Сравнение файлов EMW3080-bios-rom.bin и RTL8710BN-BIOS-ROM.BIN
FC: различия не найдены

Код:
VTref = 3.300V
Found SWD-DP with ID 0x2BA01477
AP-IDR: 0x24770011, Type: AHB-AP
AHB-AP ROM: 0xE00FF000 (Base addr. of first ROM table)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl 0 @ E00FF000
ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 000BB925 ETM
Cortex-M4 identified.
PC = 0801A460, CycleCnt = 43CD372B
R0 = 1000DF98, R1 = 0000A1E4, R2 = 1000FD8C, R3 = 1000FD8C
R4 = 1000DF98, R5 = 10026B28, R6 = A5A5A5A5, R7 = A5A5A5A5
R8 = A5A5A5A5, R9 = A5A5A5A5, R10= A5A5A5A5, R11= A5A5A5A5
R12= A5A5A5A5
SP(R13)= 10026FC0, MSP= 1003EFD8, PSP= 10026FC0, R14(LR) = 0801A951
XPSR = 81000000: APSR = Nzcvq, EPSR = 01000000, IPSR = 000 (NoException)
CFBP = 02000000, CONTROL = 02, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000
FPSCR= 00000000
J-Link>
Регистры eFuse у версии EMW3080(BP) не переключают LogUART. Возможно это производится в EMW3080(A/C) или другой версии прошивки от MXCHIP для них.
У модулей A/B/C разные версии boot.bin:
MicoSDK\mico-os\resources\moc_kernel\3080B\boot.bin
MicoSDK\mico-os\resources\moc_kernel\3080C\boot.bin

Rtltool.py и UARTIMG.exe, выложенные мной RTL871xBx Tools (Ameba Z) - работают с пришедшими модулями EMW3080(BP).
Для старта модуля в режиме UART_DOWNLOAD требуется замкнуть RESET на GND и затем притянуть TX (GPIOA30) на GND, отпустить RESET и затем TX.
Запустить работу UART_DOWNLOAD из базовой прошивки модуля можно путем подачи двух команд в logUART:
# memset 0x40000138 0x08
Set 0x40000138 1 bytes
# reboot

(описание бит регистра REG_SYS_NORESET_FF находится в rtl8710b_backup_reg.h)
В итоге глобальных различий у данной версии EMW3080(BP) со стандартной RTL8710BN пока не найдены. Номерки прошивки в модулях, что они пишут при загрузке:
Код:
Lib version 3080B002.010. APP built time 10:21:05
Started MiCO RTOS interface for mocOS v1.0.0
firmware ver ATV1.9@EMW3080B
Free memory 128144 bytes
Kernel version: 3080B002.010
MiCO version: 3.5.2
Wi-Fi driver version 3080B-3.6a
Приложены файлы стартовой Flash (2МБ), ROM(512KB), начальных значений регистров SoC и батники чтения их через Jlink.
 

Вложения

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

pvvx

Активный участник сообщества
Первым делом протестируем встроенное ПО от MXCHIP.
Кратко, т.к. основа описана у A_D. Схемотехника и обзор модуля EMW3080
Модуль включается, выводит лог в UART о загрузке, в сети WiFi появляется AP c "MXCHIP_xxxxx", с IP 10.10.10.1, при заходе браузером спрашивает имя “admin” и пароль “admin”, браузер при первом вводе их пишет о шибке, “F5” помогает, web открывается и можно выставить разные параметры...
Натравим на модуль (web) apache-jmeter, дабы посмотреть скорость его отклика…
Итоги:
apache-jmeter1.gifapache-jmeter2.gifapache-jmeter3.gif
При этом работа идет до 4-х пользователей (Threads):
apache-jmeter.gif
Больше не тянет и сыпет ошибки (не программные, а не отвечает на запросы).
При этом потребление на индикаторе БП скачет за 250 мА и более - куча передач по WiFi...
Итого: Данный web имеет достаточно низкие показатели (по скорости открытия и закрытия файлов) и может обслуживать не более пары пользователей одновременно.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ладно с web, проверим работу TCP2UART. Всё в меню Web оставляем как было при первом старте. UART на 115200, TCP порт 8080.
Соединяем UART0 RX-TX выводы модуля и запускаем авто-передачу в программе USR-TCP232-Test:
TCP2UART.gif
В принципе работает, что не сказать о оф. версиях подобного (хоть "AT") от Espressif на ESP :)
У RAK это тоже пашет нормально на RTL-модулях...
В общем тут ничего удивительного - RTOS + LwIP socket и старый ip UART 16550 отлажено годами и тысячами пользователей...
Но, MXCHIP не сделал пересылку блоков, если межсивольная пауза у UART 4 символа:
ModbusTools.gif
Запрос Modbus TCP, а ответ в UART модуля (115200). Пауза ответа больше 500 мс.
Но в меню его web можно выставить минимум 100 мс:
ModbusTools2.gif ModbusTools3.gif ModbusTools1.gif
И немного легчает - 140 мс (в неё входит передача Modbus RTU запроса-ответа на 115200 10 переменных и тормоза самого ПО "Modbus Tools" - они тоже не маленькие и не вписываются в спецификацию, но для тупого теста запрос-ответ потянет).
10 000 транзакций проходит без ошибок. Можно считать - "работает".
С передачей больших блоков (более MTU) за раз и соединенных RX-TX на модуле есть беда - не все символы передает обратно - 2 шт постоянно теряет... Но тут, для полной и точной диагностики, надо писать спец. тест (может использованному мной ПО не нравиться 0x0d, 0x0a и оно их отбрасывает и/или типа), а лень.

Это уже избавляет от создания проекта c моей web-свалкой с TCP2UART на RTL серии “B”. Можно сделать лучше, но нефиг – народ довольствуется и глюками на Arduino :), и вдруг кто-то захочет продать более лучший вариант TCP2UART и не стоит у них отнимать хлеб с водой…
 
Последнее редактирование:

pvvx

Активный участник сообщества
В общем TCP2UART порт при тысячах открытий-закрытий не падает.
TCP2UART-open-close.gif
Вывод лога лучше отключить:
# micodebug off
Disable MICO debug

Будет быстрее работать...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Прошил "AT" от SDK4.0 - всё работает.
Взял чистый SDK4.0 собрал в IAR и в папке .....sdk40b\project\realtek_amebaz_va0_example\EWARM-RELEASE\ выполнил:
C:\Python27\python.exe rtltool.py -p COM7 wf 0xB000 Debug/Exe/image2_all_ota1.bin

Взял свой пример от RTL8710BN, собрал и прочитал полный eFuse:
Код:
ROM:[V0.1]
FLASHRATE:4
BOOT TYPE:0 XTAL:40000000
IMG1 DATA[1152:10002000]
IMG1 ENTRY[800043b:100021e5]

Read eFuse (HALEFUSEOneByteReadROM(x)):
efuse OTP block at 0:
[0000]  0C 95 81 C2  16 3D 00 02
[0008]  40 28 28 29  29 29 29 2A
[0010]  2A 5C 2A 2A  2A 02 2F 30
[0018]  20 1E 23 05  00 00 00 FF
[0020]  6F 41 B0 F8  93 13 B3 01
[0028]  CF 40 FF 01  00 10 00 FF
[0030]  00 FF EF 4E  10 00 FF FF
[0038]  FF FF FF FF  FF FF FF FF
[0040]  FF FF FF FF  FF FF FF FF
[0048]  FF FF FF FF  FF FF FF FF
[0050]  FF FF FF FF  FF FF FF FF
[0058]  FF FF FF FF  FF FF FF FF
[0060]  FF FF FF FF  FF FF FF FF
[0068]  FF FF FF FF  FF FF FF FF
[0070]  FF FF FF FF  FF FF FF FF
[0078]  FF FF FF FF  FF FF FF FF
efuse OTP block at 128:
[0080]  30 80 02 BA  EC 06 56 99
[0088]  2F 8C 3A 14  15 A6 18 41
[0090]  FF FF FF FF  FF FF FF FF
[0098]  FF FF FF FF  FF FF FF FF
[00a0]  FF FF FF FF  FF FF FF FF
[00a8]  FF FF FF FF  FF FF FF FF
[00b0]  FF FF FF FF  FF FF FF FF
[00b8]  FF FF FF FF  FF FF FF FF
[00c0]  FF FF FF FF  FF FF FF FF
[00c8]  FF FF FF FF  FF FF FF FF
[00d0]  FF FF FF FF  FF FF FF FF
[00d8]  FF FF FF FF  FF FF FF FF
[00e0]  FF FF FF FF  FF FF FF FF
[00e8]  FF FF FF FF  FF FF F2 E9
[00f0]  FF FF FF FC  14 29 E4 B6
[00f8]  FF FF FF FF  FF FF FF FF
efuse OTP block at 256:
[0100]  FF FF FF FF  FF FF FF FF
[0108]  FF FF FF FF  FF FF FF FF
[0110]  FF FF FF FF  FF FF FF FF
[0118]  FF FF FF FF  FF FF FF FF
[0120]  FF FF FF FF  FF FF FF FF
[0128]  FF FF FF FF  FF FF FF FF
[0130]  FF FF FF FF  FF FF FF FF
[0138]  FF FF FF FF  FF FF FF FF
[0140]  FF FF FF FF  FF FF FF FF
[0148]  FF FF FF FF  FF FF FF FF
[0150]  FF FF FF FF  FF FF FF FF
[0158]  FF FF FF FF  FF FF FF FF
[0160]  FF FF FF FF  FF FF FF FF
[0168]  FF FF FF FF  FF FF FF FF
[0170]  FF FF FF FF  FF FF FF FF
[0178]  FF FF FF FF  FF FF FF FF
efuse OTP block at 384:
[0180]  FF FF FF FF  FF FF FF FF
[0188]  FF FF FF FF  FF FF FF FF
[0190]  FF FF FF FF  FF FF FF FF
[0198]  FF FF FF FF  FF FF FF FF
[01a0]  FF FF FF FF  FF FF FF FF
[01a8]  FF FF FF FF  FF FF FF FF
[01b0]  FF FF FF FF  FF FF FF FF
[01b8]  FF FF FF FF  FF FF FF FF
[01c0]  FF FF FF FF  FF FF FF FF
[01c8]  FF FF FF FF  FF FF FF FF
[01d0]  FF FF FF FF  FF FF FF FF
[01d8]  FF FF FF FF  FF FF FF FF
[01e0]  FF FF FF FF  FF FF FF FF
[01e8]  FF FF FF FF  FF FF FF FF
[01f0]  FF FF FF FF  FF FF FF FF
[01f8]  FF FF FF FF  FF FF FF FF
efuse OTP block at 512:
[0200]  FF FF FF FF  FF FF FF FF
[0208]  FF FF FF FF  FF FF FF FF
[0210]  FF FF FF FF  FF FF FF FF
[0218]  FF FF FF FF  FF FF FF FF
[0220]  FF FF FF FF  FF FF FF FF
[0228]  FF FF FF FF  FF FF FF FF
[0230]  FF FF FF FF  FF FF FF FF
[0238]  FF FF FF FF  FF FF FF FF
[0240]  FF FF FF FF  FF FF FF FF
[0248]  FF FF FF FF  FF FF FF FF
[0250]  FF FF FF FF  FF FF FF FF
[0258]  FF FF FF FF  FF FF FF FF
[0260]  FF FF FF FF  FF FF FF FF
[0268]  FF FF FF FF  FF FF FF FF
[0270]  FF FF FF FF  FF FF FF FF
[0278]  FF FF FF FF  FF FF FF FF
efuse OTP block at 640:
[0280]  FF FF FF FF  FF FF FF FF
[0288]  FF FF FF FF  FF FF FF FF
[0290]  FF FF FF FF  FF FF FF FF
[0298]  FF FF FF FF  FF FF FF FF
[02a0]  FF FF FF FF  FF FF FF FF
[02a8]  FF FF FF FF  FF FF FF FF
[02b0]  FF FF FF FF  FF FF FF FF
[02b8]  FF FF FF FF  FF FF FF FF
[02c0]  FF FF FF FF  FF FF FF FF
[02c8]  FF FF FF FF  FF FF FF FF
[02d0]  FF FF FF FF  FF FF FF FF
[02d8]  FF FF FF FF  FF FF FF FF
[02e0]  FF FF FF FF  FF FF FF FF
[02e8]  FF FF FF FF  FF FF FF FF
[02f0]  FF FF FF FF  FF FF FF FF
[02f8]  FF FF FF FF  FF FF FF FF
efuse OTP block at 768:
[0300]  FF FF FF FF  FF FF FF FF
[0308]  FF FF FF FF  FF FF FF FF
[0310]  FF FF FF FF  FF FF FF FF
[0318]  FF FF FF FF  FF FF FF FF
[0320]  FF FF FF FF  FF FF FF FF
[0328]  FF FF FF FF  FF FF FF FF
[0330]  FF FF FF FF  FF FF FF FF
[0338]  FF FF FF FF  FF FF FF FF
[0340]  FF FF FF FF  FF FF FF FF
[0348]  FF FF FF FF  FF FF FF FF
[0350]  FF FF FF FF  FF FF FF FF
[0358]  FF FF FF FF  FF FF FF FF
[0360]  FF FF FF FF  FF FF FF FF
[0368]  FF FF FF FF  FF FF FF FF
[0370]  FF FF FF FF  FF FF FF FF
[0378]  FF FF FF FF  FF FF FF FF
efuse OTP block at 896:
[0380]  FF FF FF FF  FF FF FF FF
[0388]  FF FF FF FF  FF FF FF FF
[0390]  FF FF FF FF  FF FF FF FF
[0398]  FF FF FF FF  FF FF FF FF
[03a0]  FF FF FF FF  FF FF FF FF
[03a8]  FF FF FF FF  FF FF FF FF
[03b0]  FF FF FF FF  FF FF FF FF
[03b8]  FF FF FF FF  FF FF FF FF
[03c0]  FF FF FF FF  FF FF FF FF
[03c8]  FF FF FF FF  FF FF FF FF
[03d0]  FF FF FF FF  FF FF FF FF
[03d8]  FF FF FF FF  FF FF FF FF
[03e0]  FF FF FF FF  FF FF FF FF
[03e8]  FF FF FF FF  FF FF FF FF
[03f0]  FF FF FF FF  FF FF FF FF
[03f8]  FF FF FF FF  FF FF FF FF
Отличия от чистого RTL8710BN есть - записей больше, раза в 2.
 

pvvx

Активный участник сообщества
MICO bootloader for EMW3080B
Запускается путем замыкания GPIOA11 (pin 19 модуля по DS0069EN_EMW3080(AB)_V1.4.pd) на GND и дергания RESET.
Используется Скорость UART 921600 Baud.
Код:
MICO bootloader for EMW3080B, v3.1, HARDWARE_REVISION: 3080B
+ command -------------------------+ function ------------+
| 0:BOOTUPDATE    <-r>             | Update bootloader    |
| 1:FWUPDATE  <-r>                 | Update MiCO          |
| 2:USERUPDATE    <-r>             | Update user APP      |
| 3:PARUPDATE     <-id n><-r><-e>  | Update MICO partition|
| 4:FLASHUPDATE   <-dev device>    |                      |
|  <-e><-r><-start addr><-end addr>| Update flash content |
| 5:MEMORYMAP                      | List flash memory map|
| 6:BOOT                           | Excute application   |
| 7:REBOOT                         | Reboot               |
+----------------------------------+----------------------+
|    (C) COPYRIGHT 2015 MXCHIP Corporation  By William Xu |
 Notes:
 -e Erase only  -r Read from flash -dev flash device number
  -start flash start address -end flash start address
 Example: Input "4 -dev 0 -start 0x400 -end 0x800": Update
          flash device 0 from 0x400 to 0x800

MXCHIP>
Можно установить прошивку AT c MiCO.iO - 开发者中心,提供全面的物联网开发文档资料
MQTT в "AT" работает.
 
Последнее редактирование:

pvvx

Активный участник сообщества
eFuse во встроенном в чип мониторе ROM (в сжатом - rraw (сама OTP) и распакованном виде - rmap):
Код:
<RTL8195A>?
----------------- COMMAND MODE HELP ------------------
        HELP (?)   : Print this help messag

        READ <Address, Hex> <Len, Dec>:
                                 Dump memory word or Read Hw word register
        WRITE <Address, Hex> <Value, Hex>:
                                 Write memory word or Write Hw word register
                                 Can write one word at the same time
                                 Ex: EW Address Value0 Value1
        SRAM
                 <Loop, Dec>:
                                 Loop: The number of Write and Read compare

        FLASH
                 init BaudRate(1/2...)
                 erase chip
                 erase sector addr
                 erase block addr
                 read addr len
                 write addr data

        EFUSE
                 wmap addr len data
                 rmap
                 rraw
                 wraw addr len data
                 autoload

        REBOOT
                 <item, string> :
                                 item: uartburn or N/A


----------------- COMMAND MODE END  ------------------
<RTL8195A>EFUSE rmap
efuse rmap
EFUSE[000]: 95 81 c2 16 ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[010]: ff ff ff ff ff ff ff ff ff ff 00 02 ff ff ff ff
EFUSE[020]: 28 28 29 29 29 29 2a 2a 2a 2a 2a 02 ff ff ff ff
EFUSE[030]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[040]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[050]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[060]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[070]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[080]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[090]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[0a0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[0b0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[0c0]: ff ff ff ff ff ff ff ff 20 1e 23 05 00 00 00 ff
EFUSE[0d0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[0e0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[0f0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[100]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[110]: ff ff ff ff ff ff ff ff ff ff b0 f8 93 13 b3 01
EFUSE[120]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[130]: ff 01 00 10 00 ff 00 ff 10 00 ff ff ff ff ff ff
EFUSE[140]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[150]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[160]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[170]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[180]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[190]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1a0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1b0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1c0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1d0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1e0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
EFUSE[1f0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
<RTL8195A>EFUSE rraw
efuse rraw
RawMap[000]: 0c 95 81 c2 16 3d 00 02 40 28 28 29 29 29 29 2a
RawMap[010]: 2a 5c 2a 2a 2a 02 2f 30 20 1e 23 05 00 00 00 ff
RawMap[020]: 6f 41 b0 f8 93 13 b3 01 cf 40 ff 01 00 10 00 ff
RawMap[030]: 00 ff ef 4e 10 00 ff ff ff ff ff ff ff ff ff ff
RawMap[040]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[050]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[060]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[070]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[080]: 30 80 02 ba ec 06 56 99 2f 8c 3a 14 15 a6 18 41
RawMap[090]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[0a0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[0b0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[0c0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[0d0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
RawMap[0e0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f2 e9
RawMap[0f0]: ff ff ff fc 14 29 e4 b6 ff ff ff ff ff ff ff ff
<RTL8195A>EFUSE autoload
efuse autoload value print
map[000]: 95 81 c2 16 d5 59 49 00 00 40 81 4a 34 e4 00 00
map[010]: 01 00 00 00 00 00 00 00 20 00 00 02 00 00 00 00
map[020]: 6f 41 b0 f8 93 13 b3 01 cf 40 ff 01 00 10 00 ff
map[030]: 00 ff ef 4e 10 00 ff ff ff ff ff ff ff ff ff ff
map[040]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[050]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[060]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[070]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[080]: 30 80 02 ba ec 06 56 99 2f 8c 3a 14 15 a6 18 41
map[090]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[0a0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[0b0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[0c0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[0d0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
map[0e0]: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f2 e9
map[0f0]: ff ff ff fc 14 29 e4 b6 ff ff ff ff ff ff ff ff
map[00]: 16c28195
map[01]: 004959d5
map[02]: 4a814000
map[03]: 0000e434
map[04]: 00000001
map[05]: 00000000
map[06]: 02000020
map[07]: 00000000
<RTL8195A>
efuse autoload - в конце, это то, что грузиться в регистры SoC:
REG_SYS_EFUSE_SYSCFG0 = eFuse: BYTE0x00..0x03 = 0x16c28195
REG_SYS_EFUSE_SYSCFG1 = eFuse: BYTE0x04..0x07 = 0x004959d5
REG_SYS_EFUSE_SYSCFG2 = eFuse: BYTE0x08..0x0B = 0x4a814000
REG_SYS_EFUSE_SYSCFG3 = eFuse: BYTE0x0C..0x0F = 0x0000e434
REG_SYS_EFUSE_SYSCFG4 = eFuse: BYTE0x10..0x13 = 0x00000001
REG_SYS_EFUSE_SYSCFG5 = eFuse: BYTE0x14..0x17 = 0x00000000
REG_SYS_EFUSE_SYSCFG6 = eFuse: BYTE0x18..0x1B = 0x02000020
REG_SYS_EFUSE_SYSCFG7 = 0x000000000

По адресу 0x11A rmap находится MAC.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Обновление:
MICO bootloader for EMW3080B, v3.4, HARDWARE_REVISION: 3080B
Kernel version: 3080B002.016
------
Тут есть Files · master · MXCHIP MiCO / mico-os · CODE
export MiCO_SDK_VERSION_MAJOR := 4
export MiCO_SDK_VERSION_MINOR := 0
export MiCO_SDK_VERSION_REVISION := 0
 

Вложения

pvvx

Активный участник сообщества
Проверим, на всякий, соответствие заявленных спецификаций потребления в режиме deep-sleep на модули в DS0069EN_EMW3080(AB)_V1.4.pdf:
UI-deep-sleep_pdf.gif
Для этого отключим от модуля всё, кроме двух проводков питания и измерим.
Тестер колбасит вокруг 6..7 мкA... Понять что-то сложно, т.к. любое изменение температуры и влажности от рук на контакты модуля уже влияют...
Запустим анализ на 32-х битном измерителе:
UI-deep-sleep.gif
В середине замера я не сверх сильно дунул на модуль с 30 см... :)
Нда, мою распайку модуля на переходник надо промывать и лакировать всё вместе с модулем...:oops:
Надышать можно и за 100 мкА... :) Аналог нагрузки на 3.3В, если не дышать, как резистор в 500 кОм.
Вывод примерно такой - у китайцев, замерявших потребление была большая температура и влажность, чем сейчас у меня? :)
Тестировал исполнение [inline]deepsleep_ex(DSLEEP_WAKEUP_BY_TIMER, 60000);[/inline].
 
Последнее редактирование:
  • Like
Реакции: A_D

pvvx

Активный участник сообщества
Частично победил. Промыл плату, нашел болтающийся и принимающий наводки вход - pin 14. Посадил на gnd.
Теперь меньше влияет на внешние факторы:
UI-deep-sleep-end.gif
UI-deep-sleep_a2pdf.gif
UI-deep-sleep_apdf.gif
Возможно что установленная flash на модуле в режиме power-down жрет меньше или данные у Ameba для всего диапазона температур...
А так-же +- 1 мкА зависит от настройки PullUp и направлений GPIO в режиме deep-sleep.
Ещё у меня включен таймер. Если всё пересмотреть, то возможно получить и меньше, при +25С.
Это уже третий, кто публикует данные по RTL (Ameba, RAK, MXCHIP), немного загубляя их в худшую сторону, чтобы попасть в разброс качества чипов. Espressif на ESP всё делает наоборот (или дает рекламные данные потребления только по выбранному ими пину чипа, без учета других компонентов и не указывая об этом) - ни один их опубликованный параметр не подтвердился - в реле всегда хуже, от этого у меня к ним доверия давно нет.
 
Последнее редактирование:
Сверху Снизу