W801 - бюджетный контроллер с Wi-Fi

Как говаривал Карлсон, «продолжаем разговор».

И разговор этот, если кто не в курсе, о китайских микроконтроллерах серии W80x. После того, как я помучил младшую модель, W806 и залил в нее интерпретатор LUA, мой взгляд упал на более вкусную W801, которая, кстати по цене практически идентична первой, при том что имеет вдвое больше флэша, а главное — встроенный BT/BLE и Wi-Fi.
w801
Взглянем на нашего «пациента». Форм-фактор — тот же, что и у младшего собрата, но плата на полсантиметра длиннее из-за вытравленной антенки. Также в районе USB-разъема есть шесть дополнительных пинов: земля, +3.3, и даже +5 напрямую с USB, чего не было у W806. Светодиодов на плате аж целых семь, что можно использовать при отладке, включая определенный диод при входе в нужную процедуру или модуль и выключая — при выходе. А вот к ШИМ-линиям подключены только два диода из семи, поэтому запрограммировать красивый эффект «переливания света» тут не получится. Но мы же не ради этой демки плату покупали?)

Кстати, сам разъем тут Type-C, более современный и механически более надежный, чем микро. Воткнем же его в ноут и приступим!

Перво-наперво понадобится кросс-компилятор под linux, если вы еще не тренировались на 806-м, стянуть его можно тут, безо всяких плясок с бубном, типа регистрации на китайских ресурсах:

Архив

Архив распаковываем и помещаем в удобное место, например, сюда — SDK

Далее вытягиваем с git сам SDK:

gitee.com/iosetting/wm-sdk-w80x.git

Тут тоже логины не потребуются!

Надеюсь, что набор build-essential у вас уже установлен.

заходим в корень SDK, запускаем make menuconfig. Тут следует внести правки в разделах download configuration и toolchain configuration

/* у меня при первом запуске вывалилась ошибка "ncurses.h: No such file or directory", пришлось установить библиотечку: 

sudo apt install libncurses5-dev

*/






слэш в конце пути — важен, не забывайте!

Всё прописали, сохранили, вышли. Теперь можно приступать к сборке SDK

[email protected]:~/wm-sdk-w80x$ make

make[1]: Entering directory '/home/tango-cs/wm-sdk-w80x/app'

/* всякие строчки построения */

build finished!


Прошивка собралась, а вот при попытке залить ее в чип случился облом.

Причем, если подключить 806-ю и нажать reset, загрузка идет.

И если зайти в windows и воспользоваться утилитой wm_tool.exe — прошивается наша 801-я!

Но это какое-то издевательство: компилировать прошивку под линуксом, а прошивать под форточками…

Причина оказалась в ключе -rs, оказывается, нужно было указать в нем значение rts

tools/w800/wm_tool -c ttyUSB0 -rs rts -dl bin/w800/w800.fls

И всё! Даже давить на резет не нужно. А чтобы использовать make down / make flash, поправим файл tools/w800/rules.mk строчки 148-163



Итак, прошивка собрана и с горем пополам залита. Но как ее протестировать? При подключении к USB-serial командой

tools/w800/wm_tool -c ttyUSB0 -sl 0

видим только строчку «user task».

Смотрим файл app/main.c и обнаруживаем, что, кроме вывода этой строчки в прошивке больше ничего нет! Но откуда такой приличный объем?

Лезем в файл demo/wm_demo.h

Прежде всего меняем дефайн для DEMO_CONSOLE с DEMO_OFF на DEMO_ON

Теперь пробегаем по остальным разделам:

#define DEMO_GPIO (DEMO_ON && DEMO_CONSOLE)

Включать все модули, конечно, смысла нет. Я активировал только те, которые меня интересовали: DEMO_CONNECT_NET, DEMO_SOCKET_CLIENT_SERVER, DEMO_MASTER_SPI, DEMO_HTTP, DEMO_SCAN и DEMO_GPIO.

Теперь можно перекомпилировать и перезалить.

А вот далее работа в линуксе категорически не заладилась, возможно причина в том, что он как-то не так работает с последовательным портом, но на экране показываются лишь пара строк и все встает.

А вот под виндой кривенько, но работает. Стартовое меню — это тихий ужас, но вот например, даем команду t-scan



Видим, что точки доступа с WPA3 Enterprise он не опознает. А WPA и WPA2 — вполне!

Теперь попробуем подключиться:



Миссия выполнена!

Теперь попробуем вебсервер:



Вроде, запустился. Забиваем адрес устройства в броузере и смотрим:



Браузер ничего не возвращает, но заголовки устройством получены и перенаправлены в порт.

Ага, я слишком многого хотел от демки, там просто не реализован протокол http

Перезапускаю, подключаюсь через Putty в режиме RAW — и вижу, что девайс работает в режиме передаста, все что словил по Wi-Fi, направляет в последовательный порт.

Далее по плану подключить периферию по SPI и передавать данные с нее на веб-страничку.
  • +1
  • 21 сентября 2022, 16:09
  • nictrace

Комментарии (4)

RSS свернуть / развернуть
Тут тоже логины не потребуются!
Еще как требуется, по крайней мере если хочется просто вытянуть архив, а не клонировать репо.
0
  • avatar
  • Vga
  • 21 сентября 2022, 19:36
это да, потому и предлагаю клонировать )
0
Что то китай начал гнать прям годноту за копейки. Надо тоже заказать попробовать. А гербер платки в доступе есть? Чтобы ВЧ часть самому не изобретать, а тупо скопировать с работающего решения?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.