RS422/RS485 Shield¶
De RS422/RS485 Shield geeft de OpenMV Cam een differentiële seriële verbinding over lange afstand, geschikt voor industriële bussen, met brede-ingangsvoeding, overspanningsbeveiliging en ADC/digitale I/O.
Voor de volledige datasheet, foto’s en bestelinformatie, zie de productpagina van de RS422/RS485 Shield.
Hoogtepunten¶
10 Mb/s RS-422 of RS-485 met afsluiting aan boord
Ingang van 6-36 V, tolerant voor omgekeerde spanning
0-5 V ADC-ingang met ±36 V overspanningsbeveiliging
0-5 V digitale I/O voor camerasynchronisatie-triggers, kortsluitbeveiligd
Pinout¶
Pinreferentie¶
Pin |
Functie |
|---|---|
P4 |
RS-422 / RS-485 TX → stuurt de differentiële lijn naar buiten |
P5 |
RS-422 / RS-485 RX ← ontvangt de differentiële lijn binnen |
P6 |
Niveau-verschoven AIN-uitlezing (0–3,3 V op P6) |
P10 |
SYN — open-drain digitale I/O op het klemmenblok |
PWR in |
6–36 V brede ingang op het klemmenblok (tolerant voor omgekeerde spanning) |
AIN in |
Analoge ingang op het klemmenblok |
VIN out |
5,4 V bij maximaal 600 mA van de regelaar aan boord |
3.3V-rail |
Voedt de elektronica van de shield aan boord |
GND-rail |
Gemeenschappelijke massa |
Notitie
AIN is overspanningsbeveiligd tot ±36 V en is standaard een spanningsingang van 0–5 V, neergeschaald naar 0–3,3 V op P6. Overbrug de 4–20 mA-modus-shunt aan de voorkant van de shield om AIN om te schakelen naar een 4–20 mA-stroomluse-ingang.
Notitie
SYN is een open-drain digitale lijn, met een pull-up naar 3,3 V aan de camerazijde en 5 V aan de SYN-klemzijde. Standaard is het een ingang — de shield verschuift het niveau van 0–5 V op SYN omlaag naar 0–3,3 V op P10. Wijzig de soldeerjumper aan boord om P10 om te zetten naar een uitgang, waarbij het niveau van 0–3,3 V op P10 omhoog wordt verschoven naar 0–5 V op SYN.
Notitie
Elk van P4, P5, P6 en P10 is standaard verbonden met de camera via een soldeerjumper — open de jumper op elke pin die je voor andere doeleinden wilt hergebruiken. De jumper van P6 zit aan de achterkant van de shield; P4, P5 en P10 zitten aan de voorkant.
Notitie
De afsluitweerstanden aan boord zijn standaard verbonden — open de bijbehorende soldeerjumpers aan de achterkant om ze los te koppelen. Twee dekken het RS-422 A/B-paar af en twee dekken het RS-422 Y/Z-paar af (dat tevens dient als de RS-485 A/B-afsluiting), vier jumpers in totaal.
Over RS-422 en RS-485
Beide standaarden verzenden seriële data als een gebalanceerd (differentieel) signaal over getwiste paren voor verbindingen over lange afstand die tolerant zijn voor ruis:
RS-422 is full-duplex over vier draden. Een driver zendt op een speciaal TX-paar met het label Y/Z, en de peer zendt terug op een apart RX-paar met het label A/B. Eén zender en tot tien ontvangers per paar.
RS-485 is doorgaans half-duplex over twee draden. Zenden en ontvangen delen één enkel paar, in de RS-485-terminologie A/B genoemd maar fysiek dezelfde Y/Z-lijnen op deze shield. Tot tweeëndertig knooppunten kunnen de bus delen en elk ervan kan deze aansturen.
Hoe de shield beide ondersteunt
De shield bevat twee THVD1426-transceivers, die elk een van beide standaarden aankunnen:
De eerste transceiver stuurt het Y/Z-paar aan (dat tevens dient als het RS-485 A/B-paar). Het is de enige met zijn driver aangesloten, dus al het uitgaande verkeer van de camera gaat via dit paar naar buiten, ongeacht de modus.
De tweede transceiver stuurt het A/B-paar aan. Zijn driver is uitgeschakeld — deze transceiver is alleen-ontvangen en is alleen relevant in 4-draads RS-422-modus.
De ontvangers van beide transceivers zijn altijd ingeschakeld, en hun RX-uitgangen worden met een AND samengevoegd op één enkele ontvangstlijn terug naar de camera:
In de 2-draads RS-485-modus is alleen de eerste transceiver actief. Bedraad de bus naar Y/Z; de A/B-zijde blijft inactief en de AND-poort laat gewoon de RX van de eerste transceiver door.
In de 4-draads RS-422-modus zendt de peer naar de camera op het A/B-paar (opgepikt door de tweede transceiver) terwijl de camera zendt op Y/Z (waarbij de eigen ontvanger van de eerste transceiver de uitgaande data terug echoot). De AND-poort combineert ze — welk paar er ook een lage puls ziet (startbit, data) bereikt de camera.
De labels van het klemmenblok weerspiegelen de dubbele toewijzing:
RS-422 (4-draads) — TX uit op Y/Z, RX in op A/B.
RS-485 (2-draads) — TX/RX delen het Y/Z-paar (= A/B in de RS-485-nomenclatuur). Laat de A/B-klemmen op de shield onverbonden.
Gebruik¶
Notitie
Het UART(3)-randapparaatnummer hieronder volgt de STM32-toewijzing. Op een andere processor kan de bus die op deze pinnen is bedraad anders zijn — raadpleeg de referentie van je board.
Communiceer met een differentiële seriële peer op P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Lees de AIN-klemmenblokingang uit via de niveau-verschoven P6-pin:
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)
Reageer op een dalende flank op de SYN-lijn — bijvoorbeeld om de camera te synchroniseren met een ander apparaat dat SYN laag trekt:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)