CAN Shield#
CAN Shield ger OpenMV Cam en CAN-bussanslutning via en DB9-kontakt, med en inbyggd 12 V till 5 V-regulator så att shielden kan driva kameran från en fordonsbuss.
För fullständigt datablad, foton och beställning, se produktsidan för CAN Shield.
Observera
Stöds inte på OpenMV Cam RT1062.
Höjdpunkter#
CAN-buss upp till 1 Mb/s
Inbyggd 12 V till 5 V-regulator
Stiftkonfiguration#
Stiftreferens#
Stift | Funktion |
|---|---|
P2 | CAN TX |
P3 | CAN RX |
P6 | CAN standby (valfritt — se anmärkning) |
PWR in | 12 V fordonsbussingång på DB9-kontakten |
VIN ut | 5 V regulatorutgång (driver kameran) |
3,3 V-skena | Driver SN65HVD230-logiken |
GND-skena | Gemensam jord |
Observera
SN65HVD230:ns standby-linje är som standard frånkopplad från P6. Anslut den inbyggda lödbryggan för att knyta den till P6, och driv sedan P6 högt för att försätta transceivern i lyssningsläge (standby) (lågt håller den i normalt sänd- och mottagningsläge).
Observera
CANL, CANH, VIN och GND från DB9-kontakten är också utförda till genomgående hål-lödöar på undersidan av shielden — löd dit ledningar om du vill hoppa över DB9:an helt.
Observera
DB9-stiftkonfigurationen kan ändras mellan den vanliga DB9 CAN-layouten och OBD-II-layouten genom att ändra de tre lödbygelbyglarna på undersidan av shielden.
Observera
Det inbyggda 120-ohms termineringsmotståndet är anslutet som standard. Det kan inaktiveras via en lödbrygga på undersidan av shielden för bussar som redan har terminering på annan plats.
Användning#
Observera
Kringutrustningsnumret CAN(1) nedan följer STM32-mappningen. På en annan processor kan bussen som är kopplad till dessa stift vara annorlunda — kontrollera ditt korts referens.
Skicka och ta emot bildrutor på CAN-bussen vid 1 Mb/s:
from machine import CAN
import time
can = CAN(2, 1_000_000)
can.set_filters(None)
can.send(0x123, b"\xDE\xAD\xBE\xEF")
print(can.recv())
Med den inbyggda lödbryggan ansluten, driv P6 högt för att försätta SN65HVD230 i lyssningsläge (standby) (lågt återställer den till normalt sänd- och mottagningsläge):
from machine import Pin
Pin("P6", Pin.OUT).value(1) # listen-only standby