Ameba ARDUINO: Getting Started with AMB25
介绍
Realtek RTL8720DF 是一款 Wi-Fi 和蓝牙 IC,支持 2.4GHz 和 5GHz 双频 Wi-Fi 通信,以及蓝牙低功耗 (BLE) 5.0。该模组是以RTL8720DF为主要SoC(System on Chip)的高度集成的Wi-Fi和蓝牙模块,可以看作是典型SBC的Wi-Fi和蓝牙应用的SoC。
AMB25 是与模块集成的开发板。 AMB25 使用 USB TypeC 连接器,且具有自动上传电路。
AMB25 开发板
开发板的尺寸为 50.7*17.8 mm。它使用TypeC USB供电,这在很多智能设备中都很常见。
AMB25 的引脚图和功能请参考下图和下表。
AMB25 Pinmap
GPIO pin | GPIO INT | ADC | PWM | UART | SPI | I2C | IR | SWD | |
0 | PA15 | ✓ | SPI1_SS | ||||||
1 | PA14 | ✓ | SPI1_SCLK | ||||||
2 | PA13 | ✓ | ✓ | SERIAL2_RX | SPI1_MISO | ||||
3 | PA12 | ✓ | ✓ | SERIAL2_TX | SPI1_MOSI | ||||
4 | PA30 | ✓ | ✓ | ||||||
5 | PA28 | ✓ | ✓ | ||||||
6 | PA26 | ✓ | ✓ | I2C_SDA | IR_RX (a) | ||||
7 | PA25 | ✓ | ✓ | I2C_SCL | IR_TX (a) | ||||
8 | PA27 | ✓ | SWD_DATA | ||||||
9 | PB3 | ✓ | A6 | SWD_CLK | |||||
10 | PB2 | ✓ | A5 | ||||||
11 | PB1 | ✓ | A4 | ||||||
12 | PA7 | ✓ | LOG_TX | ||||||
13 | PA8 | ✓ | LOG_RX | ||||||
14 | PB23 | ✓ | ✓ | IR_TX (b) | |||||
15 | PB22 | ✓ | ✓ | IR_RX (b) | |||||
16 | PB19 | ✓ | ✓ | SERIAL1_TX | SPI_MISO | ||||
17 | PB18 | ✓ | ✓ | SERIAL1_RX | SPI_MOSI | ||||
18 | PB21 | ✓ | ✓ | SPI_SS | |||||
19 | PB20 | ✓ | ✓ | SPI_SCLK |
除了 USB 连接器外,还有 2 个按钮。如上图所示,左侧为“RST”按钮,右侧为“Burn”按钮。有关按钮的功能,请参阅下表。
Button Functions | Button Process |
Reset board | 1. Press then release “RST” |
Enter upload mode | 1. Press and hold “Burn” 2. Press then release “RST” 3. Release “Burn” |
清除flash或上传固件时,开发板需要进入上传模式。 AMB25 有自动上传电路。它不需要手动进入上传模式。
设置开发环境
步骤一、 环境配置
AMB25 (RTL8720DF) 开发板目前支持 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。
步骤二、 设定 Arduino IDE
从 1.6.5 版本开始,Arduino IDE 支持第三方硬件。 Arduino IDE用于在开发板上开发应用程序,以及Arduino基本范例(请参考 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_amebad_index.json
接下来,打开 “Tools” -> “Board” -> “Boards Manager”:
“Boards Manager”大约需要几秒钟来刷新所有硬件文件(如果网络状况不好,可能需要更长的时间)。在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,点击“Install”,Arduino IDE会自动开始下载AmebaD包含AMB25所需的文件。
如果您遇到 GitHub 下载问题,请参考以下连结 中的“下载/软体开发套件”。有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” -> “Ameba ARM (32-bits) Boards” ->” AMB25/AMB26 (RTL8720DF)” 来选择AmebaD作为当前连接的开发板。
步骤三、 安装串行端口
首先,通过 TypeC USB 将开发板连接到电脑。
对应连接后,会自动安装USB驱动。如果连接板有驱动问题,请到https://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41l 参考 PLC2303GC 驱动程序。在 Windows 作业系统的装置管理员中检查 COM 端口号:
到“Tools”->“Port”并选择正确的 COM 端口。
进入“Tools”->“Serial Monitor”,将baud rate设置为“115200”,然后按RST按钮检查串口连接。
步骤四、 清除 flash
根据生产批次的不同,部分开发板在使用前需要先做清除动作。
选择“Tools”->“Erase Flash”->“Enable”
然后进入上传模式。
• 手动。按住“Burn”按钮,按下然后放开“RST”按钮并放开“Burn”按钮。
• 自动。选择“Tools”->“Auto Upload Mode”->“Enable”。注意只有内置自动上传电路的板子才能使用自动上传模式,否则会回到正常上传模式并等待5秒。
接下来,选择“Sketch”->“Upload”。 “Erase flash done” 会出现。
按RST按钮来检查串行监视器和重制开发板。如果只有“#”表示清除flash成功。记得选择“Tools”->“Erase Flash”->“Disable”。
尝试操作范例
步骤一、 编译与上传
Arduino IDE提供了很多内建的范例,可以在开发板上直接编译、上传和运行。这里,我们以“Blink”为例进行第一次尝试。
打开 “File” -> “Examples” -> “01.Basics” -> “Blink”:
这里没有“LED_BUILTIN”,必须重新定义任何 GPIO 引脚作为 LED 输出。
然后如图所示将 LED 连接到板上。
接下来,直接编译范例代码。 “Sketch”->“Verify/Compile”。然后如果没有编译错误,接着“Sketch”->“Upload”。
• 检查并选择 “Tools” -> “Erase Flash” -> “Disable”。
• 进入上传模式。手动或自动。选择 “Tools” -> “Auto Upload Mode” -> “Enable”/ ”Disable”。
• “Verify/Compile” 和 “Upload”. “Upload” 包括 “Verify/Compile”, “Verify/Compile” 可以跳过。
上传成功会显示“All images are sent successfully!”
步骤二、 执行 Blink 范例
板子将自动重置,如果板子不支持自动上传模式,请按 RST 按钮。板载 RGB LED 将闪烁。
在每个范例中,Arduino 不仅提供了范例代码,还提供了详细的文档,包括接线图、范例代码说明、技术细节等。这些范例可以直接在此版上使用。请参阅以下连结中的 Blink 详细信息:
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
特色介绍
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.