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.