Ameba ARDUINO: Getting Started with AMB21/AMB22 (RTL8722)
介绍
Ameba是一个易于编程的微控制器平台,可用于开发各种物联网应用程序。
AMB21/AMB22有各种外围接口,包括WiFi, GPIO INT, I2C, UART, SPI, PWM, ADC。通过这些接口,AMB21/AMB22可以连接LED、开关、压力计、湿度计、PM2.5粉尘传感器等电子元件。
Ameba所收集的数据可以通过WiFi无线上传,并被智能设备上的应用程序使用,实现物联网的应用。
AMB21/AMB22和Arduino Uno的尺寸类似,如上图所示,并且AMB21/AMB22上的引脚与Arduino Uno兼容。
AMB21/AMB22使用Micro USB来供电,这在许多智能设备中很常见。
引脚图和功能请参考下图和表格。
GPIO pin | GPIO INT | ADC | PWM | UART | SPI | I2C | IR | SWD | |
0 | PB2 | ✓ | A5 | SERIAL2_RX (b) | |||||
1 | PB1 | ✓ | A4 | SERIAL2_TX (b) | |||||
2 | PB3 | ✓ | A6 | SWD_CLK (b) | |||||
3 | PB31 | ✓ | IR_TX (c) | ||||||
4 | PB30 | ✓ | |||||||
5 | PB28 | ✓ | |||||||
6 | PB29 | ✓ | IR_RX (c) | ||||||
7 | NC | ||||||||
8 | PB22 | ✓ | ✓ | IR_RX (a) | |||||
9 | PB23 | ✓ | ✓ | IR_TX (a) | |||||
10 | PB21 | ✓ | ✓ | SERIAL1_RTS (b) | SPI_SS | ||||
11 | PB18 | ✓ | ✓ | SERIAL1_RX (b) | SPI_MOSI | SWD_CLK (a) | |||
12 | PB19 | ✓ | ✓ | SERIAL1_TX (b) | SPI_MISO | SWD_DATA | |||
13 | PB20 | ✓ | ✓ | SERIAL1_CTS (b) | SPI_SCLK | ||||
14 | PA7 | ✓ | LOG_TX | ||||||
15 | PA8 | ✓ | LOG_RX | ||||||
16 | PA25 | ✓ | ✓ | SERIAL2_RX (a) | I2C_SCL (a) | IR_TX (b) | |||
17 | PA26 | ✓ | ✓ | SERIAL2_TX (a) | I2C_SDA (a) | IR_RX (b) | |||
18 | PB7 | ✓ | A3 | ✓ | SPI1_SS | ||||
19 | PB6 | ✓ | A2 | SPI1_SCLK | I2C_SDA (b) | ||||
20 | PB5 | ✓ | A1 | ✓ | SPI1_MISO | I2C_SCL (b) | |||
21 | PB4 | ✓ | A0 | ✓ | SPI1_MOSI | ||||
22 | PA28 | ✓ | |||||||
23 | PA24 | ✓ | ✓ | SERIAL1_CTS (a) | I2C1_SDA | ||||
24 | PA23 | ✓ | ✓ | SERIAL1_RTS (a) | I2C1_SCL | ||||
25 | PA22 | ✓ | SERIAL1_RX (a) | ||||||
26 | PA21 | ✓ | SERIAL1_TX (a) | ||||||
27 | PA20 | ✓ | |||||||
28 | PA19 | ✓ |
设置开发环境
步骤1. 环境配置
AMB21/AMB22 (RTL8722CSM/RTL8722DM) 开发板目前支持 Windows OS 32 位元或 64 位元、Linux OS (Ubuntu) 和 macOS。为了获得最佳体验,请使用最新版本的作业系统。
任何 Linux 作业系统 (Ubuntu) 相关问题,请参考 https://forum.amebaiot.com/t/ubuntu-linux-environment/2259。
任何 macOS 作业系统相关问题,请参考 https://forum.amebaiot.com/t/macos-environment/2260。
步骤2: 安装驱动程序
首先,通过Micro USB将AMB21/AMB22连接到电脑:
如果这是您第一次将AMB21/AMB22连接到您的电脑,那么AMB21/AMB22的USB驱动程序将自动安装。
如果遇到开发板连接到电脑的驱动程序问题,请参考下列USB 驱动程序https:// ftdichip.com/drivers /。
在你的电脑的设备管理器中检查COM端口号:
步骤3: 设置Arduino IDE
从1.6.5版本开始,Arduino IDE支持第三方硬件。因此,我们可以使用Arduino IDE在AmebaD上开发应用程序,Arduino的示例也可以在AMB21/AMB22上运行。 Arduino IDE可以在Arduino网站下载:
https://www.arduino.cc/en/Main/Software
安装完成后,打开Arduino IDE。为了在Arduino IDE中正常使用AMB21/AMB22,请打开“File”—>“Preferences”。
并将以下网址粘贴到 “Additional Boards Manager URLs” 栏位:
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json
接下来,选择 “Tools” -> “Board” -> “Boards Manager”:
“Boards Manager”大约需要10~20秒来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。每次连接新硬件时,我们都需要重新打开Boards Manager。在列表中找到“Realtek Ameba Boards”,点击“Install”,Arduino IDE会自动开始下载AmebaD所需的文件。
如果您遇到 GitHub 下载问题,请参考以下“下载/软体开发套件”中的链接。有3个部分。
1. “AMB21/AMB22_Arduino_patch1_SDK”,请至少选择 1 个 SDK。目前有 5 个最新发布的 SDK 选项。
2. “AMB21/AMB22_Arduino_patch2_Tools”,请根据您的作业系统进行选择。有 Windows、Linux 和 MacOS。
3. “AMB21/AMB22_Arduino_Source_Code”,此部分为可选下载,用来参考最新原始码。
https://www.amebaiot.com.cn/cn/ameba-arduino-summary/
下载选择的文件,然后解压(patch1 和patch2 是必须的)。有“Install_中文.doc”/“Install_中文.pdf”供您参考安装步骤。根据您的系统,请运行“Offline_SDK_installation_tool”文件夹中的安装工具。
安装工具运行成功后,您可以打开Arduino IDE并选择 “tools” -> “Board“ -> “Boards Manager…”。
尝试在列表中找到“Realtek Ameba Boards”,点击“Install”,Arduino IDE开始下载AMB21/AMB22所需的文件。
最后,我们在“tools” -> “Board” -> “Ameba ARM (32-bits) Boars” -> “AMB21/AMB22 (RTL8722DM/CSM)”中选择当前连接的开发板:
测试第一个示例
步骤1: 编译并上传
Arduino IDE提供了很多内置的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开“File”->“Examples”->“ 01.Basics”-> “Blink”:
Arduino IDE打开一个带有完整示例代码的新窗口。
接下来,我们直接编译示例代码,点击“Sketch”->“Verify/Compile”。
Arduino IDE在IDE窗口的底部区域打印编译消息。编译完成后,会得到如下图所示的消息:
之后,我们将把编译后的代码上传到开发板。请确保开发板已连接到您的电脑,然后单击“Sketch” -> “Upload”。
Arduino IDE将首先编译,然后上传。用户需要将开发板调至上传模式。要进入上传模式,首先按住 UART_DOWNLOAD 按钮,然后按下并松开 RESET 按钮,最后松开 UART_DOWNLOAD 按钮。设置了 5 秒倒计时提醒进入上传模式。
用户可选择检查开发板是否进入上传模式。打开串行监视器并查找“#Flash Download Start”。请注意,某些串口终端可能会显示如下图所示的字符。
同样,在上传过程中IDE会自动显示消息。上传过程需要相当长的时间(大约30秒到1分钟)。上传完成后,您会看到“Done uploading”消息。
步骤2: 运行Blink示例
在每个示例中,Arduino不仅提供了示例代码,还提供了详细的文档,包括接线图、示例代码说明、技术细节等。这些示例可以直接用于AMB21/AMB22。在这里我们可以找到Blink这个示例的详细信息:
https://www.arduino.cc/en/Tutorial/Blink
简而言之,这个示例会使LED不停地闪烁。它使用的是GPIO引脚08(参考引脚图D08)。我们把LED和电阻连接起来。如下图所示另外,请在 LED 和 GND 之间串联一个电阻合适的电阻。
最后,按RESET按钮,你就会看到LED开始闪烁。
如果您遇到任何问题,请参考Q&A。
特色介绍
Erase Flash
• Enable: 清除快闪记忆体中的image而不上传当前image。
• Disable: 编译完成后上传使用者代码。
“Erase Flash”预设选择为“Disable”来上传使用者代码。
Standard Lib Enable
• Arduino_STD_PRTINF: 使用 printf 时启用 Arduino avr“stdio.h”和“#include ”
• NA: 使用 printf() 基于标准 sdk _rtl_printf()
“Standard Lib Enable”预设选择为“NA”。
Upload Speed
选择上传 baudrate 为 1,500,000 或 921,600。