CAN/RS232 Shield

A CAN/RS232 Shield egy CAN-FD adó-vevőt egyesít egy RS-232 adó-vevővel, így az OpenMV Cam egyetlen shieldről kommunikálhat járművekkel, vezérlőkkel és régebbi soros eszközökkel, széles bemeneti tápellátással és fordított polaritás elleni védelemmel.

CAN/RS232 Shield

A teljes adatlapért, fényképekért és a rendeléshez lásd a CAN/RS232 Shield termékoldalt.

Kiemelt jellemzők

  • 8 Mb/s CAN-FD beépített lezárással és szűréssel

  • 1 Mb/s RS-232 integrált szűréssel

  • 6-36 V-os bemenet, fordított polaritás-tűrő

  • 0-5 V-os ADC bemenet ±36 V-os túlfeszültség elleni védelemmel

  • 0-5 V-os digitális I/O kamera-szinkron triggerekhez, rövidzárlat ellen védve

Lábkiosztás

CAN/RS232 Shield lábkiosztás

Lábkiosztás referencia

Láb

Funkció

P1

CAN TX → adó-vevő be (alapértelmezett)

P2

CAN TX → adó-vevő be (alternatív)

P3

CAN RX ← adó-vevő ki

P4

RS-232 TX → meghajtja a kimeneti vonalat

P5

RS-232 RX ← fogadja a bemeneti vonalat

P6

Szintillesztett AIN visszaolvasás (0–3,3 V a P6-on)

P10

SYN — open-drain digitális I/O a sorkapcson

PWR be

6–36 V-os széles bemenet a sorkapcson (fordított polaritás-tűrő)

AIN be

Analóg bemenet a sorkapcson

VIN ki

5,4 V akár 600 mA-ig a beépített szabályozóról

3,3 V-os sín

Táplálja a shield beépített elektronikáját

GND sín

Közös föld

Megjegyzés

Az AIN ±36 V-ig túlfeszültség ellen védett, és alapértelmezetten 0–5 V-os feszültségbemenet, amely 0–3,3 V-ra van leskálázva a P6-on. Hidald át a 4–20 mA-es üzemmód söntjét a shield előlapján, hogy az AIN-t 4–20 mA-es áramhurok bemenetre váltsd.

Megjegyzés

A SYN egy open-drain digitális vonal, amely a kamera oldalán 3,3 V-ra, a SYN sorkapocs oldalán pedig 5 V-ra van felhúzva. Alapértelmezetten bemenet — a shield 0–5 V-ról 0–3,3 V-ra szintilleszti a SYN-t a P10-en. Módosítsd a beépített forrasztott áthidalást, hogy a P10-et kimenetre fordítsd, 0–3,3 V-ról 0–5 V-ra szintillesztve a P10-et a SYN-en.

Megjegyzés

A P1, P2, P3, P4, P5, P6 és P10 mindegyike más célra is felszabadítható. A P1, P3, P4, P5, P6 és P10 alapértelmezetten csatlakoztatva van — a P1, P3, P6 és P10 a hátoldali forrasztott áthidalásokon keresztül, a P4 és P5 az előlapi forrasztott áthidalásokon keresztül. Nyisd ki az áthidalást bármelyik lábon, amelyet fel akarsz szabadítani. A P2 alapértelmezetten leválasztott: hidald át a hátoldali áthidalását, hogy a CAN TX-et helyette a P2-re irányítsd (és nyisd ki a P1 hátoldali áthidalását a P1 felszabadításához).

Megjegyzés

A P1/P2 szétválasztás azért létezik, hogy a shield különböző processzorcsaládokon át működjön. Az OpenMV Cam IMXRT lapok (RT1062) a CAN-t a P1-re tudják irányítani, így az alapértelmezett leképezést használják. Az STM32 lapok nem érik el a P1-et a CAN perifériájukkal, ezért hidald át a P2 hátoldali áthidalását (és nyisd ki a P1-ét) az alternatíva használatához.

Megjegyzés

A CAN busz lezárása alapértelmezetten csatlakoztatva van — két 60 Ω-os félre osztva, sorba kötve a CANH és CANL között, középponton egy földre kötött kondenzátorral (egy 120 Ω-os AC-csatolt osztott lezárás). Nyisd ki a két forrasztási padot, hogy mindegyik felet egymástól függetlenül leválaszd.

Használat

Megjegyzés

Az alábbi CAN(0) és UART(1) perifériaszámok az IMXRT leképezést követik (alapértelmezett P1 bekötés). Egy másik processzoron az ezekre a lábakra bekötött busz eltérhet — ellenőrizd a lapod referenciáját.

Küldj és fogadj CAN-FD képkockákat — TX a P1-en (alapértelmezett) vagy a P2-n (alternatív), RX a P3-on:

from machine import CAN

can = CAN(2, 1_000_000)
can.set_filters(None)
can.send(0x123, b"\xDE\xAD\xBE\xEF")
print(can.recv())

Visszhangozz bájtokat RS-232-n a P4-en (TX) / P5-ön (RX):

from machine import UART

uart = UART(1, baudrate=115200)
uart.write("hello\n")
print(uart.read())

Olvasd be az AIN sorkapocs bemenetet a szintillesztett P6 lábon keresztül:

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)

Reagálj egy lefutó élre a SYN vonalon — például a kamera szinkronizálásához egy másik eszközzel, amely a SYN-t alacsonyra húzza:

from machine import Pin

def on_sync(pin):
    print("SYN falling edge")

syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)