入门指南

Ameba ARDUINO: Getting Started with BW16

介绍

Realtek RTL8720DN 是一款 Wi-Fi 和蓝牙 IC,支持 2.4GHz 和 5GHz 双频 Wi-Fi 通信,以及蓝牙低功耗 (BLE) 5.0。BW16模组由B&T生产,该模组是以RTL8720DN为主要SoC(System on Chip)的高度集成的Wi-Fi和蓝牙模块,可以看作是典型SBC的Wi-Fi和蓝牙应用的SoC。BW16是与模块集成的开发板。 BW16开发板有2块,BW16和BW6-TypeC。

BW16 开发板

../../../_images/image199.png

开发板的尺寸为 50.4*25.4(±0.2) mm。它使用Micro USB供电,这在很多智能设备中都很常见。BW16 的引脚图和功能请参考下图和下表。

../../../_images/image287.png

#

GPIO Pin

GPIO INT

ADC

PWM

UART

SPI

I2C

IR

RGB LED

SWD

0

PA7

LOG_TX

1

PA8

LOG_RX

2

PA27

SWD_DATA

3

PA30

4

PB1

SERIAL1_TX

5

PB2

SERIAL1_RX

6

PB3

A2

SWD_CLK

7

PA25

I2C_SCL

IR_TX

8

PA26

I2C_SDA

IR_RX

9

PA15

SPI_SS

10

PA14

SPI_SCLK

LED_G

11

PA13

SPI_MISO

LED_B

12

PA12

SPI_MOSI

LED_R

除了 USB 连接器外,还有 2 个按钮。如上图所示,左侧为“RST”按钮,右侧为“Burn”按钮。有关按钮的功能,请参阅下表。

Button Functions

Button Process

Reset board

  1. Press then release “RST”

Enter upload mode

  1. Press and hold “Burn”

  2. Press then release “RST”

  3. Release “Burn”

清除flash或上传固件时,开发板需要上传模式。

设置开发环境

步骤一、 环境配置

BW16 (RTL8720DN) 开发板目前支持 Windows OS 32 位元或 64 位元、Linux OS (Ubuntu) 和 macOS。为了获得最佳体验,请使用最新版本的作业系统。

步骤二、 设定 Arduino IDE

从 1.6.5 版本开始,Arduino IDE 支持第三方硬件。 Arduino IDE用于在BW16上开发应用程序,以及Arduino基本范例(refer to the basic example link)。

Arduino IDE可以在Arduino网站下载: https://www.arduino.cc/en/Main/Software

安装完成后,打开Arduino IDE。请打开 “File” -> “Preferences”

并将以下 URL 复制到 “Additional Boards Manager URLs” 栏位:https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json从 v3.0.8版本开始,Ameba Arduino将支持BW16开发板。

接下来,打开Arduino IDE 中 “Tools”->”Board”->”Boards Manager”:

../../../_images/image361.png

“Boards Manager”大约需要几秒钟来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE会自动开始下载AmebaD包含BW16所需的文件。

../../../_images/image448.png

如果您遇到 GitHub 下载问题,请参考以下连结 中的“下载/软体开发套件”。有3个部分。1. “AmebaD_Arduino_patch1_SDK”,请至少选择 1 个 SDK。目前有 5 个最新发布的 SDK 选项。2. “AmebaD_Arduino_patch2_Tools”,请根据您的作业系统进行选择。有 Windows、Linux 和 MacOS。3. “AmebaD_Arduino_Source_Code”,此部分为可选下载,用来参考最新原始码。

https://www.amebaiot.com.cn/en/ameba-arduino-summary/

下载选择的文件,然后解压(patch1 和patch2 是必须的)。有“Install_中文.doc”/“Install_中文.pdf”供您参考安装步骤。根据您的系统,请运行“Offline_SDK_installation_tool”文件夹中的安装工具。

安装运行成功后,您可以打开Arduino IDE并选择 “Tools” -> “Board” -> “Ameba ARM (32-bits) Boards” ->” BW16(RTL8720DN)” 来选择AmebaD作为当前连接的开发板。

../../../_images/image535.png

步骤三、 安装串行端口

首先,通过 Micro USB 将开发板连接到电脑:

BW16 开发板

../../../_images/image623.png

参考上面的引脚图和表格,D0 和 D1 引脚用于程序上传。但是,板载USB转UART模块连接到D4和D5,不能直接用于程序上传。为了上传固件,建议添加一个外部 USB 转 UART 模块连接到 D0 和 D1,如下图引脚连接:

../../../_images/image720.png

或者,短接下面指示的引脚以使用板载 USB:D1––– D5 D0 ––– D4

../../../_images/image816.png

对应连接后,会自动安装BW16的USB驱动。如果连接板有驱动问题,请到 http://www.wch- ic.com/downloads/CH341SER_ZIP.html 参考 USB 驱动程序。在 Windows 作业系统的装置管理员中检查 COM 端口号:

../../../_images/image912.png ../../../_images/image1011.png

到“Tools”->“Port”并选择正确的 COM 端口。

../../../_images/image1117.png

进入“Tools”->“Serial Monitor”,将baud rate设置为“115200”,然后按RST按钮检查串口连接。

../../../_images/image1214.png ../../../_images/image1314.png

步骤四、 清除 flash

根据生产批次的不同,部分开发板可能内置了预设的B&T固件,固件信息如下图所示:

../../../_images/image1414.png

固件位于 OTA 部分。所有新编译的固件将被 OTA 固件自动替换。因此,需要先清除 OTA 固件才能使用已编译的固件。

方法一:Arduino SDK V3.1.3 之后的“Erase Flash Enable”。

选择“Tools”->“Erase Flash”->“Enable”

../../../_images/image1514.png

然后进入上传模式。

  • 手动。按住“Burn”按钮,按下然后放开“RST”按钮并放开“Burn”按钮。

  • 自动。选择“Tools”->“Auto Upload Mode”->“Enable”。注意只有内置自动上传电路的板子(BW16-TypeC)才能使用自动上传模式,否则会回到正常上传模式并等待5秒。

接下来,选择“Sketch”->“Upload”。 “Erase flash done” 会出现。

../../../_images/image1612.png ../../../_images/image1712.png

按RST按钮来检查串行监视器和重制开发板。如果只有“#”表示清除flash成功。记得选择“Tools”->“Erase Flash”->“Disable”。

../../../_images/image1812.png

尝试操作范例

Step 1. 编译和上传

Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。

打开 “File” -> “Examples” -> “01.Basics” -> “Blink”:

../../../_images/image1910.png ../../../_images/image203.png

小技巧

板载 RGB LED,预设“LED_BUILTIN”为绿色。将“LED_BUILTIN”更改为“LED_R”、“LED_G”或“LED_B”以获得红色、绿色或蓝色。

接下来,直接编译范例代码。 “Sketch”->“Verify/Compile”。然后如果没有编译错误,接着“Sketch”->“Upload”。

  • 检查并选择 “Tools” -> “Erase Flash” -> “Disable”。

  • 进入上传模式。手动或自动。选择 “Tools” -> “Auto Upload Mode” -> “Enable”/ ”Disable”。

  • “Verify/Compile” and “Upload”. “Upload” includes “Verify/Compile”, “Verify/Compile” can be skipped.

上传成功会显示“All images are sent successfully!”

参考

  1. Introduction of BW16 on Instructable: https://www.instructables.com/RTL8720DN/

  2. Load Arduino image into BW16: How to load BW16 program with Arduino – #13

  3. BW16 IMG2 SIGN Invalid Solution: RTL8720DN(BW16) IMG2 SIGN Invalid Solution

  4. FTDI Driver Download from here: https://ftdichip.com/wp-content/uploads/2021/02/CDM21228_Setup.zip