RS422/RS485 Shield¶
Das RS422/RS485 Shield bietet der OpenMV Cam eine differenzielle serielle Verbindung über große Entfernungen, die sich für Industriebusse eignet, mit Weitbereichseingang, Überspannungsschutz und ADC-/Digital-I/O.
Vollständiges Datenblatt, Fotos und Bestellinformationen finden Sie auf der Produktseite des RS422/RS485 Shields.
Highlights¶
10 Mb/s RS-422 oder RS-485 mit integrierter Terminierung
6–36-V-Eingang, verpolungstolerant
0–5-V-ADC-Eingang mit ±36-V-Überspannungsschutz
0–5-V-Digital-I/O für Kamera-Synchronisationsauslöser, kurzschlussgeschützt
Pinbelegung¶
Pin-Referenz¶
Pin |
Funktion |
|---|---|
P4 |
RS-422 / RS-485 TX → treibt die differenzielle Leitung nach außen |
P5 |
RS-422 / RS-485 RX ← empfängt die differenzielle Leitung von außen |
P6 |
Pegelverschobene AIN-Rücklesung (0–3,3 V an P6) |
P10 |
SYN — Open-Drain-Digital-I/O an der Klemmleiste |
PWR in |
6–36-V-Weitbereichseingang an der Klemmleiste (verpolungstolerant) |
AIN in |
Analogeingang an der Klemmleiste |
VIN out |
5,4 V bei bis zu 600 mA vom integrierten Regler |
3.3V rail |
Versorgt die integrierte Elektronik des Shields |
GND rail |
Gemeinsame Masse |
Bemerkung
AIN ist bis zu ±36 V überspannungsgeschützt und ist standardmäßig ein 0–5-V-Spannungseingang, der auf 0–3,3 V an P6 herunterskaliert wird. Überbrücken Sie den 4–20-mA-Modus-Shunt auf der Vorderseite des Shields, um AIN auf einen 4–20-mA-Stromschleifeneingang umzuschalten.
Bemerkung
SYN ist eine Open-Drain-Digitalleitung, die auf der Kameraseite auf 3,3 V und auf der SYN-Klemmenseite auf 5 V hochgezogen wird. Standardmäßig ist sie ein Eingang — das Shield verschiebt den Pegel von 0–5 V an SYN auf 0–3,3 V an P10 herunter. Ändern Sie die integrierte Lötbrücke, um P10 in einen Ausgang umzuwandeln, der den Pegel von 0–3,3 V an P10 auf 0–5 V an SYN hochverschiebt.
Bemerkung
Jeder der Pins P4, P5, P6 und P10 ist standardmäßig über eine Lötbrücke mit der Kamera verbunden — öffnen Sie die Brücke an dem Pin, den Sie für andere Zwecke wiederverwenden möchten. Die Brücke von P6 befindet sich auf der Rückseite des Shields; die von P4, P5 und P10 auf der Vorderseite.
Bemerkung
Die integrierten Terminierungswiderstände sind standardmäßig verbunden — öffnen Sie die entsprechenden rückseitigen Lötbrücken, um sie zu trennen. Zwei decken das RS-422-A/B-Paar ab und zwei das RS-422-Y/Z-Paar (das gleichzeitig als RS-485-A/B-Terminierung dient), insgesamt also vier Brücken.
Über RS-422 und RS-485
Beide Standards senden serielle Daten als symmetrisches (differenzielles) Signal über verdrillte Adernpaare für rauschtolerante Verbindungen über große Entfernungen:
RS-422 ist Vollduplex über vier Adern. Ein Treiber sendet über ein dediziertes TX-Paar mit der Bezeichnung Y/Z, und die Gegenstelle sendet über ein separates RX-Paar mit der Bezeichnung A/B zurück. Ein Sender und bis zu zehn Empfänger pro Paar.
RS-485 ist typischerweise Halbduplex über zwei Adern. Senden und Empfangen teilen sich ein einziges Paar, das in der RS-485-Terminologie A/B heißt, physikalisch aber denselben Y/Z-Leitungen auf diesem Shield entspricht. Bis zu zweiunddreißig Knoten können sich den Bus teilen und jeder von ihnen kann ihn treiben.
Wie das Shield beide unterstützt
Das Shield trägt zwei THVD1426-Transceiver, von denen jeder beide Standards verarbeiten kann:
Der erste Transceiver treibt das Y/Z-Paar (das gleichzeitig als RS-485-A/B-Paar dient). Es ist der einzige mit angeschlossenem Treiber, sodass der gesamte ausgehende Verkehr von der Kamera unabhängig vom Modus über dieses Paar läuft.
Der zweite Transceiver treibt das A/B-Paar. Sein Treiber ist abgeschaltet — dieser Transceiver ist nur empfangsfähig und nur im 4-Draht-RS-422-Modus von Bedeutung.
Die Empfänger beider Transceiver sind immer aktiviert, und ihre RX-Ausgänge werden per UND-Verknüpfung auf einer einzigen Empfangsleitung zur Kamera zusammengeführt:
Im 2-Draht-RS-485-Modus ist nur der erste Transceiver aktiv. Verdrahten Sie den Bus mit Y/Z; die A/B-Seite bleibt im Leerlauf und das UND-Gatter leitet einfach das RX des ersten Transceivers durch.
Im 4-Draht-RS-422-Modus sendet die Gegenstelle über das A/B-Paar an die Kamera (aufgenommen vom zweiten Transceiver), während die Kamera über Y/Z sendet (wobei der eigene Empfänger des ersten Transceivers seine ausgehenden Daten zurückspiegelt). Das UND-Gatter kombiniert beide — welches Paar auch immer einen Low-Impuls (Startbit, Daten) sieht, erreicht die Kamera.
Die Beschriftungen der Klemmleiste spiegeln die doppelte Zuordnung wider:
RS-422 (4-Draht) — TX aus über Y/Z, RX ein über A/B.
RS-485 (2-Draht) — TX/RX teilen sich das Y/Z-Paar (= A/B in der RS-485-Nomenklatur). Lassen Sie die A/B-Klemmen auf dem Shield unverbunden.
Verwendung¶
Bemerkung
Die unten verwendete Peripherie-Nummer UART(3) folgt der STM32-Zuordnung. Auf einem anderen Prozessor kann der an diese Pins verdrahtete Bus abweichen — prüfen Sie die Referenz Ihres Boards.
Kommunizieren Sie mit einer differenziellen seriellen Gegenstelle über P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Lesen Sie den AIN-Klemmleisteneingang über den pegelverschobenen Pin P6 aus:
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)
Reagieren Sie auf eine fallende Flanke an der SYN-Leitung — zum Beispiel, um die Kamera mit einem anderen Gerät zu synchronisieren, das SYN auf Low zieht:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)