Обзор WISCREATOR-473MA — АРМ-Ардуино с Wi-Fi

На этот раз поглядим на простую ардуино-стайл плату для старта проекта с Wi-Fi. На борту у неё, кроме самого модуля RAK473 с SoC RTL8711AM, имеется DAP-Link, благодаря которому можно заливать прошивку, копируя его как обычный *.bin файл на флешку (MSC), также поддерживается CDC порт для логов\отладки и, собственно, SWD\JTAG-отладчик (но это уже не для адурино-среды).

WISCREATOR-473MA (или Wis Creator Pro) собственной персоной:

B34-1

Поближе и повнимательнее под катом, а также сделаем ардуино-костыль-проект для проверки работы. :)

В этот раз фоток распаковки не будет, потому что они аналогичны плате WIS473MA-UART и смысла повторяться не вижу. Перейдём сразу к делу.

Выглядит плата довольно аккуратно спаянной, особых косяков не видно. Правда, снизу не очень хорошо отмыта и под углом хорошо видны разводы флюса:

B34-2

Пайка модуля нормальная, сам он, правда, стоит чуток криво (но уже лучше, чем на плате WIS473MA-UART):

B34-3

Схемотехника

Начнём с питания. С ним прикол вышел, если цеплять шилд или ещё что-либо, ощутимо потребляющее по +3.3В шине, то плата начинает время от времени отваливаться от ПК (сначала я грешил на прошивку самого DAP-Link). Питание платы возможно двумя способами. От USB питание берётся через диод-Шотки SD3:

B34-4

И на колодке для подключения внешнего питания +5В по схеме стоит диод-Шотки D1:

B34-5.PNG

Хотя по факту на плате D1 отсутствует и вместо него установлена резистор-перемычка:

B34-6

Так вот, советую и вместо SD3 установить перемычку, если не используется внешнее питание или непонятно, по каким причинам плата отключается\подключается сама по себе или во время процесса прошивки.

Далее по схеме… На плате установлен JTAG для подключения внешнего отладчика (к примеру, J-Link, который, как по мне, значительно привычнее и даёт больше возможностей, чем DAP-Link):

B34-7

Распиновка, правда, какая-то странная… вот, к примеру, стандартные распиновки JTAG разъёмов и 10-пин совсем не такой, как на WISCREATOR-473MA, придётся городить переходник:

B34-8

Также на плате установлены джамперы для выбора, какой UART выводить через порт DAP-Link: UART_LOG (пины PB_0, PB_1) или UART0 (пины PC_0, PC_3). Про светодиоды и так понятно. ;)

B34-9

И, конечно же, подключение самого модуля RAK473. Особенности:

  • На разъём H1 через резисторы-перемычки можно вывести NFC, правда, нет места под установку конденсатора LC контура (зато на модуле под металлической крышкой есть место для 0402 конденсатора, «удобно» :) ).
  • Стандартный набор кнопок — Reset и две пользовательские.
  • Установлен резистор R1 на питании модуля и параллельно ему разъём J1, через который можно измерять динамическое потребление тока именно модуля (правда, резистор надо поменять, к примеру, на точный 0,1 Ом).
  • Измерять потребление тока модулем-то можно, но, как и в WIS473MA-UART, питание GPIOE подключено в обход резистора R1.

B34-10.PNG

Подготовка к написанию прошивки

Далее займемся прошивкой, для этого нам потребуется следующее ПО:

  1. Скачиваем последнюю официальную ардуино среду (в моем случае это версия 1.8.4) с официального сайта, я скачал ZIP вариант без установки и распаковал по короткому пути без кириллицы (пример: C:\Data\arduino).
  2. Теперь необходимо скачать Mbed драйвера, в моём случае это версия mbedWinSerial_16466. Вначале подключаем плату к ПК и потом начинаем установку.
  3. Далее лучше сразу обновить прошивку DAP-Link на плате. Прошивки DAP-Link можно скачать здесь, также есть и официальная инструкция, как обновить (если вкратце, то надо зажать кнопку T\R, далее нажать кнопку N\R, не отпуская T\R, после чего в ОС должен появится MSD, на который и кидаем *.bin файл прошивки DAP-Link.) Прямая ссылка на рабочую версию:
    DAP_FW_Ameba_V10_2_3-2M_LED_Disable.bin.
  4. Теперь запускаем ардуино и почти следуем официальной инструкции от AmebaIoT. Если вкратце, то требуется в настройках среды ардуино добавить этот репозиторий от RAKWireless:
    https://github.com/RAKWireless/CREATOR-Arduino-SDK/raw/master/release/package_rakwireless.com_creator_index.json

    Также есть официальный от Ameba, но в нём нет RTL8711AM, и для компиляции скетча необходимо выбирать плату на RTL8195AM (не будет работать только не выведенная периферия на RTL8711AM):

    https://github.com/Ameba8195/Arduino/raw/master/release/package_realtek.com_ameba_index.json

    И скачать в менеджере плат появившийся пакет:

    RAK CREATOR Boards (32-bits ARM Cortex-M3)
  5. Вот и всё! Ардуино среда готова к экспериментам над WISCREATOR-473MA.

Изготовление простого шилда с ЖКИ

Будем делать банальный проект с использованием Wi-Fi и экранчика. Портативный Wi-Fi сканер сетей. Для этого берем первую под руку попавшуюся мартышку-макетку или самый простой шилд для макетирования (в моём случае какой-то старый шилд, уже даже не помню, откуда взялся):

B34-11

Лепим PBS разьём и проводами соединяем в следующем порядке для подключения дисплея на ILI9341 с разрешением 320х240 (на самом дисплее не забываем поставить перемычку J1 для питания от +3,3В):

ILI9341

Arduino-style Pin

Примечание

SDO (MISO) D12 GPIOC 3, SPI0 MISO
LED 3V3
SCK D13 GPIOC 1, SPI0 CLK
SDI (MOSI) D11 GPIOC 2, SPI0 MOSI
D\C D6 GPIOA 3
RESET RESET
CS D10 GPIOC 0, SPI0 CS0
GND GND
VCC 3V3

Получилось на скорую руку нечто подобное:

B34-12

Цепляем сверху дисплей, вместе с WISCREATOR-473MA платой этот бутерброд выглядит так:

B34-13

Сойдёт. Типичный ардуино-стайл проект! :) Можно переходить к прошивке…

Прошивка (скетч)

Слепил из двух стандартных примеров один, получившееся ниже:


#include "WiFi.h"
#include "SPI.h"
#include "AmebaILI9341.h"
// RESET не используется, указан любой, не используемый пин
#define TFT_RESET 7
#define TFT_DC 6
#define TFT_CS 10

AmebaILI9341 tft = AmebaILI9341(TFT_CS, TFT_DC, TFT_RESET);

void setup()
{
Serial.begin(115200);
Serial.println("ILI9341 Test!");

SPI.setDefaultFrequency(20000000);

tft.begin();
tft.clr();
tft.setRotation(3); // 0 - вниз (к USB разьему) на себя
tft.setCursor(0, 0);

if (WiFi.status() == WL_NO_SHIELD)
{
tft.setForeground(ILI9341_RED);
tft.setFontSize(2);
tft.println("WiFi shield not present");
while (true);
}
}

void loop()
{
for (;;)
{
ShowText();
delay(2000);
}
}

void ShowText()
{
int numSsid = WiFi.scanNetworks();

tft.clr();
tft.setCursor(0, 0);

if (numSsid == -1)
{
tft.setForeground(ILI9341_YELLOW);
tft.setFontSize(2);
tft.println("no available");
}
else
{
tft.setForeground(ILI9341_BLUE);
tft.setFontSize(2);
tft.print("available: " );
tft.println(numSsid);

for (int thisNet = 0; thisNet < numSsid; thisNet++)
{
tft.setForeground(ILI9341_WHITE);
tft.setFontSize(2);
tft.print(thisNet);
tft.print(" ");
tft.print(WiFi.SSID(thisNet));
tft.print(" ");
tft.print(WiFi.RSSI(thisNet));
tft.println(" dBm");
tft.setFontSize(1);
tft.setForeground(ILI9341_YELLOW);
printEncryptionTypeEx(WiFi.encryptionTypeEx(thisNet));
tft.print(" ");
printEncryptionType(WiFi.encryptionType(thisNet));
}
}
}

void printEncryptionTypeEx(uint32_t thisType)
{
switch (thisType)
{
case SECURITY_OPEN:
tft.print("Open");
break;
case SECURITY_WEP_PSK:
tft.print("WEP");
break;
case SECURITY_WPA_TKIP_PSK:
tft.print("WPA TKIP");
break;
case SECURITY_WPA_AES_PSK:
tft.print("WPA AES");
break;
case SECURITY_WPA2_AES_PSK:
tft.print("WPA2 AES");
break;
case SECURITY_WPA2_TKIP_PSK:
tft.print("WPA2 TKIP");
break;
case SECURITY_WPA2_MIXED_PSK:
tft.print("WPA2 Mixed");
break;
case SECURITY_WPA_WPA2_MIXED:
tft.print("WPA/WPA2 AES");
break;
}
}

void printEncryptionType(int thisType)
{
switch (thisType)
{
case ENC_TYPE_WEP:
tft.println("WEP");
break;
case ENC_TYPE_TKIP:
tft.println("TKIP");
break;
case ENC_TYPE_CCMP:
tft.println("CCMP");
break;
case ENC_TYPE_NONE:
tft.println("None");
break;
case ENC_TYPE_AUTO:
tft.println("Auto");
break;
}
}

Компилируем и заливаем прошивку:

B34-14

После нажатия кнопки RESET должна запуститься залитая в плату прошивка:

B34-15.jpg

Работает от повербанка нормально и прекрасно видит своего собрата на RAK473 — сеть RTL871X. :)

Вывод

Плата WISCREATOR-473MA хорошо подходит в качестве замены обычным ардуино, если требуется WiFi или\и больше памяти или\и более мощный SoC.

Плюсы\минусы. Начнём с минусов:

  • небольшая поддержка (по сравнению с оригинальными платами адурино) и меньшее кол-во примеров;
  • и плюс, и минус, зависит от применения — IO сигналы 3,3В и только. Нет согласователей уровней;
  • вытекающее из вышестоящего пункта: не все шилды подойдут к ней без доработки (т. к. оригинальная ардуино имеет IO 5В);
  • далеко не все пины на разъёмах подключены к модулю, немалая их часть в воздухе (на самом модуле RAK473 хоть и не так много выводов, но тут не все они выведены на разъёмы);
  • есть нюанс с питанием от USB, описанный выше.

По плюсам:

  • встроенный программатор-отладчик в плату;
  • удобная возможность быстро залить новую прошивку, просто кинув её как на флешку;
  • помимо программатора в ОС также появляется COM-порт, на который как в оригинальной адурино можно выводить отладочную информацию;
  • помимо WiFi есть возможность подключить NFC антенну и заиметь в проекте NFC без лишних затрат;
  • качественное исполнение платы, неплохая комплектация (упаковка, кабель, запасные джамперы) — всё, что надо для старта, есть в наборе;
  • у SoC много RAM, богатый набор периферии и выведенный JTAG (хотя какой-то кривой распиновки), что при использовании стандартного SDK или USDK от pvvx даёт ещё большие возможности.

Стоит также отметить, что работа с платами от другого производителя — MJIOT-AMB-DEBUG-01 (на RTL8710AF) и MJIOT-AMB-DEBUG-02 (на RTL8195AM) во многом аналогична и статья выше применима к ним.

Ссылки

  • RAK WIKI — общее описание, примеры и немного документации;
  • Document Download — страница с прошивками, тулсами и различными сертификатами (на эту плату как-то не густо, зато на модуль RAK473 отдельно можно много чего скачать);
  • RAK Shopне реферальная ссылка на магазин RAK на площадке AliExpress. Конкретно эта плата — Creator Pro.
  • AmebaIoT — официальный сайт RTL-чипов, можно скачать SDK, ардуино, примеры и т. д. Требуется регистрация!
  • Подраздел на форуме esp8266.ru — неофициальное SDK, много примеров, разборов работы модуля и т. д.

 

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s