CAN/RS232 Shield¶
CAN/RS232 Shield объединяет приёмопередатчик CAN-FD с приёмопередатчиком RS-232, чтобы камера OpenMV Cam могла взаимодействовать с транспортными средствами, контроллерами и устаревшим последовательным оборудованием с одного шилда, с широким диапазоном входного питания и защитой от обратной полярности.
Полную спецификацию, фотографии и информацию для заказа смотрите на странице продукта CAN/RS232 Shield.
Основные особенности¶
CAN-FD 8 Мбит/с со встроенным терминированием и фильтрацией
RS-232 1 Мбит/с с интегрированной фильтрацией
Вход 6–36 В, устойчивый к обратной полярности
Вход ADC 0–5 В с защитой от перенапряжения ±36 В
Цифровой ввод-вывод 0–5 В для триггеров синхронизации камеры, с защитой от короткого замыкания
Распиновка¶
Назначение выводов¶
Вывод |
Функция |
|---|---|
P1 |
CAN TX → вход приёмопередатчика (по умолчанию) |
P2 |
CAN TX → вход приёмопередатчика (альтернативный) |
P3 |
CAN RX ← выход приёмопередатчика |
P4 |
RS-232 TX → управляет линией передачи |
P5 |
RS-232 RX ← принимает линию приёма |
P6 |
Считывание AIN с преобразованием уровня (0–3,3 В на P6) |
P10 |
SYN — цифровой ввод-вывод с открытым стоком на клеммной колодке |
PWR in |
Широкий вход 6–36 В на клеммной колодке (устойчив к обратной полярности) |
AIN in |
Аналоговый вход на клеммной колодке |
VIN out |
5,4 В при токе до 600 мА со встроенного стабилизатора |
Шина 3,3 В |
Питает встроенную электронику шилда |
Шина GND |
Общая земля |
Примечание
AIN защищён от перенапряжения до ±36 В и по умолчанию работает как вход напряжения 0–5 В, масштабируемый до 0–3,3 В на P6. Замкните шунт режима 4–20 мА на лицевой стороне шилда, чтобы переключить AIN на токовый вход 4–20 мА.
Примечание
SYN — цифровая линия с открытым стоком, подтянутая к 3,3 В на стороне камеры и к 5 В на стороне клеммы SYN. По умолчанию это вход — шилд преобразует уровень 0–5 В на SYN до 0–3,3 В на P10. Измените встроенную паяную перемычку, чтобы переключить P10 в режим выхода, преобразуя уровень 0–3,3 В на P10 до 0–5 В на SYN.
Примечание
Каждый из выводов P1, P2, P3, P4, P5, P6 и P10 может быть высвобожден для других нужд. P1, P3, P4, P5, P6 и P10 подключены по умолчанию — P1, P3, P6 и P10 через паяные перемычки на задней стороне, P4 и P5 через паяные перемычки на лицевой стороне. Разомкните перемычку на любом выводе, который хотите освободить. P2 по умолчанию отключён: замкните его перемычку на задней стороне, чтобы направить CAN TX на P2 вместо этого (и разомкните перемычку P1 на задней стороне, чтобы освободить P1).
Примечание
Разделение P1/P2 существует для того, чтобы шилд работал с разными семействами процессоров. Платы OpenMV Cam IMXRT (RT1062) могут направлять CAN на P1, поэтому используют схему по умолчанию. Платы STM32 не могут подключить P1 к своему периферийному устройству CAN, поэтому замкните перемычку P2 на задней стороне (и разомкните P1), чтобы использовать альтернативный вариант.
Примечание
Терминирование шины CAN подключено по умолчанию — оно разделено на две половины по 60 Ом, включённые последовательно между CANH и CANL, с конденсатором на землю в средней точке (терминирование с разделением и AC-связью на 120 Ом). Разомкните две паяные площадки, чтобы отключить каждую половину независимо.
Использование¶
Примечание
Номера периферийных устройств CAN(0) и UART(1) ниже соответствуют схеме IMXRT (распиновка по умолчанию для P1). На другом процессоре шина, подключённая к этим выводам, может отличаться — сверьтесь с документацией вашей платы.
Отправляйте и принимайте кадры CAN-FD — TX на P1 (по умолчанию) или P2 (альтернативный), RX на P3:
from machine import CAN
can = CAN(2, 1_000_000)
can.set_filters(None)
can.send(0x123, b"\xDE\xAD\xBE\xEF")
print(can.recv())
Передавайте эхом байты по RS-232 на P4 (TX) / P5 (RX):
from machine import UART
uart = UART(1, baudrate=115200)
uart.write("hello\n")
print(uart.read())
Считывайте вход клеммной колодки AIN через вывод P6 с преобразованием уровня:
from machine import ADC
import time
ain = ADC("P6")
while True:
v = ain.read_u16() * 3.3 / 65535
print("AIN:", v * (5.0 / 3.3), "V")
time.sleep_ms(100)
Реагируйте на спадающий фронт на линии SYN — например, для синхронизации камеры с другим устройством, опускающим SYN в низкий уровень:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)