MicroLearner – UART Debug and Remap

MicroLearner – UART Debug and Remap

MicroLearner | ESP32-C3 Super Mini รองรับการสื่อสารแบบ UART (Universal Asynchronous Receiver/Transmitter) ซึ่งสามารถใช้สำหรับการดีบักและเชื่อมต่อกับอุปกรณ์ภายนอกได้ โดยมีการกำหนดขา UART ดังนี้

1. UART Debug (pin 20, 21)

UART Debug ใช้สำหรับตรวจสอบและดีบักระบบ ซึ่งสามารถเชื่อมต่อกับคอมพิวเตอร์ผ่าน USB-to-Serial Adapter ได้

  • TX (Transmit): Pin 20
  • RX (Receive): Pin 21

2. UART Remap (pin 4, 5)

UART Remap สามารถใช้สำหรับเชื่อมต่อกับอุปกรณ์ภายนอก เช่น โมดูล GPS, เซ็นเซอร์ หรืออุปกรณ์ที่รองรับ UART โดยสามารถกำหนดขาใหม่แทนขาดีบักหลักได้

  • TX: Pin 4
  • RX: Pin 5

 


 

 

ทำไมต้องทำความเข้าใจกับ UART Debug และ UART Remap?

การเชื่อมต่อเซ็นเซอร์เข้ากับ UART Debug (pin 20, 21) ทำให้ข้อมูลที่เซ็นเซอร์ส่งมาปรากฏบน Serial Monitor เสมือนเป็นการดีบักข้อมูลจากเซ็นเซอร์โดยตรง

อย่างไรก็ตาม มีข้อควรระวังที่ต้องคำนึงถึง:

  • หากเซ็นเซอร์ส่งข้อมูลตลอดเวลา อาจทำให้ข้อความ debug อื่นๆ อ่านยาก
  • หากต้องอัปโหลดโค้ดผ่าน USB-to-Serial อาจเกิดการชนกันระหว่างเซ็นเซอร์กับการสื่อสารของบอร์ด

ดังนั้น หากต้องการใช้ UART Debug กับเซ็นเซอร์ อาจจำเป็นต้องถอดเซ็นเซอร์ออกก่อนอัปโหลดโค้ด หรือเลือกใช้ UART Remap (pin 4, 5) แทน เพื่อให้การทำงานเป็นอิสระและไม่มีปัญหาทับซ้อน

ด้วยเหตุนี้ การทำความเข้าใจกับการใช้งานทั้ง UART Debug และ UART Remap จึงเป็นสิ่งสำคัญ เพื่อให้สามารถเลือกใช้งานได้อย่างเหมาะสมตามความต้องการ

 

 


Remap UART

การกำหนดหรือปรับเปลี่ยนขาอินพุตและเอาต์พุตของ UART (Universal Asynchronous Receiver/Transmitter) บนไมโครคอนโทรลเลอร์ไปยังขาอื่นที่ไม่ได้ถูกตั้งค่าเริ่มต้นเพื่อใช้งาน UART เดิม ซึ่งไมโครคอนโทรลเลอร์บางรุ่น เช่น ESP32 มีความสามารถในการรีแมป (remap) ขา UART เพื่อให้ผู้ใช้สามารถเลือกขา GPIO (General Purpose Input/Output) ที่ต้องการใช้งานได้หลากหลายมากขึ้น

การ Remap UART จะเป็นประโยชน์ในสถานการณ์ที่ขา UART เริ่มต้นถูกใช้งานไปกับอุปกรณ์อื่นหรือไม่สะดวกในการเชื่อมต่อ โดยการรีแมปช่วยให้คุณสามารถกำหนดขา GPIO อื่นให้ทำหน้าที่แทนขา TX (Transmit) และ RX (Receive) ของ UART ได้ตามความต้องการ


void setup() {
// เปิดใช้งาน Serial Monitor ที่ 9600 baud
Serial.begin(9600);
while (!Serial) {
// รอให้ Serial Monitor เปิด
}
// กํ หนด UART1 ให้ใช้ TX = GPIO5, RX = GPIO4 ที่ 9600 baud
Serial1.begin(9600, SERIAL_8N1, 4, 5);
Serial.println("UART Test Start");
}
void loop() {
// ส่งข้อมูล "Hello UART" ไปที่ Serial1 (TX)
Serial1.println("Hello UART");
// ตรวจสอบว่ามีข้อมูลเข้ามาที่ RX ของ Serial1 หรือไม่
if (Serial1.available()) {
String data = Serial1.readString();
// แสดงข้อมูลที่รับมาใน Serial Monitor
Serial.print("Received: ");
Serial.println(data);
}
delay(1000); // หน่วงเวลา 1 วินาที
}

ในการทดสอบ UART บน ESP32-C3 โดยใช้ GPIO4 (RX) และ GPIO5 (TX) การต่อสายจะต้องทำตามขั้นตอนดังนี้:

การเชื่อมต่อสาย

  1. GPIO5 (TX) เชื่อมต่อกับ GPIO4 (RX):
    • สายจากขา TX (GPIO5) ของ ESP32-C3 ต่อเข้ากับขา RX (GPIO4) ของ ESP32-C3
    • ในกรณีที่คุณต้องการทดสอบการส่งข้อมูลและรับข้อมูล (loopback) ให้ใช้สายจัมเปอร์เชื่อมต่อจาก TX ไปยัง RX
  2. ต่อพอร์ต USB ของ ESP32-C3:
    • เชื่อมต่อ ESP32-C3 กับคอมพิวเตอร์ผ่านสาย USB เพื่อเปิด Serial Monitor และดูข้อมูล
  • การทดสอบ Loopback: หากคุณเชื่อมต่อ TX ไปยัง RX ของบอร์ดเดียวกัน (loopback) คุณจะสามารถส่งข้อมูลจาก TX ไปยัง RX โดยตรงและอ่านค่าที่ส่งผ่าน Serial Monitor

  • การทดสอบกับอุปกรณ์อื่น: หากคุณต้องการเชื่อมต่อ ESP32-C3 กับอุปกรณ์อื่น เช่น โมดูล UART หรือเซนเซอร์ ให้เชื่อมต่อ TX ของ ESP32 ไปยัง RX ของอุปกรณ์นั้น และ RX ของ ESP32 ไปยัง TX ของอุปกรณ์

สรุป

  1. ต่อสายจาก GPIO5 (TX) ไปยัง GPIO4 (RX) เพื่อทำการ loopback
  2. เชื่อมต่อกับ USB เพื่อให้สามารถดูข้อมูลใน Serial Monitor ได้

เมื่อคุณต่อสายเรียบร้อยแล้ว คุณสามารถอัปโหลดโค้ดที่เราได้พูดถึงไปที่ ESP32-C3 แล้วเปิด Serial Monitor เพื่อดูผลลัพธ์ได้เลย!

BESTMicroLearner – UART Debug and Remap

Related Posts