入门指南
Ameba ARDUINO: Getting Started with BW16
工作环境
BW16 双频Wi-Fi开发板目前支援Windows XP/7/8/10 32位元和64位元作业系统。在本文档中,请使用 1.8.15 或更高版本的 Arduino IDE。
BW16 介绍
Realtek RTL8720DN是一款Wi-Fi和蓝牙IC,支持2.4GHz和5GHz双频Wi-Fi通信,以及蓝牙低能耗(BLE)5.0。BW16是深圳市博安通科技股份有限公司(B&T)生产的模块,该模块是以RTL8720DN SoC 为主的Wi-Fi和蓝牙模块,它可以被看作是与典型SBC一起用于Wi-Fi和蓝牙应用的SoC。
如上图所示,RTL8720DN (BW16) 的尺寸小于我们以往介绍的AmebaD和AmebaD MINI开发板。它使用Micro USB 接口供电,这种供电方式在许多智能设备中很常见。RTL8720DN (BW16)的引脚图和功能请参考下图和表格。
# |
PIN name |
GPIO |
ADC |
PWM |
UART |
SPI |
I2C |
---|---|---|---|---|---|---|---|
D0(PA7) |
GPIOA_7 |
✓ |
UART_LOG_TX |
||||
D1(PA8) |
GPIOA_8 |
✓ |
UART_LOG_RX |
||||
D2(PA27) |
GPIOA_27 |
✓ |
|||||
D3(PA30) |
GPIOA_30 |
✓ |
|||||
D4(PB1) |
GPIOB_1 |
✓ |
Serial_TX |
||||
D5(PB2) |
GPIOB_2 |
✓ |
Serial_RX |
||||
D6(PB3) |
GPIOB_3 |
✓ |
A2 |
||||
D7(PA25) |
GPIOA_25 |
✓ |
I2C0_CLK |
||||
D8(PA26) |
GPIOA_26 |
✓ |
✓ |
I2C0_SDA |
|||
D9(PA15) |
GPIOA_15 |
✓ |
SPI_CS |
||||
D10(PA14) |
GPIOA_14 |
✓ |
SPI_CLK |
||||
D11(PA13) |
GPIOA_13 |
✓ |
✓ |
SPI_MISO |
|||
D12(PA12) |
GPIOA_12 |
✓ |
✓ |
SPI_MOSI |
设置开发环境
步骤一、安装驱动程序
首先,通过Micro USB 将 RTL8720DN (BW16)连接到电脑:
如果这是您第一次将RTL8720DN (BW16)连接到电脑,请注意以下事项。
从上面的引脚图中,我们知道引脚 D0 和 D1可以被用于程序上传。但是,根据安信可的原理图设计,板载USB转UART模组连接到引脚 D4 和 D5,因此该USB转UART模组并不能直接用于程式上传。
或者,您也可以按照下表中所示,将引脚短接后使用板载的USB转UART模块进行程式码上传
用USB将开发板连接至电脑后,电脑将自动安装用于BW16/RTL8720DN的USB驱动程序。
如果您在安装驱动时遇到任何与开发板的连接问题,请前往http://www.wch-ic.com/downloads/CH341SER_ZIP.html 网址下载USB驱动程式。
安装完成后,您可以在电脑 装置管理员 中检查 COM 端口以确认驱动安装正确,电脑可以识别BW16开发板:
步骤2: 设定 Arduino IDE
从 1.6.5 版本开始,Arduino IDE 支持第三方硬件。因此,我们可以使用Arduino IDE在RTL8720DN(BW16)开发应用程序,Arduino的基本范例也可以在 BW16上运行。请参阅 基本范例 。
Arduino IDE可以在Arduino网站下载: https://www.arduino.cc/en/Main/Software
安装完成后,打开Arduino IDE。为了在Arduino IDE中正常使用RTL8720DN (BW16),请打开“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将正式支持RTL8720DN (BW16)开发板。
接下来,打开Arduino IDE 中 “Tools”->”Board”->”Boards Manager”:
“Boards Manager”大约需要10~20秒来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。每次连接新硬件时,我们都需要重新打开Boards Manager。因此,我们先关闭然后再次打开它。在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE会自动开始下载AmebaD所需的文件。
如果您遇到 GitHub 下载问题,请参考以下 Download/Software Development Kit 中的链接。有3个部分。
“AmebaD_Arduino_patch1_SDK”,请至少选择 1 个 SDK。目前有 5 个最新发布的 SDK 选项。
“AmebaD_Arduino_patch2_Tools”,请根据您的作业系统进行选择。有 Windows、Linux 和 MacOS。
“AmebaD_Arduino_Source_Code”,此部分为可选下载,用来参考最新原始码。
下载选择的文件,然后解压(patch1 和patch2 是必须的)。有“Install_中文.doc”/“Install_中文.pdf”供您参考安装步骤。根据您的系统,请运行“Offline_SDK_installation_tool”文件夹中的安装工具。
安装工具运行成功后,您可以打开Arduino IDE并选择 “tools” -> “Board“ -> “Boards Manager…”。尝试在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE开始下载AmebaD所需的文件。
最后,我们在“tools”->“Board”->“Ameba ARM (32-bits) Boards”->” RTL8720DN(BW16)”中选择了AmebaD作为当前连接的开发板:
如何更新BW16轫体
根据生产批次的不同,开发板上的部分 BW16 模块可能内置了默认的 B&T 轫体,轫体信息如下图所示:
这将导致 Arduino Image 无法写入模块。虽然有“All images are sent successfully! Image tool closed! Upload Image did.”的信息。但无法清除出厂Image,按下板载 RST 按钮后,您会发现出厂Image仍然保留着。
Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开 “File” -> “Examples” -> “01.Basics” -> “Blink”:
上传方法
方法1 – 使用AmebaD Image Tool清除Flash
B&T预设轫体可以通过Realtek提供的Image Tool使用“Erase”功能来进行更新。使用 Image Tool 从记忆体位址 0x8000_0000 开始清除Flash image,直到 2MB 内存位置结束稍后,我们需要使用 Arduino IDE 再次将 Realtek image上传回模块。
步骤1 -下载并准备 Image Tool.
从 ambiot GitHub 的链接下载 ambd_sdk: https://github.com/ambiot/ambd_sdk.
Realtek 的 Image Tool 可以在以下文件路径下找到:“ambd_sdk oolsAmbaDImage_toolimage_tool.exe”。
步骤2 – 设定 Image Tool
“Chip Select” 选项中, 选择 “AmebaD(8721D)”
选择您正在使用的正确 COM 端口
Set the Baudrate to 115200.
然后从Memory Address 0x0800 0000 开始键入Flash Erase 起始位置
具体内存大小为2048 KB
首先将模块设置为“Download mode”,然后单击“Erase”按钮
完成上面的清除并按重置按钮后,我们可以发现“#calibration”不再弹出,只有“#”出现在serial monitor中。
步骤3 – 使用Arduino IDE 下载 Image
现在您可以在 Arduio IDE 中通过 UART 下载程序。为了上传程序,您可以选择使用连接到 D0 和 D1 的外部 USB-to-UART 模块,或短接如下所示的引脚以使用板载 USB:
D1 ––– D5D0 ––– D4
解决上传方法
OTA (Over The Air)
Ai-Thinker 在 B&T 《RTL8720D AT Command User Manual》的 6.1 节中提供了 OTA 轫体上传指南,可从以下链接获取:https://docs.ai-thinker.com/_media/rtl8710/docs/rtl8720d-at%E6%8C%87%E4%BB%A4%E6%89%8B%E5%86%8Cv2.4.1-20190814.pdf.
尝试第一个范例
步骤1:编译和上传
Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开 “File” -> “Examples” -> “01.Basics” -> “Blink”:
Arduino IDE 打开一个带有完整范例代码的新视窗。
小技巧
BW16 的开发板上带有板载 LED, 默认的”LED_BUILTIN”代表绿色板载 LED。将”LED_BUILTIN”更改为”LED_B”或”LED_R”则可以将颜色转换为蓝色或者红色。
这里,我们使用LED_B为例。
接下来,我们直接编译范例代码,点击“Sketch”->“Verify/Compile”
Arduino IDE在IDE窗口的底部区域打印编译消息。编译完成后,会得到如下图所示的消息:
之后,我们将把编译后的代码上传到 BW16。
请确保 BW16 已连接到您的电脑,然后单击“Sketch” -> “Upload”。
Arduino IDE将先编译,然后上传。在上传过程中,用户需要将开发板调至上传模式。要进入上传模式,首先按住RTL8720DN(BW16)“Burn”键,按下“RST”键,然后松开“Burn”键。
请确保 BW16 已连接到您的电脑,然后单击“Sketch” -> “Upload”。有一个5秒的倒计时提醒您進入上傳模式。
同样,在上传过程中IDE会自动显示消息。上传过程需要相当长的时间(大约30秒到1分钟)。上传完成后,您会看到“Done uploading”消息。
步骤2:运行Blink范例
在每个范例中,Arduino不仅提供了范例代码,还提供了详细的文档,包括接线图、范例代码说明、技术细节等。这些范例可以直接用于 BW16。
在这里我们可以找到Blink这个范例的详细信息: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
简而言之,对于RTL8720DN,该范例可以在板载RGB LED或外接LED(使用任何GPIO引脚进行信号输出)上运行。最后,按RST按钮,你就会看到LED开始闪烁。
参考
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
(End)
备注
If you face any issue, please refer to the FAQ and Trouble shooting sections on 支援 page.