Módulo CAN

O Módulo CAN fornece à OpenMV Cam uma ligação CAN-bus através de um conector DB9, com um regulador de 12 V para 5 V integrado que permite alimentar a câmara a partir do barramento de um veículo.

CAN Shield

Para o datasheet completo, fotografias e informações de compra, consulte a página do produto Módulo CAN.

Nota

Não suportado na OpenMV Cam RT1062.

Destaques

  • CAN bus até 1 Mb/s

  • Regulador integrado de 12 V para 5 V

Pinagem

CAN Shield Pinout

Referência de pinos

Pino

Função

P2

CAN TX

P3

CAN RX

P6

Standby CAN (opcional — ver nota)

Entrada PWR

Entrada de 12 V do barramento do veículo no conector DB9

Saída VIN

Saída do regulador de 5 V (alimenta a câmara)

Rail 3.3V

Alimenta a lógica do SN65HVD230

Rail GND

Terra comum

Nota

A linha de standby do SN65HVD230 está desligada de P6 por defeito. Ligue a ponte de solda integrada para a associar a P6; depois coloque P6 em nível alto para colocar o transcetor em modo de standby de escuta apenas (nível baixo mantém-o no modo normal de transmissão e receção).

Nota

CANL, CANH, VIN e GND do conector DB9 estão também acessíveis em ilhós de furo passante na parte inferior do módulo — solde fios aí se quiser prescindir completamente do DB9.

Nota

A pinagem do DB9 pode ser alterada entre a disposição padrão DB9 CAN e a disposição OBD-II, alterando as três pontes de solda na parte inferior do módulo.

Nota

O resistor de terminação de 120 ohm integrado está ligado por defeito. Pode ser desativado através de uma ponte de solda na parte inferior do módulo, para barramentos que já possuam terminação noutro ponto.

Utilização

Nota

O número do periférico CAN(1) abaixo segue o mapeamento STM32. Noutro processador, o barramento ligado a estes pinos pode ser diferente — consulte a referência da sua placa.

Enviar e receber fotogramas no CAN bus 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 integrada ligada, coloque P6 em nível alto para colocar o SN65HVD230 em modo de standby de escuta apenas (nível baixo repõe o modo normal de transmissão e receção):

from machine import Pin
Pin("P6", Pin.OUT).value(1)  # listen-only standby