CAN/RS232 Shield

CAN/RS232 Shield łączy transceiver CAN-FD z transceiverem RS-232, dzięki czemu OpenMV Cam może komunikować się z pojazdami, sterownikami i starszym sprzętem szeregowym z jednego shielda, zapewniając szerokie wejście zasilania i ochronę przed odwrotną polaryzacją napięcia.

CAN/RS232 Shield

Pełną dokumentację, zdjęcia i informacje o zamawianiu znajdziesz na stronie produktu CAN/RS232 Shield.

Najważniejsze cechy

  • CAN-FD 8 Mb/s z wbudowaną terminacją i filtrowaniem

  • RS-232 1 Mb/s ze zintegrowanym filtrowaniem

  • Wejście 6-36 V, odporne na odwrotną polaryzację napięcia

  • Wejście ADC 0-5 V z ochroną przeciwprzepięciową ±36 V

  • Cyfrowe I/O 0-5 V do wyzwalaczy synchronizacji kamery, zabezpieczone przed zwarciem

Rozmieszczenie pinów

Rozmieszczenie pinów CAN/RS232 Shield

Opis pinów

Pin

Funkcja

P1

CAN TX → wejście transceivera (domyślnie)

P2

CAN TX → wejście transceivera (alternatywnie)

P3

CAN RX ← wyjście transceivera

P4

RS-232 TX → steruje linią wyjściową

P5

RS-232 RX ← odbiera linię wejściową

P6

Odczyt AIN z konwersją poziomu (0–3.3 V na P6)

P10

SYN — cyfrowe I/O typu open-drain na listwie zaciskowej

PWR in

Szerokie wejście 6–36 V na listwie zaciskowej (odporne na odwrotną polaryzację napięcia)

AIN in

Wejście analogowe na listwie zaciskowej

VIN out

5.4 V przy maksymalnie 600 mA z wbudowanego stabilizatora

szyna 3.3V

Zasila wbudowaną elektronikę shielda

szyna GND

Wspólna masa

Informacja

AIN jest zabezpieczone przeciwprzepięciowo do ±36 V i domyślnie jest wejściem napięciowym 0–5 V, skalowanym w dół do 0–3.3 V na P6. Zewrzyj shunt trybu 4–20 mA na froncie shielda, aby przełączyć AIN na wejście pętli prądowej 4–20 mA.

Informacja

SYN to cyfrowa linia open-drain, podciągnięta do 3.3 V po stronie kamery i do 5 V po stronie zacisku SYN. Domyślnie jest wejściem — shield konwertuje poziom 0–5 V na SYN w dół do 0–3.3 V na P10. Zmień wbudowaną zworkę lutowaną, aby przełączyć P10 w wyjście, konwertując poziom 0–3.3 V na P10 w górę do 0–5 V na SYN.

Informacja

Każdy z pinów P1, P2, P3, P4, P5, P6 i P10 może zostać przejęty do innych zastosowań. P1, P3, P4, P5, P6 i P10 są domyślnie połączone — P1, P3, P6 i P10 przez zworki lutowane od spodu, a P4 i P5 przez zworki lutowane od frontu. Rozewrzyj zworkę na dowolnym pinie, który chcesz zwolnić. P2 jest domyślnie odłączony: zewrzyj jego zworkę od spodu, aby zamiast tego skierować CAN TX na P2 (i rozewrzyj zworkę od spodu P1, aby zwolnić P1).

Informacja

Podział P1/P2 istnieje po to, by shield działał w różnych rodzinach procesorów. Płytki OpenMV Cam IMXRT (RT1062) mogą skierować CAN na P1, więc używają domyślnego mapowania. Płytki STM32 nie mogą osiągnąć P1 swoim peryferium CAN, więc zewrzyj zworkę od spodu P2 (i rozewrzyj zworkę P1), aby użyć wariantu alternatywnego.

Informacja

Terminacja magistrali CAN jest domyślnie podłączona — podzielona na dwie połówki po 60 Ω połączone szeregowo między CANH i CANL, z kondensatorem do masy w punkcie środkowym (terminacja dzielona 120 Ω sprzężona AC). Rozewrzyj dwa pady lutownicze, aby niezależnie odłączyć każdą połówkę.

Użycie

Informacja

Numery peryferiów CAN(0) i UART(1) poniżej odpowiadają mapowaniu IMXRT (domyślne okablowanie P1). Na innym procesorze magistrala połączona z tymi pinami może być inna — sprawdź dokumentację swojej płytki.

Wysyłaj i odbieraj ramki CAN-FD — TX na P1 (domyślnie) lub P2 (alternatywnie), 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())

Wykonuj echo bajtów przez RS-232 na P4 (TX) / P5 (RX):

from machine import UART

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

Odczytuj wejście listwy zaciskowej AIN przez pin P6 z konwersją poziomu:

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)

Reaguj na zbocze opadające na linii SYN — na przykład, aby zsynchronizować kamerę z innym urządzeniem ściągającym SYN do stanu niskiego:

from machine import Pin

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

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