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.

RS422/RS485 Shield

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

RS422/RS485 Shield 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)