RS422/RS485 Shield

RS422/RS485 Shield มอบลิงก์ซีเรียลดิฟเฟอเรนเชียลระยะไกลที่เหมาะกับบัสอุตสาหกรรมให้กับ OpenMV Cam พร้อมอินพุตแรงดันกว้าง การป้องกันไฟกระชาก และ ADC/I/O ดิจิทัล

RS422/RS485 Shield

สำหรับข้อมูลจำเพาะเต็ม ภาพถ่าย และการสั่งซื้อ ดูที่ หน้าผลิตภัณฑ์ RS422/RS485 Shield

จุดเด่น

  • RS-422 หรือ RS-485 ความเร็ว 10 Mb/s พร้อมตัวต้านทานเทอร์มิเนตบนบอร์ด

  • อินพุต 6-36 V ทนแรงดันไฟย้อน

  • อินพุต ADC 0-5 V พร้อมการป้องกันแรงดันเกิน ±36 V

  • I/O ดิจิทัล 0-5 V สำหรับทริกเกอร์ซิงค์กล้อง ป้องกันการลัดวงจร

แผนผังพิน

RS422/RS485 Shield Pinout

อ้างอิงพิน

พิน

หน้าที่

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)