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.

CAN Shield

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

CAN Shield 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