CAN Shield¶
De CAN Shield geeft de OpenMV Cam een CAN-busverbinding via een DB9-connector, met een 12 V-naar-5 V-regelaar op de print zodat de shield de camera vanaf een voertuigbus kan voeden.
Voor de volledige datasheet, foto’s en bestelinformatie zie de CAN Shield productpagina.
Notitie
Niet ondersteund op de OpenMV Cam RT1062.
Hoogtepunten¶
CAN-bus tot 1 Mb/s
12 V-naar-5 V-regelaar op de print
Pinout¶
Pinreferentie¶
Pin |
Functie |
|---|---|
P2 |
CAN TX |
P3 |
CAN RX |
P6 |
CAN standby (optioneel — zie opmerking) |
PWR in |
12 V voertuigbusingang op de DB9-connector |
VIN out |
5 V-regelaaruitgang (voedt de camera) |
3,3V-rail |
Voedt de SN65HVD230-logica |
GND-rail |
Gemeenschappelijke ground |
Notitie
De standby-lijn van de SN65HVD230 is standaard losgekoppeld van P6. Verbind de soldeerbrug op de print om hem aan P6 te koppelen, en stuur P6 vervolgens hoog om de transceiver in listen-only standby-modus te zetten (laag houdt hem in de normale zend-en-ontvangmodus).
Notitie
CANL, CANH, VIN en GND van de DB9-connector zijn ook uitgevoerd naar through-hole-pads aan de onderkant van de shield — soldeer daar draden als je de DB9 helemaal wilt overslaan.
Notitie
De DB9-pinout kan worden gewijzigd tussen de standaard DB9 CAN-indeling en de OBD-II-indeling door de drie soldeerbrugjumpers aan de onderkant van de shield te wijzigen.
Notitie
De 120-ohm-afsluitweerstand op de print is standaard verbonden. Hij kan worden uitgeschakeld via een soldeerbrug aan de onderkant van de shield voor bussen die elders al afsluiting hebben.
Gebruik¶
Notitie
Het randapparaatnummer CAN(1) hieronder volgt de STM32-toewijzing. Op een andere processor kan de bus die naar deze pins is bedraad anders zijn — raadpleeg de referentie van je board.
Verzend en ontvang frames op de CAN-bus met 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())
Met de soldeerbrug op de print verbonden, stuur P6 hoog om de SN65HVD230 in listen-only standby-modus te zetten (laag brengt hem terug naar normaal zenden en ontvangen):
from machine import Pin
Pin("P6", Pin.OUT).value(1) # listen-only standby