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

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

小車示範影片


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

小車示範影片


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

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

連接圖

CP2102N 版本
A1 PICO ,BW16


FTDI 版本
Ameba BW16



電路圖

rtl8720dn bw16


實體照

A1 PICO,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 開發板


官方程式範例


官方論壇連結


Ameba Iot Facebook 開發社群



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 應該會開始閃爍哦!