CAN Shield¶
CAN Shield poskytuje OpenMV Cam připojení k CAN sběrnici přes konektor DB9, s regulátorem 12 V na 5 V na desce, takže shield může napájet kameru ze sběrnice vozidla.
Kompletní datasheet, fotografie a možnosti objednání najdete na produktové stránce CAN Shield.
Poznámka
Není podporováno na OpenMV Cam RT1062.
Hlavní vlastnosti¶
CAN sběrnice až do 1 Mb/s
Regulátor 12 V na 5 V na desce
Rozložení pinů¶
Přehled pinů¶
Pin |
Funkce |
|---|---|
P2 |
CAN TX |
P3 |
CAN RX |
P6 |
CAN standby (volitelné — viz poznámka) |
PWR in |
Vstup 12 V ze sběrnice vozidla na konektoru DB9 |
VIN out |
Výstup regulátoru 5 V (napájí kameru) |
Napájecí větev 3,3 V |
Napájí logiku SN65HVD230 |
Zemnicí větev GND |
Společná zem |
Poznámka
Standby linka SN65HVD230 je ve výchozím stavu odpojena od P6. Propojením pájecího můstku na desce ji svážete s P6, poté nastavením P6 do vysoké úrovně přepnete transceiver do režimu listen-only standby (nízká úroveň jej ponechá v běžném režimu vysílání a příjmu).
Poznámka
CANL, CANH, VIN a GND z konektoru DB9 jsou rovněž vyvedeny na průchozí plošky na spodní straně shieldu — pokud chcete DB9 zcela vynechat, připájejte vodiče tam.
Poznámka
Rozložení pinů DB9 lze měnit mezi standardním rozložením DB9 CAN a rozložením OBD-II změnou tří pájecích propojek na spodní straně shieldu.
Poznámka
Terminační rezistor 120 ohmů na desce je ve výchozím stavu připojen. Lze jej zakázat pájecím můstkem na spodní straně shieldu pro sběrnice, které již mají terminaci jinde.
Použití¶
Poznámka
Číslo periferie CAN(1) níže odpovídá mapování STM32. Na jiném procesoru může být sběrnice zapojená na tyto piny jiná — zkontrolujte referenci své desky.
Odesílejte a přijímejte snímky na CAN sběrnici rychlostí 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())
S připojeným pájecím můstkem na desce nastavte P6 do vysoké úrovně, abyste přepnuli SN65HVD230 do režimu listen-only standby (nízká úroveň jej vrátí do běžného režimu vysílání a příjmu):
from machine import Pin
Pin("P6", Pin.OUT).value(1) # listen-only standby