入門指南
Ameba ARDUINO: Getting Started with BW16
工作環境
BW16 雙頻 Wi-Fi 開發板目前支援 Windows XP/7/8/10 32 位元和 64 位元作業系統。在本文檔中,請使用 1.8.15 或更高版本的 Arduino IDE。
BW16 介紹
Realtek RTL8720DN 是一款 Wi-Fi 和藍牙IC, 支持2.4GHz和 5GHz 雙頻 Wi-Fi 通信,以及藍牙低能耗 (BLE)5.0。BW16 是深川市博安通科技股份有限公司 (B&T)生產的模塊,該模塊是以 RTL8720DN SoC 爲主的 Wi-Fi 和藍牙模塊它可以被看作是與典型 SBC 一起用於 Wi-Fi 和藍牙應用的SoC。
如上圖所示,BW16 的尺寸小於我們以往介紹的 AMB21 和 AMB23 開發板。它使用 Micro USB 接口供電,這種供電方式在許多智能設備中很常見。BW16 的引腳圖和功能請參考下圖和表格。
# |
PIN name |
GPIO |
ADC |
PWM |
UART |
SPI |
I2C |
|---|---|---|---|---|---|---|---|
D0(PA7) |
GPIOA_7 |
✓ |
UART_LOG_TX |
||||
D1(PA8) |
GPIOA_8 |
✓ |
UART_LOG_RX |
||||
D2(PA27) |
GPIOA_27 |
✓ |
|||||
D3(PA30) |
GPIOA_30 |
✓ |
|||||
D4(PB1) |
GPIOB_1 |
✓ |
Serial_TX |
||||
D5(PB2) |
GPIOB_2 |
✓ |
Serial_RX |
||||
D6(PB3) |
GPIOB_3 |
✓ |
A2 |
||||
D7(PA25) |
GPIOA_25 |
✓ |
I2C0_CLK |
||||
D8(PA26) |
GPIOA_26 |
✓ |
✓ |
I2C0_SDA |
|||
D9(PA15) |
GPIOA_15 |
✓ |
SPI_CS |
||||
D10(PA14) |
GPIOA_14 |
✓ |
SPI_CLK |
||||
D11(PA13) |
GPIOA_13 |
✓ |
✓ |
SPI_MISO |
|||
D12(PA12) |
GPIOA_12 |
✓ |
✓ |
SPI_MOSI |
設置開發環境
步驟一、安裝驅動程序
首先,通過 Micro USB 將 BW16 連接到電腦:
如果這是您第一次將 BW16 連接到電腦,請注意以下事項。
從上面的引腳圖中,我們知道引腳 D0 和 D1可以被用於程序上傳。但是,根據安信可的原理圖設計,板載USB轉UART模組連接到引腳 D4 和 D5,因此該USB轉UART模組並不能直接用於程式上傳。
或者,您也可以按照下表中所示,將引脚短接後使用板載的USB轉UART模塊進行程式碼上傳
用USB將開發板連接至電腦後,電腦將自動安裝用於BW16/RTL8720DN的USB驅動程序。
如果您在安裝驅動時遇到任何與開發板的連接問題,請前往 http://www.wch-ic.com/downloads/CH341SER_ZIP.html 網址下載USB驅動程式。
安裝完成後,您可以在電腦 裝置管理員 中檢查 COM 端口以確認驅動安裝正確,電腦可以識別BW16開發板:
步驟二、設定 Arduino IDE
從 1.6.5 版本開始,Arduino IDE 支持第三方硬件。因此,我們可以使用Arduino IDE在RTL8720DN(BW16)開發應用程序,Arduino的基本範例也可以在 BW16 上運行。請參閱 基本範例 。
Arduino IDE可以在 Arduino 網站 下載。
安裝完成後,打開Arduino IDE。為了在Arduino IDE中正常使用 BW16,請打開“File” -> “Preferences”。
並將以下 URL 複製到 “Additional Boards Manager URLs” 欄位:
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json
從 v3.0.8版本開始,Ameba Arduino將正式支持 BW16 開發板。
接下來,打開Arduino IDE 中 “Tools”->”Board”->”Boards Manager”:
“Boards Manager”大約需要10~20秒來刷新所有硬件文件(如果網絡狀況不好,可能需要更長的時間)。每次連接新硬件時,我們都需要重新打開Boards Manager。因此,我們先關閉然後再次打開它。在列表中找到 “Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)” ,點擊 “Install” ,Arduino IDE會自動開始下載AmebaD所需的文件。
如果您遇到 GitHub 下載問題,請參考以下 Download/Software Development Kit 中的鏈接。有3個部分。
“AmebaD_Arduino_patch1_SDK”,請至少選擇 1 個 SDK。目前有 5 個最新發布的 SDK 選項。
“AmebaD_Arduino_patch2_Tools”,請根據您的作業系統進行選擇。有 Windows、Linux 和 MacOS。
“AmebaD_Arduino_Source_Code”,此部分為可選下載,用來參考最新原始碼。
下載選擇的文件,然後解壓(patch1 和patch2 是必須的)。有“Install_中文.doc”/“Install_中文.pdf”供您參考安裝步驟。根據您的系統,請運行“Offline_SDK_installation_tool”文件夾中的安裝工具。
安裝工具運行成功後,您可以打開Arduino IDE並選擇 “tools” -> “Board“ -> “Boards Manager…”。嘗試在列表中找到“Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)”,點擊“Install”,Arduino IDE開始下載AmebaD所需的文件。
最後,我們在“tools”->“Board”->“Ameba ARM (32-bits) Boards”->” RTL8720DN(BW16)”中選擇了AmebaD作為當前連接的開發板:
如何更新BW16軔體
根據生產批次的不同,開發板上的部分 BW16 模塊可能內置了默認的 B&T 軔體,軔體信息如下圖所示:
這將導致 Arduino Image 無法寫入模塊。 雖然有“All images are sent successfully! Image tool closed! Upload Image did.”的信息。但無法清除出廠Image,按下板載 RST 按鈕後,您會發現出廠Image仍然保留著。
Arduino IDE提供了很多內置的範例,可以在開發板上直接編譯、上傳和運行。這裡,我們以“Blink”為例進行第一次嘗試。
打開 “File” -> “Examples” -> “01.Basics” -> “Blink”:
解決上傳方法
方法1 – 使用AmebaD Image Tool清除Flash
B&T預設軔體可以通過Realtek提供的Image Tool使用“Erase”功能來進行更新。使用 Image Tool 從記憶體位址 0x8000_0000 開始清除Flash image,直到 2MB 內存位置結束,稍後,我們需要使用 Arduino IDE 再次將 Realtek image上傳回模塊。
步驟1 -下載並準備 Image Tool.
從 ambiot GitHub 的鏈接下載 ambd_sdk: https://github.com/ambiot/ambd_sdk 。
Realtek 的 Image Tool 可以在以下文件路徑下找到
步驟2 – 設定 Image Tool
“Chip Select” 選項中, 選擇 “AmebaD(8721D)”
選擇您正在使用的正確 COM 端口
Set the Baudrate to 115200.
然後從Memory Address 0x0800 0000 開始鍵入Flash Erase 起始位置
具體內存大小為2048 KB
首先將模塊設置為“Download mode”,然後單擊“Erase”按鈕
完成上面的清除並按重置按鈕後,我們可以發現“#calibration”不再彈出,只有“#”出現在serial monitor中。
步驟3 – 使用Arduino IDE 下載 Image
現在您可以在 Arduio IDE 中通過 UART 下載程序。 為了上傳程序,您可以選擇使用連接到 D0 和 D1 的外部 USB-to-UART 模塊,或短接如下所示的引腳以使用板載 USB:
D1 ––– D5D0 ––– D4
解決上傳方法
OTA (Over The Air)
Ai-Thinker 在 B&T 《RTL8720D AT Command User Manual》的 6.1 節中提供了 OTA 軔體上傳指南,可從以下鏈接獲取:https://docs.ai-thinker.com/_media/rtl8710/docs/rtl8720d-at%E6%8C%87%E4%BB%A4%E6%89%8B%E5%86%8Cv2.4.1-20190814.pdf.
嘗試第一個範例
步驟一、編譯和上傳
Arduino IDE提供了很多內置的範例,可以在開發板上直接編譯、上傳和運行。這裡,我們以“Blink”為例進行第一次嘗試。
打開 “File” -> “Examples” -> “01.Basics” -> “Blink”:
Arduino IDE 打开一个带有完整范例代码的新视窗。
小訣竅
BW16 的開發板上帶有板載 LED, 默認的”LED_BUILTIN”代表綠色板載 LED。將”LED_BUILTIN”更改為”LED_B”或”LED_R”則可以將顔色轉換爲藍色或者紅色。這裡,我們使用LED_B為例。
这里,我们使用LED_B为例。
接下來,我們直接編譯範例代碼,點擊“Sketch”->“Verify/Compile”
Arduino IDE在IDE窗口的底部區域打印編譯消息。編譯完成後,會得到如下圖所示的消息:
之後,我們將把編譯後的代碼上傳到 BW16。
請確保 BW16 已連接到您的電腦,然後單擊“Sketch” -> “Upload”。
Arduino IDE將先編譯,然後上傳。在上傳過程中,用戶需要將開發板調至上傳模式。要進入上傳模式,首先按住 BW16 “Burn”鍵,按下“RST”鍵,然後鬆開“Burn”鍵。
請確保 BW16 已連接到您的電腦,然後單擊“Sketch” -> “Upload”。有一個5秒的倒計時提醒您進入上傳模式。
同樣,在上傳過程中IDE會自動顯示消息。上傳過程需要相當長的時間(大約30秒到1分鐘)。上傳完成後,您會看到“Done uploading”消息。
步驟二、運行Blink範例
在每個範例中,Arduino不僅提供了範例代碼,還提供了詳細的文檔,包括接線圖、範例代碼說明、技術細節等。這些範例可以直接用於 BW16。
在這裡我們可以找到Blink這個範例的詳細信息: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
簡而言之,對於RTL8720DN,該範例可以在板載RGB LED或外接LED(使用任何GPIO引腳進行信號輸出)上運行。最後,按RST按鈕,你就會看到LED開始閃爍。
參考
Introduction of BW16 on Instructable: https://www.instructables.com/RTL8720DN/
Load Arduino image into BW16: How to load BW16 program with Arduino – #13
BW16 IMG2 SIGN Invalid Solution: RTL8720DN(BW16) IMG2 SIGN Invalid Solution
FTDI Driver Download from here: https://ftdichip.com/wp-content/uploads/2021/02/CDM21228_Setup.zip
(End)
備註
如果您遇到任何問題,請參考故障排除 支援 的頁面


















