В списке Wi-Fi модулей, а точнее в списке дешевых Wi-Fi модулей, недавно возникло новое пополнение. На рынок начал выходить RTL8710.
Модуль RTL8710
В интернете сразу стали сулить ему учесть убийцы esp8266. Диалог с модулем так же, в прочем, как и с большинством подобных модулей, идёт по UART, встроенная прошивка с AT командами, линии GPIO, ходят разговоры о SDK, в общем, всё схоже с esp8266. Но документации на модуль пока мало, а встроенная прошивка содержит глюки. Какая будет у модуля судьба — покажет время.
Стоимость модуля на ebay ~3,5$ (~220р сентябрь 2016), можно найти дешевле.
Обратная сторона модуля
Для простой работы достаточно на модуль подать 3.3В и подключиться по UART на скорости 38400 8N1 (к сожалению, скорость штатными средствами изменить не удалось). Для управлением питанием есть линия CHIP-EN 1-вкл (по умолчанию), 0-выкл. Модуль оснащён зеленым светодиодом в верхней части возле буквы B, под круглым отверстием, который горит во время передачи данных.
Схема подключения RTL8710
С подключением модуля решил не заморачиваться, подключил через цеплялки (щупы-пробники) к cp2102, линии данных через гасящие резисторы.
Заставка во время загрузки модуля
AT команды модуля
Общие команды
Синтаксис | Описание |
AT | Тест |
AT |
|
help | Помощь, краткий список некоторых AT команд |
Help |
|
ATS? | Список всех доступных AT команд |
ATSR | Перезагрузка модуля |
ATSV | Версия модуля |
ATSV |
|
ATSY | Сброс до заводских настроек |
ATSU=<baudrate>,<databits>,<stopbits>,<parity>,<flowcontrol>,<configmode> | Настройка UART модуля. baudrate — скорость 2400,4800,9600,19200,38400,57600, 115200,921600,1152000 databits — размер пакета 5, 6, 7, 8 — бит stopbits — стоп бит 1, 2 — бит parity — контроль чётности 0 — нет, 1 — нечётный, 2 — чётный flowcontrol — управление парадачей данных 0 — нет, 1 — аппаратный RTS, CTS configmode — режим конфигурации 0 — применить не сохраняя 1 — сохранить и применить 2 — сохранить и применить после перезагрузки Команда не работает |
ATSU=115200,8,1,0,0,1 |
|
ATSE=<mode> | Режим UART 0 — без отладочных данных 1 — 2 — все отладочные данные |
ATSE=2 |
|
ATSW=<mode> | Запустить Веб сервер mode — режим c — запустить s — остановить Доступно в режиме точки доступа (AP) |
ATSW=c |
|
ATSO=<ip>,<port> | Обновление прошивки |
Wi-Fi команды
Синтаксис | Описание |
ATPW=<mode> | Wi-Fi режим 1 — клиент 2 — точка доступа 3 — параллельный |
ATPW=1 |
|
ATPN=<ssid>,<pwd>,<key_id>(,<bssid>) | Подключение к точке доступа ssid — имя точки доступа pwd — пароль |
ATPN=HOME,12345678 |
|
ATWD | Отключиться от точки доступа |
ATWD |
|
ATWS | Поиск точек доступа |
ATWS |
|
ATPA=<ssid>,<pwd>,<chl>,<hidden> | Создать точку доступа ssid — имя точки доступа pwd — пароль длиной 8-64 символа chl — канал hidden 0 — не скрытая 1 — скрытая |
ATPA="TEST","12345678",5,0 |
|
ATW? | Wi-Fi информация |
ATW? |
|
ATPH=<mode>,<enable> | DHCP режим mode 1 — точка доступа 2 — клиент enable 1 — включить DHCP 2 — статический IP |
ATPH=2,2 |
|
ATPE=<ip>(,<gateway>,<mask>) | Статический IP ip gateway — шлюз mask — маска |
ATPE=192.168.1.2 |
|
ATPG=<enable> | Автоподключение 0 — выкл 1 — вкл |
ATPG=0 |
|
ATPM=<mac> | Установка MAC адреса |
ATPM=0011223344ff |
TCP/IP команды
Синтаксис | Описание |
ATPS =<mode>,<Local Port> | Поднять TCP/UDP сервер mode — режим 0 — TCP 1 — UDP local port — порт 1-65535 |
ATPS=0,80 |
|
ATPC =<mode>,< Remote IP>,< Remote Port> | Клиент. Подключиться к серверу. mode — режим 0 — TCP 1 — UDP Remote IP — IP Remote Port — порт 1-65535 |
Подключимся к ya.ruATPC=0,213.180.204.3,80 |
|
ATPD=<con_id> | Отключиться от сервера, выключить поднятый на модуле сервер. con_id — id сессии |
ATPD=1 |
|
ATPT=<con_id>,<data> Or ATPT=<Buffer Size> Or ATPT=<con_id>,<UDP Client IP>,<UDP Client Port>,<data> |
Отправка данных con_id — id сессии data — Buffer Size — количество отправляемых байт Не может отправлять спец символы, например 0x0C (\n), 0x0A (\r) |
ATPT=2,12345 |
|
ATPR =<con_id>,<Buffer Size> | Получение данных con_id — id сессии Buffer Size — количество читаемых байт |
ATPR=2,4 [ATPR]:2,192.168.1.1,40866,qwer with packet_size: 4 |
|
ATPI | Список активных сессий |
ATPI |
|
ATPP=<xxxx.xxxx.xxxx.xxxx>,[y/loop] Or ATPP=<con_id>, [y/loop] |
Ping Remote IP — IP con_id — id сессии y/loop — количество опросов н loop — бесконечный цикл |
ATPP=192.168.1.1 |
В таблице рассмотрены не все команды, описание всех команд можно найти в документации на модуль. Для экономии места где-то в примерах работы с командами удалены лишние пустые строки. Так же везде убрана строка
[MEM] After do cmd, available heap 45296
Большинство AT команд могут корректно работать, точнее возвращать ответ только при ATSE=2 (например ATPI), другие команды в этом режиме работают нормально, но шлют лишние дублированные данные (ATWS). Модуль реагирует, но нечего не делает при получении команды настройки UART (ATSU). При отправки данных (ATPT) модуль не шлёт системные символы, в том числе символы переноса строки и перевода каретки (0x0D 13 \n, 0x0A 10 \r), если символы отправлять в кавычках модуль выдаёт фатальную ошибку. При отправки и получении данных модуль работает построчно, т.е. только до символа переноса строки, возможности отправлять фрагменты произвольных данных произвольной установленной длины нет.
Фото подключения тестового RTL8710
Впечатление от модуля. Модуль работает, с ним можно вести кое-какой диалог по средством AT команд. Модуль не может принимать и отправлять спец символы (терминальные символы), он их или игнорирует, или отрабатывает сам. Шлёт лишние отладочные данные. На модуль пока мало документации, по SDK нечего не скажу, т.к. она меня пока не интересуют. Модуль на данный момент очень сырой и с ним работать трудно, или я неправильно его применял. Посмотрим, в каком плане модуль будет развиваться дальше. Если же я его как-то неправильно применял — поправьте меня.
Больше всего документации на данный момент содержится на одноимённом форуме — https://www.rtl8710forum.com/.
Оригинальная статья.
Sterpa
tcp server есть! Уже хорошо.