入门指南
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 开发板
开发板的尺寸为 50.4*25.4(±0.2) mm。它使用Micro USB供电,这在很多智能设备中都很常见。BW16 的引脚图和功能请参考下图和下表。
# |
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 |
|
Enter upload mode |
|
清除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”:
“Boards Manager”大约需要几秒钟来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE会自动开始下载AmebaD包含BW16所需的文件。
如果您遇到 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作为当前连接的开发板。
步骤三、 安装串行端口
首先,通过 Micro USB 将开发板连接到电脑:
BW16 开发板
参考上面的引脚图和表格,D0 和 D1 引脚用于程序上传。但是,板载USB转UART模块连接到D4和D5,不能直接用于程序上传。为了上传固件,建议添加一个外部 USB 转 UART 模块连接到 D0 和 D1,如下图引脚连接:
或者,短接下面指示的引脚以使用板载 USB:D1––– D5 D0 ––– D4
对应连接后,会自动安装BW16的USB驱动。如果连接板有驱动问题,请到 http://www.wch- ic.com/downloads/CH341SER_ZIP.html 参考 USB 驱动程序。在 Windows 作业系统的装置管理员中检查 COM 端口号:
到“Tools”->“Port”并选择正确的 COM 端口。
进入“Tools”->“Serial Monitor”,将baud rate设置为“115200”,然后按RST按钮检查串口连接。
步骤四、 清除 flash
根据生产批次的不同,部分开发板可能内置了预设的B&T固件,固件信息如下图所示:
固件位于 OTA 部分。所有新编译的固件将被 OTA 固件自动替换。因此,需要先清除 OTA 固件才能使用已编译的固件。
方法一:Arduino SDK V3.1.3 之后的“Erase Flash Enable”。
选择“Tools”->“Erase Flash”->“Enable”
然后进入上传模式。
手动。按住“Burn”按钮,按下然后放开“RST”按钮并放开“Burn”按钮。
自动。选择“Tools”->“Auto Upload Mode”->“Enable”。注意只有内置自动上传电路的板子(BW16-TypeC)才能使用自动上传模式,否则会回到正常上传模式并等待5秒。
接下来,选择“Sketch”->“Upload”。 “Erase flash done” 会出现。
按RST按钮来检查串行监视器和重制开发板。如果只有“#”表示清除flash成功。记得选择“Tools”->“Erase Flash”->“Disable”。
尝试操作范例
Step 1. 编译和上传
Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开 “File” -> “Examples” -> “01.Basics” -> “Blink”:
小技巧
板载 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!”
Step 2. 执行 Blink 范例
板子将自动重置,如果板子不支持自动上传模式,请按 RST 按钮。板载 RGB LED 将闪烁。
在每个范例中,Arduino不仅提供了范例代码,还提供了详细的文档,包括接线图、范例代码说明、技术细节等。这些范例可以直接用于 BW16。请参阅以下连结中的 Blink 详细信息: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
参考
Introduction of BW16 on Instructable: https://www.instructables.com/RTL8720DN/
Load Arduino image into BW16: How to load BW16 program with Arduino – #13
BW16 IMG2 SIGN Invalid Solution: RTL8720DN(BW16) IMG2 SIGN Invalid Solution
FTDI Driver Download from here: https://ftdichip.com/wp-content/uploads/2021/02/CDM21228_Setup.zip