RS422/RS485 Shield¶
RS422/RS485 Shield ger OpenMV Cam en differentiell seriell länk för långa avstånd, lämpad för industriella bussar, med brett ingångsintervall för ström, överspänningsskydd och ADC/digital I/O.
För fullständigt datablad, foton och beställning, se produktsidan för RS422/RS485 Shield.
Höjdpunkter¶
10 Mb/s RS-422 eller RS-485 med inbyggd terminering
6–36 V-ingång, tål omvänd spänning
0–5 V ADC-ingång med ±36 V överspänningsskydd
0–5 V digital I/O för kamerasynkroniseringstriggar, kortslutningsskyddad
Stiftschema¶
Stiftreferens¶
Stift |
Funktion |
|---|---|
P4 |
RS-422 / RS-485 TX → driver den differentiella linjen ut |
P5 |
RS-422 / RS-485 RX ← tar emot den differentiella linjen in |
P6 |
Nivåväxlad AIN-avläsning (0–3,3 V på P6) |
P10 |
SYN — digital I/O med öppen drain på kopplingsplinten |
PWR in |
6–36 V brett ingångsintervall på kopplingsplinten (tål omvänd spänning) |
AIN in |
Analog ingång på kopplingsplinten |
VIN ut |
5,4 V vid upp till 600 mA från den inbyggda regulatorn |
3,3 V-skena |
Driver shieldets inbyggda elektronik |
GND-skena |
Gemensam jord |
Anteckning
AIN är överspänningsskyddat upp till ±36 V och har som standard en spänningsingång på 0–5 V, nedskalad till 0–3,3 V på P6. Brygga shunten för 4–20 mA-läget på framsidan av shieldet för att växla AIN till en strömslingsingång på 4–20 mA.
Anteckning
SYN är en digital linje med öppen drain, uppdragen till 3,3 V på kamerasidan och 5 V på SYN-plintsidan. Som standard är den en ingång — shieldet nivåväxlar 0–5 V på SYN ned till 0–3,3 V på P10. Ändra den inbyggda lödbygeln för att vända P10 till en utgång, med nivåväxling av 0–3,3 V på P10 upp till 0–5 V på SYN.
Anteckning
Vart och ett av P4, P5, P6 och P10 är som standard anslutet till kameran via en lödbygel — öppna bygeln på det stift du vill återanvända för annat bruk. P6:s bygel sitter på baksidan av shieldet; P4, P5 och P10 sitter på framsidan.
Anteckning
De inbyggda termineringsmotstånden är anslutna som standard — öppna motsvarande lödbyglar på baksidan för att koppla bort dem. Två täcker RS-422 A/B-paret och två täcker RS-422 Y/Z-paret (som också fungerar som RS-485 A/B-termineringen), fyra byglar totalt.
Om RS-422 och RS-485
Båda standarderna skickar seriell data som en balanserad (differentiell) signal över tvinnade par för långa avstånd och störningståliga länkar:
RS-422 är full duplex över fyra trådar. En sändare överför på ett dedikerat TX-par märkt Y/Z, och motparten sänder tillbaka på ett separat RX-par märkt A/B. En sändare och upp till tio mottagare per par.
RS-485 är typiskt halv duplex över två trådar. Sändning och mottagning delar ett enda par, kallat A/B i RS-485-terminologi men fysiskt samma Y/Z-linjer på detta shield. Upp till trettiotvå noder kan dela bussen och vilken som helst av dem kan driva den.
Hur shieldet stödjer båda
Shieldet har två THVD1426-transceivrar, var och en kapabel att hantera endera standarden:
Den första transceivern driver Y/Z-paret (som också fungerar som RS-485 A/B-paret). Den är den enda med sin sändare inkopplad, så all utgående trafik från kameran går ut via detta par oavsett läge.
Den andra transceivern driver A/B-paret. Dess sändare är bortkopplad — denna transceiver är endast mottagande och har bara betydelse i 4-trådsläget RS-422.
Båda transceivrarnas mottagare är alltid aktiverade, och deras RX-utgångar AND:as samman på en enda mottagningslinje tillbaka till kameran:
I 2-trådsläget RS-485 är endast den första transceivern aktiv. Koppla bussen till Y/Z; A/B-sidan ligger overksam och AND-grinden släpper bara igenom den första transceiverns RX.
I 4-trådsläget RS-422 sänder motparten till kameran på A/B-paret (uppfångat av den andra transceivern) medan kameran sänder på Y/Z (där den första transceiverns egen mottagare ekar tillbaka dess utgående data). AND-grinden kombinerar dem — vilket par som än ser en låg puls (startbit, data) når kameran.
Etiketterna på kopplingsplinten återspeglar den dubbla mappningen:
RS-422 (4-tråds) — TX ut på Y/Z, RX in på A/B.
RS-485 (2-tråds) — TX/RX delar Y/Z-paret (= A/B i RS-485-nomenklatur). Lämna A/B-plintarna på shieldet ouppkopplade.
Användning¶
Anteckning
Kringutrustningsnumret UART(3) nedan följer STM32-mappningen. På en annan processor kan bussen som är kopplad till dessa stift vara en annan — kontrollera ditt korts referens.
Kommunicera med en differentiell seriell motpart på P4 (TX) / P5 (RX):
from machine import UART
uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Läs AIN-plintingången via det nivåväxlade stiftet 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)
Reagera på en fallande flank på SYN-linjen — till exempel för att synkronisera kameran med en annan enhet som drar SYN lågt:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)