CAN/RS232 Shield

CAN/RS232 Shield kombinira CAN-FD primopredajnik s RS-232 primopredajnikom tako da OpenMV Cam može komunicirati s vozilima, kontrolerima i starijom serijskom opremom s jednog shielda, uz široki raspon ulaznog napajanja i zaštitu od obrnutog napona.

CAN/RS232 Shield

Za potpunu tehničku dokumentaciju, fotografije i naručivanje pogledajte stranicu proizvoda CAN/RS232 Shield.

Istaknute značajke

  • 8 Mb/s CAN-FD s ugrađenom terminacijom i filtriranjem

  • 1 Mb/s RS-232 s integriranim filtriranjem

  • Ulaz od 6-36 V, tolerantan na obrnuti napon

  • 0-5 V ADC ulaz s prenaponskom zaštitom od ±36 V

  • 0-5 V digitalni U/I za okidače sinkronizacije kamere, sa zaštitom od kratkog spoja

Raspored pinova

Raspored pinova CAN/RS232 Shielda

Referenca pinova

Pin

Funkcija

P1

CAN TX → ulaz primopredajnika (zadano)

P2

CAN TX → ulaz primopredajnika (alternativno)

P3

CAN RX ← izlaz primopredajnika

P4

RS-232 TX → pobuđuje izlaznu liniju

P5

RS-232 RX ← prima ulaznu liniju

P6

AIN očitanje s pomaknutom razinom (0–3.3 V na P6)

P10

SYN — open-drain digitalni U/I na rednom priključku

PWR ulaz

Širok ulaz od 6–36 V na redni priključak (tolerantan na obrnuti napon)

AIN ulaz

Analogni ulaz na rednom priključku

VIN izlaz

5.4 V do 600 mA iz ugrađenog regulatora

3.3V napajanje

Napaja elektroniku na samom shieldu

GND napajanje

Zajednička masa

Napomena

AIN je prenaponski zaštićen do ±36 V i zadano je naponski ulaz od 0–5 V, skaliran na 0–3.3 V na P6. Premostite shunt za način rada 4–20 mA na prednjoj strani shielda kako biste AIN prebacili na strujni ulaz petlje 4–20 mA.

Napomena

SYN je open-drain digitalna linija, podignuta na 3.3 V na strani kamere i 5 V na strani SYN priključka. Zadano je ulaz — shield pomiče razinu s 0–5 V na SYN na 0–3.3 V na P10. Promijenite lemni premosnik na pločici kako biste P10 prebacili u izlaz, pomičući razinu s 0–3.3 V na P10 na 0–5 V na SYN.

Napomena

Svaki od pinova P1, P2, P3, P4, P5, P6 i P10 može se preuzeti za druge namjene. P1, P3, P4, P5, P6 i P10 zadano su spojeni — P1, P3, P6 i P10 preko lemnih premosnika na stražnjoj strani, a P4 i P5 preko lemnih premosnika na prednjoj strani. Otvorite premosnik na bilo kojem pinu koji želite osloboditi. P2 je zadano odspojen: premostite njegov stražnji premosnik kako biste CAN TX umjesto toga usmjerili na P2 (i otvorite stražnji premosnik za P1 kako biste oslobodili P1).

Napomena

Podjela P1/P2 postoji kako bi shield radio s različitim porodicama procesora. OpenMV Cam IMXRT pločice (RT1062) mogu usmjeriti CAN na P1, pa koriste zadano mapiranje. STM32 pločice ne mogu doći do P1 svojom CAN periferijom, pa premostite stražnji premosnik za P2 (i otvorite onaj za P1) kako biste koristili alternativu.

Napomena

Terminacija CAN sabirnice zadano je spojena — podijeljena na dvije polovice od 60 Ω u seriji između CANH i CANL s kondenzatorom prema masi na sredini (120 Ω AC-spregnuta podijeljena terminacija). Otvorite dvije lemne pločice kako biste neovisno odspojili svaku polovicu.

Upotreba

Napomena

Brojevi periferija CAN(0) i UART(1) u nastavku slijede IMXRT mapiranje (zadano ožičenje P1). Na drugom procesoru sabirnica ožičena na ove pinove može biti drugačija — provjerite referencu svoje pločice.

Slanje i primanje CAN-FD sličica — TX na P1 (zadano) ili P2 (alternativno), RX na P3:

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())

Odjek bajtova preko RS-232 na P4 (TX) / P5 (RX):

from machine import UART

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

Očitajte ulaz AIN rednog priključka kroz pin P6 s pomaknutom razinom:

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)

Reagirajte na silazni brid na liniji SYN — primjerice, za sinkronizaciju kamere s drugim uređajem koji povlači SYN nisko:

from machine import Pin

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

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