入门指南

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。

bw16-get-start-1

如上图所示,RTL8720DN (BW16) 的尺寸小于我们以往介绍的AmebaD和AmebaD MINI开发板。它使用Micro USB 接口供电,这种供电方式在许多智能设备中很常见。RTL8720DN (BW16)的引脚图和功能请参考下图和表格。

bw16-get-start-2

#

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)连接到电脑:

bw16-get-start-3

如果这是您第一次将RTL8720DN (BW16)连接到电脑,请注意以下事项。

从上面的引脚图中,我们知道引脚 D0 和 D1可以被用于程序上传。但是,根据安信可的原理图设计,板载USB转UART模组连接到引脚 D4 和 D5,因此该USB转UART模组并不能直接用于程式上传。

bw16-get-start-4

或者,您也可以按照下表中所示,将引脚短接后使用板载的USB转UART模块进行程式码上传

D1 ––– D5
D0 ––– D4

bw16-get-start-5

用USB将开发板连接至电脑后,电脑将自动安装用于BW16/RTL8720DN的USB驱动程序。

如果您在安装驱动时遇到任何与开发板的连接问题,请前往http://www.wch-ic.com/downloads/CH341SER_ZIP.html 网址下载USB驱动程式。

安装完成后,您可以在电脑 装置管理员 中检查 COM 端口以确认驱动安装正确,电脑可以识别BW16开发板:

bw16-get-start-6

步骤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”:

bw16-get-start-7

“Boards Manager”大约需要10~20秒来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。每次连接新硬件时,我们都需要重新打开Boards Manager。因此,我们先关闭然后再次打开它。在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE会自动开始下载AmebaD所需的文件。

bw16-get-start-8

如果您遇到 GitHub 下载问题,请参考以下 Download/Software Development Kit 中的链接。有3个部分。

  1. “AmebaD_Arduino_patch1_SDK”,请至少选择 1 个 SDK。目前有 5 个最新发布的 SDK 选项。

  2. “AmebaD_Arduino_patch2_Tools”,请根据您的作业系统进行选择。有 Windows、Linux 和 MacOS。

  3. “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-get-start-9

如何更新BW16轫体

根据生产批次的不同,开发板上的部分 BW16 模块可能内置了默认的 B&T 轫体,轫体信息如下图所示:

bw16-get-start-10

这将导致 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上传回模块。

bw16-get-start-11

步骤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

  1. “Chip Select” 选项中, 选择 “AmebaD(8721D)”

  2. 选择您正在使用的正确 COM 端口

  3. Set the Baudrate to 115200.

  4. 然后从Memory Address 0x0800 0000 开始键入Flash Erase 起始位置

  5. 具体内存大小为2048 KB

  6. 首先将模块设置为“Download mode”,然后单击“Erase”按钮

    bw16-get-start-12

完成上面的清除并按重置按钮后,我们可以发现“#calibration”不再弹出,只有“#”出现在serial monitor中。

bw16-get-start-13

步骤3 – 使用Arduino IDE 下载 Image

现在您可以在 Arduio IDE 中通过 UART 下载程序。为了上传程序,您可以选择使用连接到 D0 和 D1 的外部 USB-to-UART 模块,或短接如下所示的引脚以使用板载 USB:

bw16-get-start-5
D1 ––– D5
D0 ––– 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”:

bw16-get-start-14

Arduino IDE 打开一个带有完整范例代码的新视窗。

bw16-get-start-15

小技巧

BW16 的开发板上带有板载 LED, 默认的”LED_BUILTIN”代表绿色板载 LED。将”LED_BUILTIN”更改为”LED_B”或”LED_R”则可以将颜色转换为蓝色或者红色。

这里,我们使用LED_B为例。

接下来,我们直接编译范例代码,点击“Sketch”->“Verify/Compile”

bw16-get-start-16

Arduino IDE在IDE窗口的底部区域打印编译消息。编译完成后,会得到如下图所示的消息:

bw16-get-start-17

之后,我们将把编译后的代码上传到 BW16。

请确保 BW16 已连接到您的电脑,然后单击“Sketch” -> “Upload”。

Arduino IDE将先编译,然后上传。在上传过程中,用户需要将开发板调至上传模式。要进入上传模式,首先按住RTL8720DN(BW16)“Burn”键,按下“RST”键,然后松开“Burn”键。

bw16-get-start-18

请确保 BW16 已连接到您的电脑,然后单击“Sketch” -> “Upload”。有一个5秒的倒计时提醒您進入上傳模式。

bw16-get-start-19

同样,在上传过程中IDE会自动显示消息。上传过程需要相当长的时间(大约30秒到1分钟)。上传完成后,您会看到“Done uploading”消息。

参考

  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

(End)


备注

If you face any issue, please refer to the FAQ and Trouble shooting sections on 支援 page.