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.
Anteckning
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 |
Anteckning
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).
Anteckning
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.
Anteckning
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.
Anteckning
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¶
Anteckning
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