顯示包含「EVBoard」標籤的文章。顯示所有文章
顯示包含「EVBoard」標籤的文章。顯示所有文章

2022年9月30日星期五

[Ameba] RTL8720DN /BW16 二合一擴展板 Shield

支援兩款 RTL8720DN 開發板

  • A1 Pico - Kevin's Lab 
  • BW16 kit - Ai Thinker

 

 

規劃初衷

希望在實做Iot 應用作品時,可以很輕鬆的接入各種感測器及模組。並全力專心在程式開發上,減少在接線錯誤造成開發時間延宕。且同時保有擴展性,保留排針排及使用 Grove 連接器,使開發板增加擴展性。

硬體規格

  • 尺寸: 81.3 x 81.3 mm
  • 孔位 : Arduino uno 固定孔。
  • 電源輸入 : 6V ~ 18V 
  • 電源連接器: DC Jack 2.1(內正外負) , 可用變壓器(電流建議 >1A) 或是 2 顆 3.7V 鋰電池 (例如 18650) 串聯成 7.4V
  • Grove 接口 x 2 。 1 組 UART , 1 組 I2C

ESP32,BW16,RTL8720DN

BW16,RTL8720DN,ESP32



RTL8720DN,BW16,ESP32


支援外接模組

BW16,RTL8720DN,ESP32
  • PMS5003空氣偵測器
  • L9110S 模組 & TT 馬達
  • TFT LCD  / 240 x 320 Pixel
  • 伺服馬達
  • Buzzer
  • OLED SSD1306
  • RGB LED
  • MPU6050
  • HS-SR04 超音波
  • DHT20 溫溼度感測 / Grove 連接器
  • WS2812 LED


BW16,RTL8720DN,ESP32

注意事項

  • 接入開發板及模組時,請注意電源正負極方向,避免開發板及模組損壞
  • 使用 伺服馬達及 TT 馬達時,請務必使用 外接電源。有防呆機制,只使用 USB 5V 時,伺服馬達及 TT 馬達接口並不會有 5V 輸出。

如何購買

RTL8720DN 擴展板

 

相關

影片展示 :YouTube
開發板 : A1 Pico

 

2022年4月30日星期六

[Ameba] A1 Gyro / RTL8720DN / (BW16) 開發板

 

關於 A1 Gyro

為了實現基於 RTL8720DN (BW16 Module) 可以使用在其他不同的 ESP32 shield 上直接使用,所設計的開發板。A1 Gyro 具有 16ch +2 ch的 PWM 信號輸出。您可以透過 A1 Gyro 設計在任何需要 PWM輸出的應用,不論您要設計 小車,坦克車,機械手臂,還是 機械狗。只要 1 片A1 Gyro ,PWM輸出數量已足夠讓您使用。

A1 Gyro 特色

  • 內建 USB/Ext 5V 可自復式保險絲。
  • I2C 介面預裝提升電阻。
  • 使用 CP2102N UART 晶片
  • 支援 Auto flash 功能。
  • 內建 PCA9685 晶片, 有額外的 16 通道 PWM 輸出 (12-bit PWM),可設定晶片的 I2C Address。並有串接 220 ohm 電阻保護晶片輸出,可以直接驅動 伺服器 驅動單顆 LED。
  • 腳位符合 ESP32 38 pin 定義順序,支援 EPS32 擴展板

腳位定義圖

Arduino BW16 ESP32

電路圖

Arduino BW16 ESP32

JUMP 定義說明

定義說明預設
A0 ,A1,A2,A3,A4,A5PCA9685 的 I2C 位址設定0x40
JP1BLINK LED Close
JP2 與 5 (RX )短接Close
JP3與 4 (TX)短接Close


Arduino 安裝

請參考 A1 Lite / RTL8720DN (BW16) 開發板 與 Arduino IDE (連結)

目前已完整驗證過的擴展板

ESP Gyro 擴充板

連結 (https://sites.google.com/view/esp-gyro/ )

Arduino BW16 ESP32

Arduino BW16 ESP32

小車示範影片



如何購買 A1 Gyro 開發板

A1 Gyro (BW16) 開發板


2022年4月18日星期一

[Ameba] A1 Gyro / RTL8720DN (BW16) 開發板

 

關於 A1 Gyro

為了實現基於 RTL8720DN (BW16 Module) 可以使用在其他不同的 ESP32 shield 上直接使用,所設計的開發板。A1 Gyro 具有 16ch +2 ch的 PWM 信號輸出。您可以透過 A1 Gyro 設計在任何需要 PWM輸出的應用,不論您要設計 小車,坦克車,機械手臂,還是 機械狗。只要 1 片A1 Gyro ,PWM輸出數量已足夠讓您使用。

A1 Gyro 特色

  • 內建 USB/Ext 5V 可自復式保險絲。
  • I2C 介面預裝提升電阻。
  • 使用 CP2102N UART 晶片
  • 支援 Auto flash 功能。
  • 內建 PCA9685 晶片, 有額外的 16 通道 PWM 輸出 (12-bit PWM),可設定晶片的 I2C Address。並有串接 220 ohm 電阻保護晶片輸出,可以直接驅動 伺服器 驅動單顆 LED。
  • 腳位符合 ESP32 38 pin 定義順序,支援 EPS32 擴展板

腳位定義圖

Arduino BW16 ESP32

電路圖

Arduino BW16 ESP32

JUMP 定義說明

定義說明預設
A0 ,A1,A2,A3,A4,A5PCA9685 的 I2C 位址設定0x40
JP1BLINK LED Close
JP2 與 5 (RX )短接Close
JP3與 4 (TX)短接Close


Arduino 安裝

請參考 A1 Lite / RTL8720DN (BW16) 開發板 與 Arduino IDE (連結)

目前已完整驗證過的擴展板

ESP Gyro 擴充板

連結 (https://sites.google.com/view/esp-gyro/ )

Arduino BW16 ESP32

Arduino BW16 ESP32

小車示範影片



如何購買 A1 Gyro 開發板

A1 Gyro (BW16) 開發板


[STM32] STM32 核心測試板 / Cortex-M0 & RS485 版

測試板用途

平常在執行各 Device 測試時,一開始都會先使用 ST 開發板先行測試。而目前工作領域時常會用到 I2C , UART , SPI , RS485 等通訊協定。為了能儘早順利接線直接上線測試,因此設計了專門做測試用的 ST Contex-M0 測試板, 及另外的用途是用來做測試製具主板使用。

關於 STM32F051K8T6

測試板核心使用的型號是 STM32F051K8T6 / Cortex-M0 , 運作頻率為 48Mhz。板子使用內建 Internal 8 MHz RC 震盪器 內存 64 kByte / SRAM 8 kByte, 並搭配 RS485 轉換晶片。

STM051K8T6 規格書

原廠連結 ( https://www.st.com/resource/en/datasheet/stm32f051c4.pdf )

測試板佈局

  • 電源 5V 輸入且具有電源反接功能。
  • 3.3V 電壓輸出。
  • GPIO x 11
  • ADC x 3
  • DAC x 1
  • TIME x 9 
  • UART x 1
  • I2C x 1  (預接 2.7K Pull 電阻)
  • SPI x 1
  • USR Key x 1
  • 內建 RS485 (MAX485ESA+) 輸出

在一般做 Device 測試應該已足夠用了。

USR Key

RS485 輸出

腳位定義

電路圖

STM32Cube 設定

STM32Cube 測試板參考設計

GitHub 連結 ( https://github.com/cold63/STM32_Code/tree/master/K051K8TMCUConfig )

購買開發板

7-11 賣貨便 (Only Taiwan)

 

2022年2月20日星期日

[RS485] USB 轉 RS485 轉換器設計

關於 RS485

在產品研發工作中,時常遇到 RS485 的功能要求。在研發初期確實也需要類似於 Monitor 的監看工具,以方便了解傳輸過程是否有錯誤及了解客戶端的裝置是否有正確反饋資料。這時候就會需要 USB RS485 這類轉換工具,當然這也不限定於開發環境中,因為 RS485 通訊協定在工控領域中,是非常常見的。

RS485 是利用差動訊號來辨別 0 與 1 ,重點特性是能抗雜訊及通訊實體線路長距離傳輸。RS485 是 multi-drop network (多點網路),相同接線可以同時連接不同的 RS485 裝置。在於有多點網路特性及 RS485 為半雙工通訊模式,所以實際傳輸上通常會使用 Master-slave 架構,較為常見的軟體協議是 MODBUS。不過更多的情境是各家系統自訂通訊協議,因此需要有工具才能好好的做除錯的工作,更多延伸資訊可參考 RS485 wiki(中文)RS485 wiki(English)

收發器 ( Transceivers )

在單晶片場域中如果要用 RS485 協議,就必須要使用 RS485 收發器 ( Transceivers ),單晶片是 TTL 準位並不適合直接對接,必須要用 收發器 這點就有點像 CAN bus。(恩,這是題外話),我目前手上的是 Maxim 的 MAX485ESA+ 。 Maxim 已被併入 ANALOG DEVICES 旗下了,更顯得我手上的 MAX485ESA+ 是個珍品阿。剛看 Mouser 上的售價單價是 NT$128 元,我是不是應該要繼續珍藏 ?

RS485
(圖片來自 Maxim spec.)

上圖是 RS485 收發器的內部等效圖,分別是 2 各三態閘分別負責 TX 與 RX 。RO 負責接收,由 /RE 做接收控制。 DI 負責傳送,由 DE 做訊息發控制。A與 B 就是 RS485輸出端了。 與裝置連接通常是使用雙絞線方式連接。而連接器沒有特別指定。這類的的收發器有很多廠家都有,Pin out 基本上都相同,也可以交互使用。 這裡就不推薦了,之後有機會再介紹。



USB 轉 UART

來到 USB 這個環節了,在設計上是使用 FTDI FT230XQ 這個型號。是個 USB 轉 UART TTL 準位的晶片,在很多的場域都會看到 FTDI 這個廠牌。

UART
(圖片來自 FTDI spec.)

這是 FT230XQ 接腳圖,就是個 USB 轉 UART 常用輸出腳位。 有 TXD , RXD , RTS , CTS,但重點是它有 4 個 可自定義的腳位,就是這篇 RS485 的主題要使用的部分。剛提到 RS485 收發器 有 /RE 及 DE 腳做收發控制,在這自定義就發揮這個功能。

CBUS0 可以定義為 TXDEN 為專屬於 RS485 使用,當 USB Host 端發出傳送資料需求時,TXDEN 會轉態為 High,資料就會透過 TXD 跟著傳至 RS485 收發器的 DI 腳 完成資料發出的任務。
CBUS3 可以定義為 PWREN。 這是 USB 處於 suspend mode 模式時會被轉態成 Low。

利用這個特性連接 RS485 收發器的 /RE 腳,使UART待機時隨時是接收模式狀態。所以會有個缺點,若是在做 TXD 傳輸時也會同時收到自己傳輸的資料。不過還好,這問題並不大可以透過軟體來解決。

定義功能可透過 FTDI 的軟體工具設定

UART
(圖片來自 FTDI FT_Prog 軟體)

電路圖

RS485

線路是按照 FTDI 標準線路設計,除了,RS485 連接器。也保留 UART 輸出,可以兩用的形式不浪費,但 CBUS3 最好設回 SLEEP 模式。USB 連接器使用 USB B type,我想工具類的環節最好用 B Type 會比較穩固點。

製作完成

RS485

USB Host 應用

這類的軟體應用很多,但因為工作關係。通常我會自行開發 Host 端的部分,因為比較符合客戶需求及實際使用情況,或是大家有甚麼可推薦的軟體? 可以在底下留言哦!

2022年1月25日星期二

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

關於 A1 Lite

A1 Lite 是基於 RTL8720DN (BW16 Module) 所設計的開發板,而 RTL8720DN 具有 WIFI 4G/5G 及低功耗 BLE 5 的無線功能。與前版本 A1 Pico (點這裡)所使用的 BW16 Module 相同

A1 Lite 設計特色

  • 內建 USB/Ext 5V 可自復式保險絲。
  • I2C 介面預裝提升電阻。
  • 使用 CP2102N UART 晶片。
  • 支援 Auto flash 功能。
  • 簡化腳位,並使用單排半圓孔,可使用排針 或配合電路直接焊接 PCB 上

電路圖

Arduino BW16

腳位連接圖

Arduino BW16

孔位尺寸圖

單位:mm

RTL8720DN BW16

背面 JUMP 說明

NUM用途預設
JP1USER LEDON
JP2I2C 提升電阻OFF
JP3I2C 提升電阻OFF

準備

先安裝 CP2102N 的驅動程式。

連結在這裡
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers

Windows 系統請下載 CP210x Windows Drivers,會得到一個壓縮檔,依據您的電腦系統 選擇 x64 或是 x86 安裝執行檔。 安裝步驟這裡就不贅述。

RTL8720DN 加入 Arduino
首先將這個網址複製起來 https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json

打開 Arduino IDE , 點開 File / Preferences

BW16 Arduno

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

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

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

BW16 Arduino

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

置換 upload_image_tool_windows.exe

預設安裝是沒有支援 Auto Flash 功能的,必須手動更新

首先 到 Ameba 的 Github https://github.com/ambiot/ambd_arduino/blob/dev/Ameba_misc/Autoflash_patch/ameba_d_tools_windows/upload_image_tool_windows.exe

BW16

右下角 Download , 就可以下載。如果您是不同於 Windows 系統,則回到上一層選擇適合的平台

置換的方法

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

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

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

可以先行 備份 再將 剛剛下載的 upload_image_tool_windows.exe 做覆蓋置換過去就可以。

測試 Blink 程式

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

Arduino BW16

程式碼


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 Lite 開發板

蝦皮購物 


官方程式範例

https://bit.ly/bw16_example

官方論壇

https://bit.ly/amebaiot

Ameba Iot Facebook 開發社群

https://bit.ly/amebaiot_groups

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 天線。使開發輕鬆。

小結

內核組成 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. 支援 Auto flash 功能也是這次修改的重點, 感謝 jojoling 提供好用的程式,讓我可以搭順風車。

連接圖

RTL8720DN,BW16

UART 驅動程式

CH9102F

https://www.wch.cn/products/CH9102.html

CH9102F (本站下載點,不會更新)

Google driver dwonload.

電路圖

RTL8720DN,BW16


RTL8720DN(BW16) 加入 Arduino IDE

首先先將這個網址複製起來
https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek.com_amebad_index.json

打開 Arduino IDE , 點開 File / Preferences

RTL8720DN,BW16

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

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

RTL8720DN,BW16

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

RTL8720DN,BW16

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

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

RTL8720DN,BW16

溫馨提醒:

本開發板有 Auto flash 自動上傳功能, 請將 Auto Upload mode 設定為 Enable

RTL8720DN,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
}

示範影片



如何購買 A1 Pico 開發板

Buy A1 Pico Board.

開發資源

2021年8月8日星期日

[MicroPython] STM32F4 使用 MicroPython 應用

 緣起

STM32F401CE mini pyboard  開發板是基於 ST公司 的 STM32F401CE 高效能 ARM Contex-M4 為工作核心,並以 MicroPython 程式語言方向所設計的開發板。因此 SWIO/SWCLK 接腳內定會定為一般的 GPIO 來使用。開發板與電腦接口完全只依靠 STM32F401CE 本身的 USB Port 做為程式開發通訊手段。當然也可回歸於標準 C 語言開發模式。

STM32F401CE 的工作頻率達 84MHz ,並具有浮點單元(FPU) 。Flash Memory 空間為 512 Kbytes,SRAM 空間為 96 Kbytes。做為入門運用程式開發及驗證基本上已經足夠了。開發板電源有 Fuse 自恢復式保險絲做為基本電源保護。內部建置 LDO 3.3V 電源可供 600mA 輸出,並可使用電池 3.6V ~ 4.2V 電源外接輸入。如果同時接入 USB 5V,會自動以 USB 5V 為主。具有獨立外部 RTC 32kHz 振盪器,使 RTC 功能更為精確。

以下是接腳圖

micropython



安裝 MicroPython 方法

事先準備

  1. 準備 STM32F401_MiniPyBoard 
  2. 下載並 安裝 STM32CubeProgrammer ( 連結位置 )
  3. 開啟 Windows 的 裝置管理員
  4. 下載 firmware.hex  燒錄檔  (連結位置 )




開始動作

  1. 開發板上的  Micro USB  接入電腦的 USB 連接器。
  2. BOOT Key 按著不放 , 並按一下 RST Key 重啟。
  3. 1秒後放開  BOOT Key。
  4. 接著 在電腦裡的 裝置管理員 會出現 STM32 BOOTLOADER


  5. 打開 STM32CubeProgrammer
  6. 確認 STM32CubeProgrammer 右上。
    有抓到裝置



    沒抓到裝置, 關閉 STM32CubeProgrammer 並請重回到步驟 1



  7. 有抓到裝置後,點取 Connect

  8. 直接進入畫面



  9. 點一下 Open file Tab 並載入 firmware.hex
    載入成功後,可以直接點右上的 Download 按鈕。


  10. 開始燒錄。



  11. 燒錄成功。


  12. 結束USB 連線, Disconnect。



  13. Micro USB 重新接入,裝置管理員會出現新的 ComPort (如果沒有, 請參考如何安裝 PyBoard 的 Com Port), 並會出現新的磁碟


    micropython

  14. 成功。



測試小段程式


開啟 Thonny 輸入以下程式段。

from pyb import LED
import time

led = LED(1)
while True:
   led.toggle()
   time.sleep_ms(500)

這時候板上的 LED 應該會開始閃爍哦!