2021年9月16日星期四

[Ameba] A1 PICO / RTL8720DN (BW16) 開發板 與 Arduino IDE

緣起

 Realtek RTL8720DN 是一個具有 Wifi + Bluetooth  無線晶片, Wifi 且支援雙模  (802.11 a/b/g/n 1x1, 2.4GHz & 5GHz ) 和低功耗的 BLE 5。處理器內核採用 Dual processor core 設計 集成 ARM V8M Cortex-M33  (指令集相容於 Cortex-M4F) 及 ARM V8M Cortex-M23 (相容於 Cortex-M0+)  。 Wi-Fi 及  BT 是共用一組天線,所以在硬體設計上更為簡便。而 BW16 為 基於 RTL8720DN 所設計的 SOC 模組,將常用的引腳連接出來, 並使用 PCB 天線。使開發輕鬆。

Ameba BW16



總結

內核組成 KM4 Arm Cortex-M4 core @ 200 MHz 及  KM0 Arm Cortex-M0 core @ 20 MHz
 WiFi 2.4G WiFi 5G 協定  802.11 a/b/g/n 頻寬範圍 : 2.412-2.484GHz & 5.180-5.825GHz
支援 HT20/HT40 模式
支援低功耗式
支援 Bluetooth 5.0 LE , 頻寬範圍 :2.402GHz – 2.480GHz
工作模式 : AP , Station, AP/ Client
WiFi 與 BT 共用一組天線
1 個 ADC
2 UART 介面
1 個 I2C
1 個 SPI
4 個 PWM
全部接腳都可成為 GPIO

為了更方便使用 RTL8720DN (BW16),因此我設計了 A1 PICO 開發版。

開發重點如下

1. 內建 USB 5V 可自複式保險絲。
   因為做實驗難免會有誤接短路的問題,尤其是 USB 是直接連接電腦。雖然 USB Hub 也有相對應的保護,多層保護可以減少發生意外機率。

2. 電池連接口 JST 2.00mm 。
 在很多應用是不方便連接固定電源,在應用上會更方便。若同時接入 USB 5V 會自動切換 USB 做為主要電源。

3. 因為要使用電池應用, 所以也特別挑選工作效率好的 LDO。使電池發揮最大的效能。預設電壓區間是 3.6V ~ 4.2V

4. 預裝 I2C 提升電阻,在應用於 I2C 時都需要提升電阻,有時臨時還真找不到 。現在只要將短路 pin 接上就好。

5. 使用 FTDI UART 元件,這個元件的好處是除了穩定之外,就是不需要另外下載驅動軟體,直接 windows 自動安裝就好。雖然成本高一點,但我覺得時間也是一種成本。當您要切換不同電腦工作時,就會明白這個意思。

6. 支援 Auto flash 功能也是這次修改的重點, 感謝 jojoling 提供好用的程式,讓我可以搭順風車。

連接圖


Ameba BW16



電路圖

rtl8720dn bw16


RTL8720DN(BW16) 加入 Arduino IDE


現在官方已經正式將 RTL8720DN(BW16) 納入 Arduino,按照以下步驟就可以將開發版加入您的 Arduino IDE。


打開 Arduino IDE , 點開 File / Preferences

Ameba BW16



將網址貼上 紅框 處 , 然後點 OK 儲存。

接著在 Tools / Board: / Boards Manager...

Ameba BW16



在 搜尋列直接輸入" ameba " 就會出現開發板資訊 , 在右側會有 Install 的 按鈕。 因為我的 Arduino IDE 安裝完成,所以出現不一樣字樣。 點 " Install " 開始安裝 會需要等待一些時間, 可以先去泡一杯咖啡再回來。

Ameba BW16



稍待片刻後,系統就會自動安裝完成。
在 Tools / Board: / Amaba ARM (32bit) Boards 裡, 應該會找到 RTL8720DN (BW16) 這個選項。
到這裡 安裝 RTL8720DN(BW16) 到 Arduino IDE 的部分已經做完了。


我們知道 Ameba 的開發板要上傳程式到開發版之前,必需要先按開發板上的 Dwonload  按鈕 再按 RESET 按鈕才能順利上傳成功到板子上來。在前面所述 Auto Flash 功能就是我所設計的 RTL8720DN(BW16) 可以簡化必需要事先按鈕的步驟, 不過要啟用這個功能必需先更替 系統原安裝的 "upload_image_tool_windows.exe" 程式。

下載 "upload_image_tool_windows.exe"


Ameba BW16



因為我的環境是 windows 所以選擇 amaba_d_tools_windows 。
您會看到 upload_image_tool_windows.exe 的連結 , 再點開它。 


Ameba BW16



再右下角 "Download" , 先下載下來。
在這裡 感謝 jojoling 製作那麼美妙的程式, 讓大家更方便使用 Ameba。

好 , 接下來就是要 置換這個程式了。

開啟檔案總管, 到這個位置。

C:\Users\%USER%\AppData\Local\Arduino15\packages\realtek\tools\ameba_d_tools\1.0.5

您會看到很多檔案在其中 , 一定會有 upload_image_tool_windows 這個檔案。

Ameba BW16




這時候您有 2 個選擇 。
1.是直接將剛下載的 upload_image_tool_windows.exe 直接覆蓋置換就好。
2.先將原來的程式做備份。建新的資料夾丟進去。再將 upload_image_tool_windows.exe 拷貝過來。

就看個人的習慣嘍。

到這裡算是完成所有安裝步驟了。

開發板上預留 PA15(9) 連接 LED , 用它來做 blank 基本的程式。不過, 預設連接是斷開的。必須焊接短接


Ameba BW16



將開發板連接電腦 USB 並開啟 Arduino IDE 並選好 開發板名稱 及 COM Port 位置

Ameba BW16




測試 Blink 程式



int YelloLED = 9; //PA15

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(YelloLED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(YelloLED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(YelloLED, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

然後點選上傳 , 在訊息欄出現以下。自動上傳並自動 RESET。完成 




購買 A1 Pico 開發板

7-11 賣貨便 (Only Taiwan )

官方程式範例


官方論壇連結


Ameba Iot Facebook 開發社群