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無線上傳,並被智能設備上的應用程序使用,實現物聯網的應用。

get-start-1

AMB21/AMB22和Arduino Uno的尺寸類似,如上圖所示,並且AMB21/AMB22上的引腳與Arduino Uno兼容。

AMB21/AMB22使用Micro USB來供電,這在許多智能設備中很常見。
引腳圖和功能請參考下圖和表格。

get-start-2

 GPIO pinGPIO INTADCPWMUARTSPII2CIRSWD
0PB2A5 SERIAL2_RX (b)    
1PB1A4 SERIAL2_TX (b)    
2PB3A6     SWD_CLK (b)
3PB31     IR_TX (c) 
4PB30       
5PB28       
6PB29     IR_RX (c) 
7NC        
8PB22    IR_RX (a) 
9PB23    IR_TX (a) 
10PB21 SERIAL1_RTS (b)SPI_SS   
11PB18 SERIAL1_RX (b)SPI_MOSI  SWD_CLK (a)
12PB19 SERIAL1_TX (b)SPI_MISO  SWD_DATA
13PB20 SERIAL1_CTS (b)SPI_SCLK   
14PA7  LOG_TX    
15PA8  LOG_RX    
16PA25 SERIAL2_RX (a) I2C_SCL (a)IR_TX (b) 
17PA26 SERIAL2_TX (a) I2C_SDA (a)IR_RX (b) 
18PB7A3 SPI1_SS   
19PB6A2  SPI1_SCLKI2C_SDA (b)  
20PB5A1 SPI1_MISOI2C_SCL (b)  
21PB4A0 SPI1_MOSI   
22PA28       
23PA24 SERIAL1_CTS (a) I2C1_SDA  
24PA23 SERIAL1_RTS (a) I2C1_SCL  
25PA22  SERIAL1_RX (a)    
26PA21  SERIAL1_TX (a)    
27PA20       
28PA19       

設置開發環境

步驟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連接到電腦:

get-start-4

如果這是您第一次將AMB21/AMB22連接到您的電腦,那麼AMB21/AMB22的USB驅動程序將自動安裝。
如果遇到開發板連接到電腦的驅動程序問題,請參考下列USB 驅動程序https:// ftdichip.com/drivers /
在你的電腦的設備管理器中檢查COM端口號:

get-start-5

步驟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”。

get-start-6

並將以下網址粘貼到 “Additional Boards Manager URLs” 欄位:
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json

接下來,選擇 “Tools” -> “Board” -> “Boards Manager”:

get-start-7

“Boards Manager”大約需要10~20秒來刷新所有硬件文件(如果網絡狀況不好,可能需要更長的時間)。每次連接新硬件時,我們都需要重新打開Boards Manager。在列表中找到“Realtek Ameba Boards”,點擊“Install”,Arduino IDE會自動開始下載AmebaD所需的文件。

get-start-8

如果您遇到 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)”中選擇當前連接的開發板:

get-start-9

測試第一個示例

步驟1: 編譯並上傳

Arduino IDE提供了很多內置的範例,可以在開發板上直接編譯、上傳和運行。這裡,我們以“Blink”為例進行第一次嘗試。
打開“File”->“Examples”->“ 01.Basics”-> “Blink”:

get-start-10

Arduino IDE打開一個帶有完整示例代碼的新窗口。
接下來,我們直接編譯示例代碼,點擊“Sketch”->“Verify/Compile”。

get-start-12

Arduino IDE在IDE窗口的底部區域打印編譯消息。編譯完成後,會得到如下圖所示的消息:

get-start-13

之後,我們將把編譯後的代碼上傳到開發板。請確保開發板已連接到您的電腦,然後單擊“Sketch” -> “Upload”。

Arduino IDE將首先編譯,然後上傳。用戶需要將開發板調至上傳模式。要進入上傳模式,首先按住 UART_DOWNLOAD 按鈕,然後按下並鬆開 RESET 按鈕,最後鬆開 UART_DOWNLOAD 按鈕。 設置了 5 秒倒計時提醒進入上傳模式。

get-start-15

get-start-15

用戶可選擇檢查開發板是否進入上傳模式。打開串行監視器並查找“#Flash Download Start”。請注意,某些串口終端可能會顯示如下圖所示的字符。

get-start-15

同樣,在上傳過程中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 之間串聯一個電阻合適的電阻。

get-start-17

最後,按RESET按鈕,你就會看到LED開始閃爍。
如果您遇到任何問題,請參考Q&A。

特色介紹

Erase Flash

get-start-17

• Enable: 清除快閃記憶體中的image而不上傳當前image。
• Disable: 編譯完成後上傳使用者代碼。

“Erase Flash”預設選擇為“Disable”來上傳使用者代碼。

Standard Lib Enable

get-start-17

• Arduino_STD_PRTINF: 使用 printf 時啟用 Arduino avr“stdio.h”和“#include ”
• NA: 使用 printf() 基於標準 sdk _rtl_printf()

“Standard Lib Enable”預設選擇為“NA”。

Upload Speed

get-start-17

選擇上傳 baudrate 為 1,500,000 或 921,600。

請先確認已安裝QQ通訊軟體