RS422/RS485 Shield¶
RS422/RS485 Shield มอบลิงก์ซีเรียลดิฟเฟอเรนเชียลระยะไกลที่เหมาะกับบัสอุตสาหกรรมให้กับ OpenMV Cam พร้อมอินพุตแรงดันกว้าง การป้องกันไฟกระชาก และ ADC/I/O ดิจิทัล
สำหรับข้อมูลจำเพาะเต็ม ภาพถ่าย และการสั่งซื้อ ดูที่ หน้าผลิตภัณฑ์ RS422/RS485 Shield
จุดเด่น¶
RS-422 หรือ RS-485 ความเร็ว 10 Mb/s พร้อมตัวต้านทานเทอร์มิเนตบนบอร์ด
อินพุต 6-36 V ทนแรงดันไฟย้อน
อินพุต ADC 0-5 V พร้อมการป้องกันแรงดันเกิน ±36 V
I/O ดิจิทัล 0-5 V สำหรับทริกเกอร์ซิงค์กล้อง ป้องกันการลัดวงจร
แผนผังพิน¶
อ้างอิงพิน¶
พิน |
หน้าที่ |
|---|---|
P4 |
RS-422 / RS-485 TX → ขับสัญญาณออกสายดิฟเฟอเรนเชียล |
P5 |
RS-422 / RS-485 RX ← รับสัญญาณเข้าสายดิฟเฟอเรนเชียล |
P6 |
รีดแบ็ค AIN ที่เปลี่ยนระดับแล้ว (0–3.3 V บน P6) |
P10 |
SYN — I/O ดิจิทัล open-drain บนบล็อกเทอร์มินัล |
PWR เข้า |
อินพุตกว้าง 6–36 V บนบล็อกเทอร์มินัล (ทนแรงดันไฟย้อน) |
AIN เข้า |
อินพุตอนาล็อกบนบล็อกเทอร์มินัล |
VIN ออก |
5.4 V ที่กระแสสูงสุด 600 mA จากตัวควบคุมบนบอร์ด |
ขา 3.3V |
จ่ายไฟให้วงจรอิเล็กทรอนิกส์บนบอร์ดของ shield |
ขา GND |
กราวด์ร่วม |
Note
AIN ได้รับการป้องกันแรงดันเกินสูงสุด ±36 V และค่าเริ่มต้นคืออินพุตแรงดัน 0–5 V ลดระดับลงเป็น 0–3.3 V บน P6 บัดกรีชันท์โหมด 4–20 mA ด้านหน้า shield เพื่อสลับ AIN เป็นอินพุตวงจรกระแส 4–20 mA
Note
SYN เป็นสายดิจิทัล open-drain ดึงขึ้นไปที่ 3.3 V ฝั่งกล้องและ 5 V ฝั่งเทอร์มินัล SYN ค่าเริ่มต้นคืออินพุต — shield เปลี่ยนระดับ 0–5 V บน SYN ลงเป็น 0–3.3 V บน P10 เปลี่ยนจัมเปอร์บัดกรีบนบอร์ดเพื่อกลับ P10 เป็นเอาต์พุต โดยเปลี่ยนระดับ 0–3.3 V บน P10 ขึ้นเป็น 0–5 V บน SYN
Note
พิน P4, P5, P6 และ P10 แต่ละตัวเชื่อมต่อกับกล้องเป็นค่าเริ่มต้นผ่านจัมเปอร์บัดกรี — เปิดจัมเปอร์ของพินที่ต้องการนำไปใช้งานอื่น จัมเปอร์ของ P6 อยู่ด้านหลัง shield ส่วน P4, P5 และ P10 อยู่ด้านหน้า
Note
ตัวต้านทานเทอร์มิเนตบนบอร์ดเชื่อมต่อเป็นค่าเริ่มต้น — เปิดจัมเปอร์บัดกรีด้านหลังที่สอดคล้องกันเพื่อตัดออก สองตัวครอบคลุมคู่ RS-422 A/B และสองตัวครอบคลุมคู่ RS-422 Y/Z (ซึ่งใช้เป็นเทอร์มิเนต RS-485 A/B ด้วย) รวมสี่จัมเปอร์ทั้งหมด
เกี่ยวกับ RS-422 และ RS-485
มาตรฐานทั้งสองส่งข้อมูลซีเรียลเป็นสัญญาณสมดุล (ดิฟเฟอเรนเชียล) ผ่านสายบิดคู่สำหรับลิงก์ระยะไกลที่ทนต่อสัญญาณรบกวน:
RS-422 คือฟูลดูเพล็กซ์บนสายสี่เส้น ไดรเวอร์ส่งบนคู่ TX เฉพาะที่มีป้ายกำกับ Y/Z และอุปกรณ์อีกฝั่งส่งกลับบนคู่ RX แยกต่างหากที่มีป้ายกำกับ A/B ไดรเวอร์หนึ่งตัวและรีซีฟเวอร์ได้สูงสุดสิบตัวต่อคู่
RS-485 โดยทั่วไปคือฮาล์ฟดูเพล็กซ์บนสายสองเส้น การส่งและรับใช้คู่สายเดียวกัน เรียกว่า A/B ในคำศัพท์ RS-485 แต่ทางกายภาพคือสาย Y/Z เดิมบน shield นี้ โหนดได้สูงสุดสามสิบสองโหนดสามารถใช้บัสร่วมกันและโหนดใดก็ได้สามารถขับสัญญาณ
วิธีที่ shield รองรับทั้งสองมาตรฐาน
shield มีทรานซีฟเวอร์ THVD1426 สองตัว แต่ละตัวสามารถจัดการมาตรฐานใดก็ได้:
ทรานซีฟเวอร์ตัวแรก ขับคู่ Y/Z (ซึ่งใช้เป็นคู่ RS-485 A/B ด้วย) เป็นตัวเดียวที่มีไดรเวอร์เชื่อมต่ออยู่ ดังนั้นข้อมูลขาออกทั้งหมดจากกล้องออกทางคู่นี้โดยไม่ขึ้นกับโหมด
ทรานซีฟเวอร์ตัวที่สอง ขับคู่ A/B ไดรเวอร์ถูกตัดออก — ทรานซีฟเวอร์นี้เป็นรับเท่านั้นและสำคัญเฉพาะในโหมด RS-422 แบบ 4 สาย
รีซีฟเวอร์ของทรานซีฟเวอร์ทั้งสองทำงานตลอดเวลา และเอาต์พุต RX ถูก AND เข้าด้วยกันบนสายรับเดียวกลับไปยังกล้อง:
ในโหมด RS-485 แบบ 2 สาย มีเพียงทรานซีฟเวอร์ตัวแรกที่ทำงาน ต่อบัสที่ Y/Z ฝั่ง A/B ไม่ได้ใช้งานและเกต AND เพียงส่งผ่าน RX ของทรานซีฟเวอร์ตัวแรก
ในโหมด RS-422 แบบ 4 สาย อุปกรณ์อีกฝั่งส่งมายังกล้องบนคู่ A/B (รับโดยทรานซีฟเวอร์ตัวที่สอง) ขณะที่กล้องส่งบน Y/Z (โดยรีซีฟเวอร์ของทรานซีฟเวอร์ตัวแรกเอ้คโข้ข้อมูลขาออกกลับมาด้วย) เกต AND รวมกัน — คู่ใดก็ตามที่เห็นพัลส์ต่ำ (บิตเริ่ม, ข้อมูล) จะถึงกล้อง
ป้ายกำกับบล็อกเทอร์มินัลสะท้อนการแมปแบบคู่:
RS-422 (4 สาย) — TX ออกที่ Y/Z, RX เข้าที่ A/B
RS-485 (2 สาย) — TX/RX ใช้คู่ Y/Z ร่วมกัน (= A/B ในคำศัพท์ RS-485) ปล่อยเทอร์มินัล A/B บน shield ว่างไว้
การใช้งาน¶
Note
หมายเลขอุปกรณ์ต่อพ่วง UART(3) ด้านล่างตามการแมปของ STM32 บนโปรเซสเซอร์อื่นบัสที่ต่อกับพินเหล่านี้อาจแตกต่างกัน — ตรวจสอบเอกสารอ้างอิงบอร์ดของคุณ
สื่อสารกับอุปกรณ์ซีเรียลดิฟเฟอเรนเชียลบน P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
อ่านอินพุตบล็อกเทอร์มินัล AIN ผ่านพิน P6 ที่เปลี่ยนระดับแล้ว:
from machine import ADC
import time
ain = ADC("P6")
while True:
v = ain.read_u16() * 3.3 / 65535
print("AIN:", v * (5.0 / 3.3), "V")
time.sleep_ms(100)
ตอบสนองต่อขอบขาลงบนสาย SYN — ตัวอย่างเช่น เพื่อซิงค์กล้องกับอุปกรณ์อื่นที่ดึง SYN ต่ำ:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)