入门指南
Ameba ARDUINO: Getting Started with AMB23 (RTL8722DM MINI)
介绍
Ameba是一个易于编程的微控制器平台,可用于开发各种物联网应用程序。AmebaD有各种外围接口,包括WiFi, GPIO INT, I2C, UART, SPI, PWM, ADC。通过这些接口,AmebaD可以连接LED、开关、压力计、湿度计、PM2.5粉尘传感器等电子元件。
Ameba所收集的数据可以通过WiFi无线上传,并被智能设备上的应用程序使用,实现物联网的应用。

AMB23使用Micro USB来供电,这在许多智能设备中很常见。AMB23的引脚图和功能请参考下图和表格。

# |
GPIO Pin |
GPIO INT |
ADC |
PWM |
UART |
SPI |
I2C |
LED |
Button |
SWD |
---|---|---|---|---|---|---|---|---|---|---|
0 |
PB0 |
✓ |
I2C_SDA (a) |
|||||||
1 |
PB1 |
✓ |
A4 |
SERIAL2_TX (a) |
||||||
2 |
PB2 |
✓ |
A5 |
SERIAL2_RX (a) |
||||||
3 |
PB3 |
✓ |
A6 |
SWD_CLK |
||||||
4 |
PB4 |
✓ |
A0 |
✓ |
SPI_MOSI (b) |
|||||
5 |
PB5 |
✓ |
A1 |
✓ |
SPI_MISO (b) |
I2C_SCL (b) |
||||
6 |
PB6 |
✓ |
A2 |
SPI_SCLK (b) |
I2C_SDA (b) |
|||||
7 |
PB7 |
✓ |
A3 |
✓ |
SPI_SS (b) |
|||||
8 |
PA2 |
✓ |
||||||||
9 |
PA12 |
✓ |
✓ |
SERIAL2_TX (b) |
SPI_MOSI (a) |
|||||
10 |
PA13 |
✓ |
✓ |
SERIAL2_RX (b) |
SPI_MISO (a) |
|||||
11 |
PA14 |
✓ |
SPI_SCLK (a) |
|||||||
12 |
PA15 |
✓ |
SPI_SS (a) |
|||||||
13 |
PA16 |
✓ |
||||||||
14 |
PA28 |
✓ |
||||||||
15 |
PA18 |
✓ |
SERIAL1_TX (b) |
|||||||
16 |
PA25 |
✓ |
SERIAL1_RX (b) |
|||||||
17 |
PA26 |
✓ |
✓ |
|||||||
18 |
PB7 |
✓ |
A3 |
SERIAL1_TX (a) |
||||||
19 |
PB6 |
✓ |
A2 |
SERIAL1_RX (a) |
||||||
20 |
PB5 |
✓ |
A1 |
✓ |
I2C1_SCL |
|||||
21 |
PB4 |
✓ |
A0 |
✓ |
I2C1_SDA |
|||||
22 |
PA28 |
✓ |
I2c_SCL (a) |
|||||||
SWD |
PA27 |
SWD_DATA |
||||||||
LED_B |
||||||||||
LED_G |
||||||||||
PUSH_BTN |
设置开发环境
步骤1: 环境配置
AMB23 开发板目前支持 Windows OS 32 位元和 64 位元 (WIN 7/8/10) ,Linux OS (Ubuntu 18LTS/20LTS/最新) 和 macOS 作业系统。请使用最新的作业系统版本以获得最佳体验。在本文档中,请使用最新版本的 Arduino IDE (至少 1.8.12版)。
Step 2. Installing the Driver
首先,通过Micro USB将RTL8722DM MINI连接到电脑:

如果这是您第一次将AMB23连接到您的电脑,那么RTL8722DM MINI的USB驱动程序将自动安装。
如果遇到开发板连接到电脑的驱动程序问题,请参考下列USB 驱动程序 https://ftdichip.com/drivers /。
你可以在你电脑的 装置管理员 中检查 COM 端口号:

Step 3. Set up Arduino IDE
从1.6.5版本开始,Arduino IDE支持第三方硬件。因此,我们可以使用Arduino IDE在 AMB23上开发应用程序,Arduino的示例也可以在 AMB23 上运行。请参考基本范例:https://www.amebaiot.com.cn/amebad-mini-arduino-compatible-ex/
Arduino IDE可以在Arduino网站下载:https://www.arduino.cc/en/Main/Software
安装完成后,打开Arduino IDE。为了在Arduino IDE中正常使用RTL8722DM MINI,请打开 “File”—>“Preferences”。

并将以下网址粘贴到“Additional Boards Manager URLs” 栏位:
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json
接下来,选择 “Tools” -> “Board” -> “Boards Manager”:

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

如果您遇到 GitHub 下载问题,请参考以下“下载/软体开发套件”中的链接。 有3个部分。
“AmebaD_Arduino_patch1_SDK”,请至少选择 1 个 SDK。 目前有 5 个最新发布的 SDK 选项。
“AmebaD_Arduino_patch2_Tools”,请根据您的作业系统进行选择。 有 Windows、Linux 和 MacOS。
“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” -> “AMB23 (RTL8722DM_MINI)”。
最后,我们在“tools”->“Board”->“Ameba ARM (32-bits) Boards”->” RTL8722DM MINI”中选择了AmebaD作为当前连接的开发板:

尝试新范例
Step 1. 编译 & 上传
Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开“File”->“Examples”->“ 01.Basics”-> “Blink”:

Arduino IDE打开一个带有完整示例代码的新视窗。开发板上AMB23的LED,默认“LED_BUILTIN”是蓝色的LED将“LED_BUILTIN”更改为“LED_B”或“LED_G”以使用不同的颜色。板载LED选项LED_B和LED_G。 (蓝色和绿色)。

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

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

之后,我们将把编译后的代码上传到开发板。请确保开发板已连接到您的电脑,然后单击“Sketch” -> “Upload”。Arduino IDE将先编译,然后上传。用户需要将开发板调至上传模式。要进入上传模式,首先按住 UART_DOWNLOAD 按钮,然后按下并松开 RESET 按钮,最后松开 UART_DOWNLOAD 按钮。设置了 5 秒倒计时提醒进入上传模式。


用户可选择检查开发板是否进入上传模式。打开串行监视器并查找“#Flash Download Start”。
备注
某些串口终端可能会显示如下图所示的未知字符是正常的。

同样,在上传过程中IDE会自动显示消息。上传过程需要相当长的时间(大约30秒到1分钟)。上传完成后,您会看到“Done uploading”消息。
Step 2.运行Blink示例
在每个示例中,Arduino不仅提供了示例代码,还提供了详细的文档,包括接线图、示例代码说明、技术细节等。这些示例可以直接用于 AMB23。
在这里我们可以找到Blink这个示例的详细信息:https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
简而言之,对于 AMB23,该示例可以在板上LED(绿色或蓝色)或外部LED(使用任何GPIO引脚进行信号输出)上运行。
备注
如果您遇到任何问题,请参考Q&A。