Ameba ARDUINO: Getting Started with BW16

使用環境配置

RTL8720DN雙頻Wi-Fi開發板目前支援Windows XP/7/8/10 32位元和64位元作業系統。 在本文檔中,請使用 1.8.15 或更高版本的 Arduino IDE。

Introduction to 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。

get-start-1

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

get-start-2

 PIN nameGPIO INTADCPWMUARTSPII2C
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_3A2    
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 將 RTL8720DN (BW16)連接到電腦:

get-start-3

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

從上面的引腳圖中,我們知道引腳 D0 和 D1可以被用於程序上傳。但是,根據安信可的原理圖設計,板載USB轉UART模組連接到引腳 D4 和 D5,因此該USB轉UART模組並不能直接用於程式上傳。
所以,為了將固件上傳到此主板,我們建議您選擇添加連接到 D0 和 D1 的外部 USB 轉 UART 模組,如下面的引腳連接所示:

get-start-4

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

用USB將開發板連接至電腦後,電腦將自動安裝用於BW16/RTL8720DN的USB驅動程序。如果您在安裝驅動時遇到任何與開發板的連接問題,請前往http://www.wch-ic.com/downloads/CH341SER_ZIP.html 網址下載USB驅動程式。安裝完成後,您可以在電腦裝置管理員中檢查 COM 端口以確認驅動安裝正確,電腦可以識別BW16開發板:

get-start-5-1

步驟二、設定 Arduino IDE

從 1.6.5 版本開始,Arduino IDE 支持第三方硬件。 因此,我們可以使用Arduino IDE在RTL8720DN(BW16)開發應用程序,Arduino的基本範例也可以在RTL8720DN(BW16)上運行。 請參閱 basic example link.

Arduino IDE可以在Arduino網站下載: https://www.arduino.cc/en/Main/Software

安裝完成後,打開Arduino IDE。為了在Arduino IDE中正常使用RTL8720DN (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將正式支持RTL8720DN (BW16)開發板。

接下來,打開Arduino IDE 中 “Tools”->”Board”->”Boards Manager”:

get-start-6

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

get-start-7

如果您遇到 GitHub 下載問題,請參考以下“下載/軟體開發套件”中的鏈接。有3個部分。
1. “AmebaD_Arduino_patch1_SDK”,請至少選擇 1 個 SDK。目前有 5 個最新發布的 SDK 選項。
2. “AmebaD_Arduino_patch2_Tools”,請根據您的作業系統進行選擇。有 Windows、Linux 和 MacOS。
3. “AmebaD_Arduino_Source_Code”,此部分為可選下載,用來參考最新原始碼。

https://www.amebaiot.com/ameba-arduino-summary/

下載選擇的文件,然後解壓(patch1 和patch2 是必須的)。有“Install_中文.doc”/“Install_中文.pdf”供您參考安裝步驟。根據您的系統,請運行“Offline_SDK_installation_tool”文件夾中的安裝工具。

安裝工具運行成功後,您可以打開Arduino IDE並選擇 “tools” -> “Board“ -> “Boards Manager…”。嘗試在列表中找到“Realtek AmebaD Boards (32-bits ARM Cortex-M33 @200MHz)”,點擊“Install”,Arduino IDE開始下載AmebaD所需的文件。

最後,我們在“tools”->“Board”->“Ameba ARM (32-bits) Boards”->” RTL8720DN(BW16)”中選擇了AmebaD作為當前連接的開發板:

get-start-8

如何更新BW16軔體

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

get-start-9

這將導致 Arduino Image 無法寫入模塊。 雖然有“All images are sent successfully! Image tool closed! Upload Image did.”的信息。 但無法清除出廠Image,按下板載 RST 按鈕後,您會發現出廠Image仍然保留著。

解決上傳方法

方法1 – 使用AmebaD Image Tool清除Flash

B&T預設軔體可以通過Realtek提供的Image Tool使用“Erase”功能來進行更新。

使用 Image Tool 從記憶體位址 0x8000_0000 開始清除Flash image,直到 2MB 內存位置結束,稍後,我們需要使用 Arduino IDE 再次將 Realtek image上傳回模塊。

get-start-10

步驟1 -下載並準備 Image Tool.
從 ambiot GitHub 的鏈接下載 ambd_sdk: https://github.com/ambiot/ambd_sdk.
Realtek 的 Image Tool 可以在以下文件路徑下找到:“ambd_sdk\tools\AmbaD\Image_tool\image_tool.exe”。

步驟2 – 設定 Image Tool
1. “Chip Select” 選項中, 選擇 “AmebaD(8721D)”
2. 選擇您正在使用的正確 COM 端口
3. 設定Baudrate至“115200”
4. 然後從Memory Address 0x0800 0000 開始鍵入Flash Erase 起始位置
5. 具體內存大小為2048 KB
6. 首先將模塊設置為“Download mode”,然後單擊“Erase”按鈕

get-start-11

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

get-start-12

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

get-start-13

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”:

get-start-14

Arduino IDE打開一個帶有完整範例代碼的新視窗。

get-start-15

RTL8720DN (BW16)的開發板上帶有板載 LED, 默認的”LED_BUILTIN”代表綠色板載 LED。將”LED_BUILTIN”更改為”LED_B”或”LED_R”則可以將顔色轉換爲藍色或者紅色。這裡,我們使用LED_B為例。
接下來,我們直接編譯範例代碼,點擊“Sketch”->“Verify/Compile”

get-start-16

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

get-start-17

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

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

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

get-start-18
Arduino IDE會等待5秒鐘,等待開發板進入上傳模式。

get-start-19

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

步驟二、運行Blink範例

在每個範例中,Arduino不僅提供了範例代碼,還提供了詳細的文檔,包括接線圖、範例代碼說明、技術細節等。這些範例可以直接用於RTL8720DN (BW16)。
在這裡我們可以找到Blink這個範例的詳細信息: https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink

簡而言之,對於RTL8720DN,該範例可以在板載RGB LED或外接LED(使用任何GPIO引腳進行信號輸出)上運行。最後,按RST按鈕,你就會看到LED開始閃爍。

參考

1. B&T “RTL8720D AT 命令用戶手冊”:
https://docs.ai-thinker.com/_media/rtl8710/docs/rtl8720d-at-v2.4.1-20190814.pdf

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