CAN Shield¶
O CAN Shield dá à OpenMV Cam um link de barramento CAN via um conector DB9, com um regulador embarcado de 12 V para 5 V para que o shield possa alimentar a câmera a partir de um barramento veicular.
Para o datasheet completo, fotos e informações de compra, consulte a página do produto CAN Shield.
Nota
Não suportado na OpenMV Cam RT1062.
Destaques¶
Barramento CAN de até 1 Mb/s
Regulador embarcado de 12 V para 5 V
Pinagem¶
Referência de pinos¶
Pino |
Função |
|---|---|
P2 |
CAN TX |
P3 |
CAN RX |
P6 |
Standby do CAN (opcional — veja a nota) |
PWR in |
Entrada de 12 V do barramento veicular no conector DB9 |
VIN out |
Saída do regulador de 5 V (alimenta a câmera) |
trilho de 3,3 V |
Alimenta a lógica do SN65HVD230 |
trilho GND |
Terra comum |
Nota
A linha de standby do SN65HVD230 vem desconectada do P6 por padrão. Conecte a ponte de solda embarcada para ligá-la ao P6, depois acione o P6 em nível alto para colocar o transceptor em modo standby somente-escuta (nível baixo o mantém em modo normal de transmissão e recepção).
Nota
CANL, CANH, VIN e GND do conector DB9 também são disponibilizados em pads through-hole na parte inferior do shield — solde fios ali se quiser dispensar o DB9 completamente.
Nota
A pinagem do DB9 pode ser alterada entre o layout CAN DB9 padrão e o layout OBD-II mudando os três jumpers de ponte de solda na parte inferior do shield.
Nota
O resistor de terminação embarcado de 120 ohm está conectado por padrão. Ele pode ser desabilitado via uma ponte de solda na parte inferior do shield, para barramentos que já tenham terminação em outro lugar.
Uso¶
Nota
O número de periférico CAN(1) abaixo segue o mapeamento STM32. Em outro processador, o barramento conectado a esses pinos pode ser diferente — consulte a referência da sua placa.
Envie e receba quadros no barramento CAN a 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())
Com a ponte de solda embarcada conectada, acione o P6 em nível alto para colocar o SN65HVD230 em modo standby somente-escuta (nível baixo o retorna ao modo normal de transmissão e recepção):
from machine import Pin
Pin("P6", Pin.OUT).value(1) # listen-only standby