入門指南

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-get-start-1

如上圖所示,BW16 的尺寸小於我們以往介紹的 AMB21 和 AMB23 開發板。它使用 Micro USB 接口供電,這種供電方式在許多智能設備中很常見。BW16 的引腳圖和功能請參考下圖和表格。

bw16-get-start-2

#

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-get-start-3

如果這是您第一次將 BW16 連接到電腦,請注意以下事項。

從上面的引腳圖中,我們知道引腳 D0 和 D1可以被用於程序上傳。但是,根據安信可的原理圖設計,板載USB轉UART模組連接到引腳 D4 和 D5,因此該USB轉UART模組並不能直接用於程式上傳。

bw16-get-start-4

或者,您也可以按照下表中所示,將引脚短接後使用板載的USB轉UART模塊進行程式碼上傳

D1 ––– D5
D0 ––– D4

bw16-get-start-5

用USB將開發板連接至電腦後,電腦將自動安裝用於BW16/RTL8720DN的USB驅動程序。

如果您在安裝驅動時遇到任何與開發板的連接問題,請前往 http://www.wch-ic.com/downloads/CH341SER_ZIP.html 網址下載USB驅動程式。

安裝完成後,您可以在電腦 裝置管理員 中檢查 COM 端口以確認驅動安裝正確,電腦可以識別BW16開發板:

bw16-get-start-6

步驟二、設定 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”:

bw16-get-start-7

“Boards Manager”大約需要10~20秒來刷新所有硬件文件(如果網絡狀況不好,可能需要更長的時間)。每次連接新硬件時,我們都需要重新打開Boards Manager。因此,我們先關閉然後再次打開它。在列表中找到 “Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)” ,點擊 “Install” ,Arduino IDE會自動開始下載AmebaD所需的文件。

bw16-get-start-8

如果您遇到 GitHub 下載問題,請參考以下 Download/Software Development Kit 中的鏈接。有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“ -> “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-get-start-9

如何更新BW16軔體

根據生產批次的不同,開發板上的部分 BW16 模塊可能內置了默認的 B&T 軔體,軔體信息如下圖所示:

bw16-get-start-10

這將導致 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上傳回模塊。

bw16-get-start-11

步驟1 -下載並準備 Image Tool.

從 ambiot GitHub 的鏈接下載 ambd_sdk: https://github.com/ambiot/ambd_sdk

Realtek 的 Image Tool 可以在以下文件路徑下找到

步驟2 – 設定 Image Tool

  1. “Chip Select” 選項中, 選擇 “AmebaD(8721D)”

  2. 選擇您正在使用的正確 COM 端口

  3. Set the Baudrate to 115200.

  4. 然後從Memory Address 0x0800 0000 開始鍵入Flash Erase 起始位置

  5. 具體內存大小為2048 KB

  6. 首先將模塊設置為“Download mode”,然後單擊“Erase”按鈕

    bw16-get-start-12

完成上面的清除並按重置按鈕後,我們可以發現“#calibration”不再彈出,只有“#”出現在serial monitor中。

bw16-get-start-13

步驟3 – 使用Arduino IDE 下載 Image

現在您可以在 Arduio IDE 中通過 UART 下載程序。 為了上傳程序,您可以選擇使用連接到 D0 和 D1 的外部 USB-to-UART 模塊,或短接如下所示的引腳以使用板載 USB:

bw16-get-start-5
D1 ––– D5
D0 ––– 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”:

bw16-get-start-14

Arduino IDE 打开一个带有完整范例代码的新视窗。

bw16-get-start-15

小訣竅

BW16 的開發板上帶有板載 LED, 默認的”LED_BUILTIN”代表綠色板載 LED。將”LED_BUILTIN”更改為”LED_B”或”LED_R”則可以將顔色轉換爲藍色或者紅色。這裡,我們使用LED_B為例。

这里,我们使用LED_B为例。

接下來,我們直接編譯範例代碼,點擊“Sketch”->“Verify/Compile”

bw16-get-start-16

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

bw16-get-start-17

之後,我們將把編譯後的代碼上傳到 BW16。

請確保 BW16 已連接到您的電腦,然後單擊“Sketch” -> “Upload”。

Arduino IDE將先編譯,然後上傳。在上傳過程中,用戶需要將開發板調至上傳模式。要進入上傳模式,首先按住 BW16 “Burn”鍵,按下“RST”鍵,然後鬆開“Burn”鍵。

bw16-get-start-18

請確保 BW16 已連接到您的電腦,然後單擊“Sketch” -> “Upload”。有一個5秒的倒計時提醒您進入上傳模式。

bw16-get-start-19

同樣,在上傳過程中IDE會自動顯示消息。上傳過程需要相當長的時間(大約30秒到1分鐘)。上傳完成後,您會看到“Done uploading”消息。

參考

  1. Introduction of BW16 on Instructable: https://www.instructables.com/RTL8720DN/

  2. Load Arduino image into BW16: How to load BW16 program with Arduino – #13

  3. BW16 IMG2 SIGN Invalid Solution: RTL8720DN(BW16) IMG2 SIGN Invalid Solution

  4. FTDI Driver Download from here: https://ftdichip.com/wp-content/uploads/2021/02/CDM21228_Setup.zip

(End)


備註

如果您遇到任何問題,請參考故障排除 支援 的頁面