การใช้งานบอร์ด 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

 

เอกสารที่เกี่ยวข้อง#


ข้อมูลเชิงเทคนิคเกี่ยวกับบอร์ด 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