สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เป็นมาตรฐานในปัจจุบันที่จะใช้พอร์ต USB ของบอร์ด Arduino (หรืออื่น ๆ ที่เข้ากันได้) เป็นพอร์ตอนุกรมจำลอง สิ่งนี้มีประโยชน์มากสำหรับการดีบัก การส่ง และรับข้อมูลจากกระดานที่น่ารักของเรา
ฉันกำลังทำงานกับ uChip เมื่อผ่านแผ่นข้อมูลของ MCU (SAMD21) ฉันสังเกตเห็นว่า USB gpio PORTA 24 และ 25 (ซึ่งเป็น D-/D+ ตามลำดับ) สามารถใช้เป็น SERCOM (PAD 2 และ 3) ได้เช่นกัน
หลังจากสังเกตเห็นสิ่งนี้ในแผ่นข้อมูล ฉันคิดว่ามันจะมีประโยชน์มากในบางครั้งที่จะแนบอุปกรณ์ซีเรียลของฮาร์ดแวร์เข้ากับพอร์ต USB โดยตรง แทนที่จะติดสายไฟบนเขียงหั่นขนมหรือบัดกรีเข้ากับบอร์ดโดยตรง
ดังนั้น นี่คือบทแนะนำสั้นๆ ที่แสดงวิธีการตั้งค่าบอร์ดของคุณ เพื่อให้คุณสามารถใช้ USB เป็นพอร์ตอนุกรมของฮาร์ดแวร์ได้
ในบทช่วยสอนเฉพาะนี้ อุปกรณ์อนุกรมที่เชื่อมต่อคืออะแดปเตอร์อนุกรม Bluetooth HC-06 อย่างไรก็ตาม คุณสามารถปรับโค้ดให้เข้ากับอุปกรณ์อนุกรมอื่นๆ ได้ ตราบใดที่คุณบัดกรีอะแดปเตอร์สาย USB เข้ากับอุปกรณ์ซีเรียล
บิลวัสดุ
uChipx 1
อะแดปเตอร์ micro-USB เป็น USB/A x 1 (ลิงก์)
โมดูล HC-06 BT x 1
สาย USB รีไซเคิล x 1
แบตเตอรี่ (3V3 < VBAT < 5) x 1
ขั้นตอนที่ 1: สร้างอุปกรณ์ซีเรียลด้วยตัวเชื่อมต่อ USB
ลอกสาย USB ออกและบัดกรีสายไฟเข้ากับอุปกรณ์ Serial ดังแสดงในแผนผังและเขียนไว้ด้านล่าง
- สาย USB สีดำ -> GND
- สาย USB สีแดง -> VCC (ไฟ)
- สาย USB (D-) สีขาว -> RX
- สาย USB (D+) สีเขียว -> TX
ขั้นตอนที่ 2: โปรแกรม UChip
เชื่อมต่อ uChip กับคอมพิวเตอร์ของคุณและโหลดภาพร่าง “HWSerialUSB.ino” ลงในบอร์ด จากนั้นยกเลิกการเชื่อมต่อ uChip เพื่อดำเนินการในขั้นตอนต่อไป
เคล็ดลับ: รหัสทำงานอย่างไร เหตุใดพอร์ต USB ของฉันจึงแตกต่างไปจากนี้
นี่คือคำอธิบายโดยสรุปเคล็ดลับที่ฉันทำในโค้ด
โดยทั่วไป ฉันกำลังสร้างอินสแตนซ์ “SerialUSB_HW” ใหม่โดยใช้ GPIO ที่ได้รับมอบหมายให้ทำงานเป็น D- และ D+ ในปัจจุบัน
ใน Setup() ฉันเปิดใช้งานฟังก์ชัน SERCOM สำหรับพิน USB โดยใช้ฟังก์ชัน “pinPeripherial()” ที่ระบุในส่วนหัว “wiring_private.h” ซึ่งรวมอยู่ในตอนต้นของโค้ด
ตอนนี้ ฉันสามารถใช้อินสแตนซ์ “SerialUSB_HW” ได้เช่นเดียวกันกับ Serial หรือ SerialUSB มาตรฐาน รับและส่งข้อมูลไปยังอุปกรณ์ซีเรียล HC-06 ของฉัน
ขั้นตอนที่ 3: ประกอบ - เชื่อมต่อ - ทดลอง
ต่อแบตเตอรี่เข้ากับ uChip
- pin_8 -> VBAT--
- pin_16 -> VBAT+
ใส่อแดปเตอร์ OTG จากนั้นต่อกับอุปกรณ์ Serial ที่มีพอร์ต USB ใหม่เอี่ยม และ…เท่านี้ ฮาร์ดแวร์ก็พร้อม!
หลังจากจับคู่กับโมดูล HC-06 (รหัสผ่านมาตรฐานคือ 1234) ให้เชื่อมต่อกับอุปกรณ์ BT โดยใช้โทรศัพท์หรืออินเทอร์เฟซ BT ของคุณ ตอนนี้คุณควรได้รับสถานะของ LED ออนบอร์ด
ส่งอักขระ 'o' เพื่อเปิดไฟ LED หรืออักขระอื่นเพื่อปิด
ทดลองและลองใช้อุปกรณ์อนุกรมอื่นๆ ตอนนี้คุณรู้วิธีใช้พอร์ต USB เป็นพอร์ต Hardware Serial แล้ว!
เคล็ดลับ: มี #define ในโค้ด ซึ่งช่วยให้คุณสลับไปมาระหว่างการใช้พอร์ต USB เป็น Emulated serial หรือเป็น Hardware serial ทดลองและตรวจสอบว่าอุปกรณ์ Serial ที่แนบมา (HC-06) ไม่สื่อสารเว้นแต่ว่าเราบังคับให้ USB ทำงานเป็นฮาร์ดแวร์ซีเรียล!