CAN Shield¶
CAN Shield предоставляет камере OpenMV Cam соединение с шиной CAN через разъём DB9, со встроенным стабилизатором с 12 В на 5 В, чтобы шилд мог питать камеру от автомобильной шины.
Полную спецификацию, фотографии и информацию для заказа смотрите на странице продукта CAN Shield.
Примечание
Не поддерживается на OpenMV Cam RT1062.
Основные особенности¶
Шина CAN до 1 Мбит/с
Встроенный стабилизатор с 12 В на 5 В
Распиновка¶
Назначение выводов¶
Вывод |
Функция |
|---|---|
P2 |
CAN TX |
P3 |
CAN RX |
P6 |
Дежурный режим CAN (опционально — см. примечание) |
PWR in |
Вход автомобильной шины 12 В на разъёме DB9 |
VIN out |
Выход стабилизатора 5 В (питает камеру) |
Шина 3,3 В |
Питает логику SN65HVD230 |
Шина GND |
Общая земля |
Примечание
Линия дежурного режима SN65HVD230 по умолчанию отсоединена от P6. Замкните встроенную паяную перемычку, чтобы подключить её к P6, затем подайте высокий уровень на P6, чтобы перевести приёмопередатчик в дежурный режим только прослушивания (низкий уровень оставляет его в обычном режиме передачи и приёма).
Примечание
CANL, CANH, VIN и GND с разъёма DB9 также выведены на сквозные контактные площадки на нижней стороне шилда — припаяйте туда провода, если хотите полностью обойтись без DB9.
Примечание
Распиновку DB9 можно изменить между стандартной схемой DB9 CAN и схемой OBD-II путём изменения трёх паяных перемычек на нижней стороне шилда.
Примечание
Встроенный терминирующий резистор 120 Ом подключён по умолчанию. Его можно отключить с помощью паяной перемычки на нижней стороне шилда для шин, которые уже имеют терминирование в другом месте.
Использование¶
Примечание
Номер периферийного устройства CAN(1) ниже соответствует схеме STM32. На другом процессоре шина, подключённая к этим выводам, может отличаться — сверьтесь с документацией вашей платы.
Отправляйте и принимайте кадры на шине CAN со скоростью 1 Мбит/с:
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())
При замкнутой встроенной паяной перемычке подайте высокий уровень на P6, чтобы перевести SN65HVD230 в дежурный режим только прослушивания (низкий уровень возвращает его в обычный режим передачи и приёма):
from machine import Pin
Pin("P6", Pin.OUT).value(1) # listen-only standby