การใช้งานบอร์ด Arduino Uno R4 WiFi ในเบื้องต้น#
Keywords: Arduino Uno R4 WiFi, RA4M1, Arm Cortex-M4, ESP32-S3
▷ บอร์ด Arduino Uno R4#
ทีมผู้พัฒนา Arduino ได้เปิดตัวบอร์ด Arduino Uno R4 ในเดือนมีนาคม พ.ศ. 2566 โดยแบ่งออกเป็น 2 รุ่นคือ
- Arduino Uno R4 WiFi
- Arduino Uno R4 Minima: ไม่มีโมดูล WiFi และไม่มีวงจร 12x8 LED Matrix
และถือว่าเป็นบอร์ดรุ่นถัดจาก Arduino Uno R3 เนื่องจากมีขนาดและรูปร่างของบอร์ดเหมือนกัน และใช้แรงดันไฟเลี้ยงสำหรับชิปไมโครคอนโทรลเลอร์ 5V บอร์ด Uno R4 WiFi (1,000~1,100 THB) มีราคาสูงกว่าบอร์ด Uno R4 Minima (750~800 THB)
รูป: บอร์ด Uno R4 Minima และ Uno R4 WiFi
เอกสารที่เกี่ยวข้อง#
-
Arduino Uno R4 Minima
-
Arduino Uno R4 WiFi
- Renesas RA Family
▷ ข้อมูลเชิงเทคนิคเกี่ยวกับบอร์ด Uno R4#
ชิปตัวประมวลผล#
MCU: Renesas RA4M1 (R7FA4M1AB3CFM#AA0)
- CPU Core: 32-bit Arm Cortex-M4F (Armv7E-M architecture), 48MHz
- On-chip Memory:
- Flash: 256 kB
- SRAM: 32 kB
- Data EEPROM: 8 kB
- Voltage Range: 1.6V ~ 5.5V
- Chip Package: 64-LFQFP (10x10 mm^2)
- Single-Precision Floating-point unit (FPU)
- Memory Protection Unit (MPU)
- 128-bit Unique ID
- Timers:
- 2-Channel General PWM Timer 32-Bit (GPT32)
- 6-Channel General PWM Timer 16-Bit (GPT16)
- 2-Channel Low Power Asynchronous General-Purpose Timer 16-bit (AGT)
- 1× Watchdog Timer (WDT)
- 4× Serial Communications Interface (SCI)
- 2× Serial Peripheral Interface (SPI)
- 2× I2C bus Interface
- 1× Analog Temperature Sensor (TSN)
- 1× RTC (Real-Time Clock)
- 1× CAN bus Controller (No CAN transceiver onboard)
- Analog:
- 14-bit ADC (Digital-to-Analog Converter)
- 12-bit DAC (Analog-to-Digital Converter)
- 2× Low-Power Analog Comparators (ACMPLP)
- 4× Operational Amplifiers (OPAMP)
- Security:
- AES128/256 (Encrpytion)
- GHASH (Hash Function)
- TRNG (True Random Number Generator)
ในส่วนถัดไปของบทความ จะกล่าวถึงเฉพาะบอร์ด Arduino Uno R4 WiFi
วงจรบนบอร์ด#
- I/O Operating Voltage: 5V
- 1× USB Type-C Connector
- 20× Digital I/O: 8mA (max) per I/O pin
- D0 ~ D13 pins
- A0/D14 ~ A5/D19 pins
- 6× PWM Output (12-bit resolution): D3, D5, D6, D9, D10, D11 pins
- Analog Input (14-bit resolution): A0 ~ A5 pins
- Analog Output (12-bit resolution): A0 pin
- OpAmp In+ / In- Pins: A1 / A2 pins
- OpAmp Out: A3 pin
- Onboard LED: D13 pin
- UART/Serial pins: D0=Rx0, D1=Tx0 (
Serial1
) - SPI pins (2x3 ICSP Header): COPI=D11, 5V, CIPO=D12, SCK= D13, /RESET, GND
- I2C pins: A4=SDA, A5=SCL (
Wire
) - I2C1 pins: D18=SDA, D19=SCL (
Wire1
) - CAN bus pins: D10=CANRX, D13=CANTX
- DAC output pin: A0 pin
- Reset Button
- 4× LEDs
- DL1 (TX LED): P109 pin
- DL2 (RX LED): ESP_TXD0 pin
- DL3 (5V Power ON LED)
- DL4 (SCK LED): P102 pin (Arduino D13 pin)
- VRTC (VBATT) & GND pins (for battery backup, 1.6V~3.6V)
- OFF pin
- 1× Qwiic/STEMMA Connector for I2C bus (
Wire1
)- 1mm pitch, 4-pin, JST Connector
- 3.3V logic level
- LED Matrix: 12 x 8 LEDs
- Power Supply
- VIN pin: 6V ~ 24V (Barrel Plug / DC Jack)
- Linear Voltage Regulator (3.3V output): SGM2205-3.3XKC3G/TR
- Step-down (Buck) Voltge Regulator (5V output): ISL854102FRZ-T
- USB Type-C 5V supply + PTC Resettable Fuse + ESD protection diode
- USB Bridge for USB_D+ and USB_D- signals
- 2×3 ESP Pin Header (for ESP32-S3 firmware upload)
- 1× ESP32-S3-MINI-1-N8 Module (8MB Flash)
- Xtensa dual-core 32-bit LX7, 240MHz
- 3.3V operating voltage
- Logic-level translator IC: TXB0108DQSR
ข้อสังเกต
- ชิป RA4M1 ทำงานด้วยแรงดันไฟเลี้ยง 5V ในขณะที่โมดูล ESP32-S3 ทำงานด้วยแรงดันไฟเลี้ยง 3.3V ดังนั้นจึงมีการใช้ไอซี TXB0108DQSR (8-bit Bidirectional Voltage Level Shifter) เพื่อเชื่อมต่อสัญญาณที่มีระดับแรงดันไฟฟ้าต่างกันในทั้งสองทิศทางของสัญญาณ
- บอร์ด Uno R4 WiFi ใช้แรงดันไฟเลี้ยง 5V ได้จาก USB Type-C หรือจะใช้แรงดันไฟเลี้ยงในช่วง 6V ~ 24V ผ่านทาง VIN หรือต่อผ่าน DC Jack ไปยังไดโอดป้องกันการต่อกลับขั้ว (Schottky Diode) และมีวงจรที่ทำหน้าที่ลดระดับแรงดันไฟฟ้า Step-down (Buck) DC-DC Converter ให้ได้แรงดันไฟฟ้า 5V
- แรงดันไฟเลี้ยง 3.3V สำหรับ ESP32-S3 ได้จากการแปลง 5V ให้เป็น 3.3V โดยใช้ไอซี Linear Voltage Regulator
- วงจร 12x8 LED Matrix ใช้ขาจำนวน 11 ขา ต่อไปนี้ในการควบคุม: P003, P004, P011, P012, P013, P015, P204, P206, P212, P213
รูป: แผนผังแสดงตำแหน่งขาบนบอร์ด Uni R4 WiFi
รูป: แผนผังแสดงความเชื่อมโยงระหว่างขาของชิปและขาของบอร์ด Uni R4 WiFi
รูป: แผนผังแสดงระดับแรงดันไฟเลี้ยงสำหรับวงจรบนบอร์ด Uno R4 WiFi
▷ การใช้งานโมดูล Espressif ESP32-S3#
ESP32-S3 SoC บนบอร์ด Uno R4 WiFi ทำหน้าที่ ดังต่อไปนี้
- USB Device: ทำหน้าที่เป็นอุปกรณ์ USB (VID=0x2341, PID=0x1002) เชื่อมต่อกับคอมพิวเตอร์ของผู้ใช้
- CMSIS-DAP Programmer ใช้สำหรับการอัปโหลดหรือโปรแกรมไฟล์เฟิร์มแวร์ จากคอมพิวเตอร์ของผู้ใช้ผ่านทางพอร์ต USB สำหรับชิป RA4M1 (ต่อกับขา SWCLK และ SWDIO)
- USB Bridge เป็นตัวกลางในการเชื่อมต่อข้อมูลด้วย USB-Serial (USB CDC, Baudrate=115200) ระหว่างคอมพิวเตอร์ของผู้ใช้ผ่านทางพอร์ต USB
- เชื่อมต่อกับชิป RA4M1 ผ่านทางขา TX / RX หนึ่งคู่ (Baudrate=115200) สำหรับการสื่อสารด้วย
AT commands เพื่อใช้ในการสื่อสารผ่าน WiFi / BLE
- ESP32-S3: GPIO44 (U0RXD) / GPIO43 (U0TXD) pins
- RA4M1: P109 (TXD) / P110 (RXD) pins
- Firmware:
uno-r4-wifi-usb-bridge
บอร์ด Uno R4 WiFi มีวงจรที่ใช้ไอซี Analog Switch (2:1 Multiplexer) เพื่อใช้เลือกการเชื่อมต่อระหว่างสัญญาณ USB D+/D- ของพอร์ต USB Type-C ไปยังขา USB D+/D- ของชิป ESP32-S3 (default) หรือไปยังขาของชิป RA4M1 โดยตรง
หากต้องการอัปเดตเฟิร์มแวร์ (Firmware Update)
สำหรับ ESP3-S3 (uno-r4-wifi-usb-bridge
)
ก็สามารถทำได้ง่าย ผ่านทางพอร์ต USB
นอกจากนั้นแล้ว บอร์ด Uno R4 WiFi ยังมีคอนเนกเตอร์ 2x3 Male Pin header
สามารถใช้เป็นช่องทางการอัปโหลดไฟล์เฟิร์มแวร์ให้กับ ESP32-S3 ได้โดยตรง
ESP_IO42
: MTMS Debugging (Pin 1)ESP_IO41
: MTDI Debugging (Pin 2)ESP_TXD0
: Serial Transmit (UART-Tx) (Pin 3)ESP_DOWNLOAD
: Boot (Pin 4)ESP_RXD0
: Serial Receive (UART-Rx) (Pin 5)GND
: Ground (Pin 6)
▷ การเขียนโปรแกรมด้วย Arduino IDE#
สำหรับการเขียนโปรแกรมด้วย Arduino Sketch สำหรับบอร์ด Uno R4 โดยใช้ซอฟต์แวร์ Arduino IDE ก่อนอื่นให้ติดตั้งซอฟต์แวร์ต่อไปนี้ ภายใต้ Boards Manager: Arduino Core for Renesas
รูป: การติดตั้ง Arduino Board Manager สำหรับบอร์ด Uno R4
การอัปเดตเฟิร์มแวร์ให้กับ ESP32S3 ทำได้มากกว่าหนึ่งวิธี
วิธีหนึ่งคือ การทำให้ ESP32S3 เข้าสู่โหมด BOOT Loader
โดยการต่อขา ESP_DOWNLOAD
(GPIO-0) กับ GND แล้วป้อนไฟเลี้ยงให้บอร์ด
จากนั้นก็สามารถใช้โปรแกรม esptool.py
ของ Espressif ตามคำสั่งตัวอย่างดังนี้
esptool -b 115200 write_flash 0x0 S3-ALL.bin
รูป: ตัวอย่างการใช้คำสั่ง esptool
สำหรับอัปโหลดเฟิร์มแวร์ (.bin) ไปยัง ESP32-S3 บนบอร์ด Uno R4 WiFi
รูป: ตัวอย่างการเขียนโค้ด Arduino Sketch เพื่อทำให้ LED บนบอร์ด (ตรงกับขา Arduino D13)
การเขียนโปรแกรมเพื่อเชื่อมต่อ WiFi โดยใช้โมดูล ESP32-S3 สำหรับบอร์ด
Uno R4 WiFi จะต้องใช้ไลบรารีที่มีชื่อว่า WiFiS3
การตรวจสอบเวอร์ชันของเฟิร์มแวร์ WiFiS3
ทำได้โดยใช้คำสั่ง WiFi.firmwareVersion()
▷ กล่าวสรุป#
บทความนี้ได้นำเสนอข้อมูลเกี่ยวกับวงจรบนบอร์ดและการใช้งาน Arduino Uno R4 WiFi และการเขียนโปรแกรม Arduino Sketch โดยใช้ Arduino IDE ในเบื้องต้น นอกเหนือจากบอร์ดที่ผลิตโดย Arduino แล้ว ยังมีบอร์ดที่เรียกว่า Arduino Uni R4 compatible ซึ่งมีราคาถูกกว่า ผลิตมาจากประเทศจีน และสามารถใช้แทนกันได้ เหมาะสำหรับผู้ที่สนใจลองใช้งานบอร์ดดังกล่าวในเบื้องต้น
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Created: 2024-08-17 | Last Updated: 2024-08-18