• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 всё делает наоборот (или дает рекламные данные потребления только по выбранному ими пину чипа, без учета других компонентов и не указывая об этом) - ни один их опубликованный параметр не подтвердился - в реле всегда хуже, от этого у меня к ним доверия давно нет.
 
Последнее редактирование:
Сверху Снизу