CAN/RS232 Shield¶
CAN/RS232 Shield รวม CAN-FD transceiver และ RS-232 transceiver เข้าด้วยกัน เพื่อให้ OpenMV Cam สื่อสารกับยานยนต์ คอนโทรลเลอร์ และอุปกรณ์ serial รุ่นเก่าได้จากโล่เดียว พร้อมจ่ายไฟแบบ wide-input และการป้องกันแรงดันย้อนกลับ
สำหรับ datasheet ฉบับสมบูรณ์ รูปภาพ และการสั่งซื้อ ดูได้ที่ หน้าผลิตภัณฑ์ CAN/RS232 Shield
จุดเด่น¶
CAN-FD 8 Mb/s พร้อม termination และ filtering บนบอร์ด
RS-232 1 Mb/s พร้อม filtering ในตัว
ช่อง input 6–36 V ทนแรงดันย้อนกลับ
ช่อง ADC input 0–5 V พร้อมการป้องกัน overvoltage ±36 V
I/O ดิจิทัล 0–5 V สำหรับ trigger ซิงค์กล้อง ป้องกันลัดวงจร
ผังพิน¶
อ้างอิงพิน¶
พิน |
ฟังก์ชัน |
|---|---|
P1 |
CAN TX → ส่งเข้า transceiver (ค่าเริ่มต้น) |
P2 |
CAN TX → ส่งเข้า transceiver (ทางเลือก) |
P3 |
CAN RX ← รับออกจาก transceiver |
P4 |
RS-232 TX → ขับสาย output |
P5 |
RS-232 RX ← รับสาย input |
P6 |
อ่านค่า AIN แบบ level-shifted (0–3.3 V ที่ P6) |
P10 |
SYN — I/O ดิจิทัล open-drain บนบล็อกขั้วต่อ |
PWR in |
ช่อง input กว้าง 6–36 V บนบล็อกขั้วต่อ (ทนแรงดันย้อนกลับ) |
AIN in |
ช่อง analog input บนบล็อกขั้วต่อ |
VIN out |
5.4 V สูงสุด 600 mA จาก regulator บนบอร์ด |
ราง 3.3V |
จ่ายไฟให้วงจรอิเล็กทรอนิกส์บนบอร์ดของโล่ |
ราง GND |
กราวด์ร่วม |
Note
AIN ป้องกัน overvoltage สูงสุด ±36 V และค่าเริ่มต้นเป็น voltage input 0–5 V โดยสเกลลงเป็น 0–3.3 V ที่ P6 เชื่อม shunt โหมด 4–20 mA ที่ด้านหน้าของโล่เพื่อสลับ AIN ไปเป็น current-loop input 4–20 mA
Note
SYN เป็นสาย digital open-drain ดึงขึ้น 3.3 V ฝั่งกล้องและ 5 V ฝั่งขั้วต่อ SYN ค่าเริ่มต้นเป็น input — โล่จะ level-shift 0–5 V บน SYN ลงเป็น 0–3.3 V ที่ P10 เปลี่ยน solder jumper บนบอร์ดเพื่อสลับ P10 เป็น output โดย level-shift 0–3.3 V ที่ P10 ขึ้นเป็น 0–5 V บน SYN
Note
P1, P2, P3, P4, P5, P6 และ P10 แต่ละพินสามารถนำไปใช้งานอื่นได้ P1, P3, P4, P5, P6 และ P10 เชื่อมต่อโดยค่าเริ่มต้น — P1, P3, P6 และ P10 ผ่าน solder jumper ด้านหลัง, P4 และ P5 ผ่าน solder jumper ด้านหน้า เปิด jumper ที่พินใดก็ตามที่ต้องการใช้งานอื่น P2 ค่าเริ่มต้นคือตัดการเชื่อมต่อ: เชื่อม solder jumper ด้านหลังของมันเพื่อ route CAN TX ไปที่ P2 แทน (และเปิด solder jumper ด้านหลังของ P1 เพื่อปล่อย P1)
Note
การแยก P1/P2 มีขึ้นเพื่อให้โล่ทำงานได้กับตระกูลโปรเซสเซอร์ต่างๆ บอร์ด OpenMV Cam IMXRT (RT1062) สามารถ route CAN ไปยัง P1 ได้ จึงใช้การ mapping ค่าเริ่มต้น บอร์ด STM32 ไม่สามารถไปถึง P1 ด้วย CAN peripheral ของตัวเองได้ ดังนั้นให้เชื่อม solder jumper ด้านหลังของ P2 (และเปิด P1) เพื่อใช้ทางเลือก
Note
Termination ของบัส CAN เชื่อมต่อโดยค่าเริ่มต้น — แบ่งเป็นสองครึ่ง 60 Ω ต่ออนุกรมระหว่าง CANH และ CANL พร้อม cap ไปยัง ground ที่จุดกึ่งกลาง (split termination 120 Ω แบบ AC-coupled) เปิดแผ่นนำไฟฟ้าสองแผ่นเพื่อตัดการเชื่อมต่อแต่ละครึ่งอย่างอิสระ
การใช้งาน¶
Note
หมายเลขอุปกรณ์ CAN(0) และ UART(1) ด้านล่างนี้ตาม IMXRT mapping (การต่อสาย 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 ที่ level-shifted:
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)