Сегодня поглядим, что внутри модуля EMW3081, который, по идее, на RTL8711AM (вроде как должен быть на нём, судя по характеристикам со страницы производителя). EMW3081 получается неким аналогом модуля RAK473 в другом исполнении, поэтому и будем сравнивать с ним.
Под катом схемотехника и краткий обзор модуля. Если вкратце, то со стоковой прошивкой имеет аналогичный модулю EMW3080 функционал и готов к применению сходу в мелких проектах в качестве моста UART<->UDP\TCP.
Модуль собственной персоной сверху и снизу (кликабельно):
На плате снизу в районе антенны виден дефект маски, но, думаю, это не критично, чисто дефект внешнего вида. В остальном качество изготовления и текстолита такое же хорошее, как и в EMW3080.
Модуль достаточно старенький по дате разработки — 2015.10.10 (на модулях EMW3080 была дата 2017.06.01).
Открываем крышку (кликабельно):
А внутри-то SoC стоит MX1281, только вот с лейблом Realtek. :D Документации на него не нашел вообще никакой, видимо, это первая ласточка у MXCHIP в плане перемаркировывания Realtek SoC-ов. Также кроме ожидаемой флешки еще стоит нечто в sot-23, будем копать, что это такое…
Перейдем к схемотехнике модуля. Вот получившаяся схема (кликабельно):
Из особенностей схемотехники:
- Нечто в SOT-23 — это MAX809SEUR, супервизор питания на напряжение +2,93 В просто держит в сбросе SoC, если напряжение питания ниже +2,93 В. Стоит отметить, что выход у него push-pull, и для притягивания nRST (CHIP_EN) пина к земле внешней кнопкой\транзистором может потребоваться ток до 20 мА (судя по даташиту).
- Есть место под фильтрующий конденсатор для АЦП, но сам конденсатор не установлен, как и не выведен никуда вход АЦП.
- Не выведены никуда пины NFC.
- Есть светодиод на PB2, катодом к выводу, сам же вывод PB2 не выведен на внешние выводы модуля.
- Флешка — MX25L1606E.
По питанию также сильных различий в сравнении с тем же модулем RAK473 нет:
Разве что на входе модуля стоит дополнительная ферритовая бусина и стоит по паре конденсаторов у входа\выхода LDO, основного питания +3.3 В (выв. 46) и + 1.2 В (выв. 13). В разводке печатной платы так же есть нюанс — дорожки питания +3.3 \ + 1.2 В к потребителям (ножкам SoC) идут от источников звездой, а не общей заливкой.
Полная схема в PDF — EMW3081-Schematic, далее уже хоть свой модуль рисуй и пускай в производство:
Обозначение IO в даташите полностью соответствует реальному, что удивительно после секретов в EMW3080 то (разве что все три NC подключены реально к GND):
Схему посмотрели, теперь подключим питание и посмотрим на работу. При запуске в LOG UART (DBG на УГО выше) модуль выводит следующее:
========================================================= 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: 0x36cc, Image Addr: 0x10000bc8 Image1 Validate OK, Going jump to Image1 ===== Enter Image 1 ==== SDR Controller Init load NEW fw 0 Flash Image2:Addr 0xb000, Len 29080, Load to SRAM 0x10006000 No Image3 Img2 Sign: RTKWin, InfaStart @ 0x100086a9 ===== Enter FW Loader Image ==== SPI calibration Find the avaiable window Baud:2; auto_length:1; Delay start:0; Delay end:63 [SPIF Err]SpicNVMCalStore: The flash memory(@0x9080 = 0x1310002) is not able to be write, Erase it first!! SPI calibration Find the avaiable window Baud:1; auto_length:12; Delay start:0; Delay end:63 [SPIF Err]SpicNVMCalStore: The flash memory(@0x90b0 = 0x1311201) is not able to be write, Erase it first!! Flash FW Image2Len 0x40f74 0x1000e000 Flash FW Loader:Addr 0x13000, Len 266100, Load to SRAM 0x1000e000 Image3 length: 0x23b78, Image3 Addr: 0x30000000 InfraStart: 0x1000e000, Img2 Sign RTKWin RTL8195A[HAL]: ISR 0 didb't bee register!!! ===== Enter Image 2 ==== SPI calibration Find the avaiable window Baud:2; auto_length:1; Delay start:0; Delay end:63 [SPIF Err]SpicNVMCalStore: The flash memory(@0x9080 = 0x1310002) is not able to be write, Erase it first!! [264][MICO: MICOEntrance.c:0446] MiCO starting... # platform_gpio_output_low 18 40 3 [653][MICO: MICOEntrance.c:0453] Free memory 77112 bytes [668][MICO: MICOEntrance.c:0457] mxchipWNet SPP Demo based on MICO OS mxchipWNet library version: 30810002.040 [697][MICO: MICOEntrance.c:0458] Wi-Fi driver version 3081-v3.4C, mac C8:93:46:D6:D6:16 Period = 0x00000bb8 WdgScalar = 0x00008235 WdgCunLimit = 0x00000001 RTL8195A[Driver]: port switch - port0(wlan2), port1(wlan1) [1098][MICO: MICOEntrance.c:0150] uAP established [1112][MICO: MICOEntrance.c:0353] Establish soft ap: MXCHIP_D6D616..... [1181][MICO: MICOEntrance.c:0570] Free memory 61424 bytes
Ничего особенного, несколько ошибок SPIC и сообщения от фирменной прослойки MICO, разве что одно сообщение с ошибкой (и ошибкой в написании, к-к-комбо) выбивается RTL8195A[HAL]: ISR 0 didb’t bee register!!! — видимо в инициализации что-то напутали или забыли.. Еще конечно смущает объём свободной памяти — в конце выведено, что 61424 байта свободно, а в чипе доступно-то значительно больше (2 Мб SDRAM + 512 Кб SRAM), судя по всему, SDRAM не задействована в этой прошивке…
Подключаемся к открытой WiFi точке MXCHIP_D6D616, заходим по IP 10.10.10.1 (имя\пароль = admin\admin) и нас встречает, как и в модуле EMW3080, могучий китайский (кликабельно):
WEB часть аналогична модулю EMW3080, в тех же местах ангельский хромает. Не вижу смысла повторяться в описании, просто приведу горсть скриншотов (кликабельно):
В итоге, если работать на стандартной прошивке, идущей с модулем, то нет никакого смысла переплачивать за EMW3081, если можно взять с теми же функциями EMW3080. EMW3080 дешевле и потребляет меньше. Если бы в стандартной прошивке EMW3081 были реализованы хотя бы простые реализации modbus\mqtt для быстрой интеграции в свои устройства\поделки, то покупка была бы оправдана, а так, если и брать этот модуль, то только для заливки собственной прошивки, и то функционал SoC искусственно урезан по сравнению с теми же модулями RAK473 — на модуле EMW3081 не все IO выведены, АЦП недоступен, NFC недоступен, только качество изготовления заметно лучше, но это не решающий фактор. Поэтому итог — назначение этого модуля не очень понятно, можно взять RAK473 и получить большую вариативность применения в своих проектах, если и там и там требуется писать свою прошивку.
Да, есть еще модуль EMW3081A, и судя по характеристикам и различиям по сравнению с EMW3081 это то же самое, только поставили SoC RTL8710AF \ RTL8711AF и залили туже самую прошивку, тупо удешевление.
На этом всё! Есть ошибки или замечания? Пишите в комментариях. ;)