RS422/RS485 Shield¶
RS422/RS485 Shield oferă camerei OpenMV Cam o legătură serială diferențială de lungă distanță, potrivită pentru magistrale industriale, cu alimentare cu intrare largă, protecție la supratensiune și I/O ADC/digital.
Pentru fișa tehnică completă, fotografii și comandă, consultați pagina de produs RS422/RS485 Shield.
Caracteristici principale¶
RS-422 sau RS-485 la 10 Mb/s cu terminație integrată
Intrare de 6-36 V, tolerantă la tensiune inversă
Intrare ADC de 0-5 V cu protecție la supratensiune de ±36 V
I/O digital de 0-5 V pentru declanșatoare de sincronizare a camerei, protejat la scurtcircuit
Pinout¶
Referință pini¶
Pin |
Funcție |
|---|---|
P4 |
RS-422 / RS-485 TX → acționează linia diferențială de ieșire |
P5 |
RS-422 / RS-485 RX ← primește linia diferențială de intrare |
P6 |
Citire AIN cu translatare de nivel (0–3,3 V pe P6) |
P10 |
SYN — I/O digital open-drain pe blocul de borne |
PWR in |
Intrare largă de 6–36 V pe blocul de borne (tolerantă la tensiune inversă) |
AIN in |
Intrare analogică pe blocul de borne |
VIN out |
5,4 V la până la 600 mA de la regulatorul integrat |
Magistrală 3,3 V |
Alimentează componentele electronice integrate ale shield-ului |
Magistrală GND |
Masă comună |
Notă
AIN este protejat la supratensiune până la ±36 V și este implicit o intrare de tensiune de 0–5 V, redusă la 0–3,3 V pe P6. Conectați șuntul de mod 4–20 mA de pe fața shield-ului pentru a comuta AIN la o intrare în buclă de curent de 4–20 mA.
Notă
SYN este o linie digitală open-drain, ridicată la 3,3 V pe partea camerei și la 5 V pe partea bornei SYN. În mod implicit este o intrare — shield-ul translatează nivelul de 0–5 V de pe SYN la 0–3,3 V pe P10. Modificați jumperul de lipire integrat pentru a transforma P10 într-o ieșire, translatând nivelul de 0–3,3 V de pe P10 la 0–5 V pe SYN.
Notă
Fiecare dintre P4, P5, P6 și P10 este conectat la cameră în mod implicit printr-un jumper de lipire — deschideți jumperul de pe orice pin doriți să îl recuperați pentru utilizare neînrudită. Jumperul lui P6 este pe spatele shield-ului; P4, P5 și P10 sunt pe față.
Notă
Rezistențele de terminație integrate sunt conectate în mod implicit — deschideți jumperii de lipire corespunzători de pe spate pentru a le deconecta. Doi acoperă perechea RS-422 A/B și doi acoperă perechea RS-422 Y/Z (care servește și ca terminație RS-485 A/B), patru jumperi în total.
Despre RS-422 și RS-485
Ambele standarde transmit date seriale ca un semnal echilibrat (diferențial) prin perechi torsadate, pentru legături de lungă distanță, tolerante la zgomot:
RS-422 este full-duplex pe patru fire. Un driver transmite pe o pereche TX dedicată etichetată Y/Z, iar partenerul transmite înapoi pe o pereche RX separată etichetată A/B. Un transmițător și până la zece receptoare per pereche.
RS-485 este de obicei half-duplex pe două fire. Transmisia și recepția împart o singură pereche, numită A/B în terminologia RS-485, dar fizic aceleași linii Y/Z pe acest shield. Până la treizeci și două de noduri pot împărți magistrala și oricare dintre ele o poate acționa.
Cum suportă shield-ul ambele
Shield-ul include două transceivere THVD1426, fiecare capabil să gestioneze oricare standard:
Primul transceiver acționează perechea Y/Z (care servește și ca pereche RS-485 A/B). Este singurul cu driverul conectat, deci tot traficul de ieșire din cameră iese pe această pereche, indiferent de mod.
Al doilea transceiver acționează perechea A/B. Driverul său este dezactivat — acest transceiver este doar de recepție și contează doar în modul RS-422 pe 4 fire.
Receptoarele ambelor transceivere sunt mereu activate, iar ieșirile lor RX sunt combinate prin AND pe o singură linie de recepție către cameră:
În modul RS-485 pe 2 fire, doar primul transceiver este activ. Cablați magistrala la Y/Z; partea A/B rămâne inactivă, iar poarta AND doar lasă să treacă RX-ul primului transceiver.
În modul RS-422 pe 4 fire, partenerul transmite către cameră pe perechea A/B (preluată de al doilea transceiver), în timp ce camera transmite pe Y/Z (cu propriul receptor al primului transceiver returnând datele de ieșire). Poarta AND le combină — oricare pereche vede un puls jos (bit de start, date) ajunge la cameră.
Etichetele blocului de borne reflectă maparea duală:
RS-422 (4 fire) — TX de ieșire pe Y/Z, RX de intrare pe A/B.
RS-485 (2 fire) — TX/RX împart perechea Y/Z (= A/B în nomenclatura RS-485). Lăsați bornele A/B de pe shield neconectate.
Utilizare¶
Notă
Numărul perifericului UART(3) de mai jos respectă maparea STM32. Pe alt procesor, magistrala cablată la acești pini poate fi diferită — verificați referința plăcii dvs.
Comunicați cu un partener serial diferențial pe P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Citiți intrarea de pe borna AIN prin pinul P6 cu translatare de nivel:
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)
Reacționați la o muchie descendentă pe linia SYN — de exemplu, pentru a sincroniza camera cu un alt dispozitiv care trage SYN la nivel jos:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)