CAN/RS232 Shield¶
De CAN/RS232 Shield combineert een CAN-FD-transceiver met een RS-232-transceiver zodat de OpenMV Cam vanuit één shield kan communiceren met voertuigen, controllers en oudere seriële apparatuur, met brede-ingangsvoeding en bescherming tegen omgekeerde spanning.
Voor de volledige datasheet, foto’s en bestelinformatie zie de CAN/RS232 Shield productpagina.
Hoogtepunten¶
8 Mb/s CAN-FD met afsluiting en filtering op de print
1 Mb/s RS-232 met geïntegreerde filtering
6-36 V-ingang, bestand tegen omgekeerde spanning
0-5 V ADC-ingang met ±36 V overspanningsbeveiliging
0-5 V digitale I/O voor camera-synctriggers, beveiligd tegen kortsluiting
Pinout¶
Pinreferentie¶
Pin |
Functie |
|---|---|
P1 |
CAN TX → transceiver in (standaard) |
P2 |
CAN TX → transceiver in (alternatief) |
P3 |
CAN RX ← transceiver uit |
P4 |
RS-232 TX → stuurt de lijn uit |
P5 |
RS-232 RX ← ontvangt de lijn in |
P6 |
Level-shifted AIN-uitlezing (0–3,3 V op P6) |
P10 |
SYN — open-drain digitale I/O op het klemmenblok |
PWR in |
6–36 V brede ingang op het klemmenblok (bestand tegen omgekeerde spanning) |
AIN in |
Analoge ingang op het klemmenblok |
VIN out |
5,4 V tot 600 mA van de regelaar op de print |
3,3V-rail |
Voedt de elektronica op de print van de shield |
GND-rail |
Gemeenschappelijke ground |
Notitie
AIN is overspanningsbeveiligd tot ±36 V en is standaard ingesteld op een 0–5 V-spanningsingang, omlaag geschaald naar 0–3,3 V op P6. Overbrug de 4–20 mA-modusshunt aan de voorkant van de shield om AIN om te schakelen naar een 4–20 mA-stroomlusingang.
Notitie
SYN is een open-drain digitale lijn, opgetrokken naar 3,3 V aan de camerazijde en 5 V aan de SYN-klemzijde. Standaard is het een ingang — de shield shift het niveau van 0–5 V op SYN omlaag naar 0–3,3 V op P10. Wijzig de soldeerjumper op de print om P10 om te zetten naar een uitgang, waarbij 0–3,3 V op P10 omhoog wordt geschaald naar 0–5 V op SYN.
Notitie
Elk van P1, P2, P3, P4, P5, P6 en P10 kan worden teruggewonnen voor ander gebruik. P1, P3, P4, P5, P6 en P10 zijn standaard verbonden — P1, P3, P6 en P10 via soldeerjumpers aan de achterkant, P4 en P5 via soldeerjumpers aan de voorkant. Open de jumper op elke pin die je wilt vrijmaken. P2 is standaard losgekoppeld: overbrug de jumper aan de achterkant om CAN TX in plaats daarvan naar P2 te routeren (en open de achterkantjumper van P1 om P1 vrij te geven).
Notitie
De splitsing tussen P1/P2 bestaat zodat de shield werkt over verschillende processorfamilies. De OpenMV Cam IMXRT-boards (RT1062) kunnen CAN naar P1 routeren, dus zij gebruiken de standaardtoewijzing. STM32-boards kunnen P1 niet bereiken met hun CAN-randapparaat, dus overbrug de achterkantjumper van P2 (en open die van P1) om het alternatief te gebruiken.
Notitie
De CAN-busafsluiting is standaard verbonden — opgesplitst in twee helften van 60 Ω in serie tussen CANH en CANL met een condensator naar ground op het middelpunt (een 120 Ω AC-gekoppelde gesplitste afsluiting). Open de twee soldeerpads om elke helft afzonderlijk los te koppelen.
Gebruik¶
Notitie
De randapparaatnummers CAN(0) en UART(1) hieronder volgen de IMXRT-toewijzing (standaard P1-bedrading). Op een andere processor kan de bus die naar deze pins is bedraad anders zijn — raadpleeg de referentie van je board.
Verzend en ontvang CAN-FD-frames — TX op P1 (standaard) of P2 (alternatief), RX op 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())
Echo bytes via RS-232 op P4 (TX) / P5 (RX):
from machine import UART
uart = UART(1, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Lees de AIN-klemmenblokingang uit via de level-shifted P6-pin:
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)
Reageer op een dalende flank op de SYN-lijn — bijvoorbeeld om de camera te synchroniseren met een ander apparaat dat SYN laag trekt:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)