CAN/RS232 Shield¶
CAN/RS232 Shield, bir CAN-FD alıcı-vericisini bir RS-232 alıcı-vericisiyle birleştirir; böylece OpenMV Cam, tek bir shield üzerinden geniş giriş gücü ve ters voltaj korumasıyla araçlar, denetleyiciler ve eski seri ekipmanlarla iletişim kurabilir.
Tam veri sayfası, fotoğraflar ve sipariş için CAN/RS232 Shield ürün sayfasına bakın.
Öne çıkanlar¶
Kart üzerinde sonlandırma ve filtreleme ile 8 Mb/s CAN-FD
Entegre filtreleme ile 1 Mb/s RS-232
6-36 V giriş, ters voltaja dayanıklı
±36 V aşırı voltaj korumalı 0-5 V ADC girişi
Kamera senkronizasyon tetikleyicileri için kısa devre korumalı 0-5 V dijital G/Ç
Pin çıkışı¶
Pin referansı¶
Pin |
Fonksiyon |
|---|---|
P1 |
CAN TX → alıcı-verici girişi (varsayılan) |
P2 |
CAN TX → alıcı-verici girişi (alternatif) |
P3 |
CAN RX ← alıcı-verici çıkışı |
P4 |
RS-232 TX → hattı sürer |
P5 |
RS-232 RX ← hattı alır |
P6 |
Seviye kaydırmalı AIN geri okuması (P6 üzerinde 0–3,3 V) |
P10 |
SYN — terminal bloğu üzerinde açık-drenajlı dijital G/Ç |
PWR girişi |
Terminal bloğu üzerinde 6–36 V geniş giriş (ters voltaja dayanıklı) |
AIN girişi |
Terminal bloğu üzerinde analog giriş |
VIN çıkışı |
Kart üzerindeki regülatörden 600 mA’e kadar 5,4 V |
3,3V hattı |
Shield’in kart üzerindeki elektroniğini besler |
GND hattı |
Ortak toprak |
Not
AIN, ±36 V’a kadar aşırı voltaj korumalıdır ve varsayılan olarak 0–5 V’luk bir voltaj girişidir; P6 üzerinde 0–3,3 V’a ölçeklenir. AIN’i 4–20 mA akım döngüsü girişine geçirmek için shield’in ön yüzündeki 4–20 mA mod şöntünü köprüleyin.
Not
SYN, kamera tarafında 3,3 V’a ve SYN terminal tarafında 5 V’a çekilen açık-drenajlı bir dijital hattır. Varsayılan olarak bir giriştir — shield, SYN üzerindeki 0–5 V’u P10 üzerinde 0–3,3 V’a seviye kaydırır. P10’u bir çıkışa çevirip P10 üzerindeki 0–3,3 V’u SYN üzerinde 0–5 V’a seviye kaydırmak için kart üzerindeki lehim atlama telini değiştirin.
Not
P1, P2, P3, P4, P5, P6 ve P10 pinlerinin her biri ilgisiz kullanım için geri kazanılabilir. P1, P3, P4, P5, P6 ve P10 varsayılan olarak bağlıdır — P1, P3, P6 ve P10 arka yüzdeki lehim atlama telleri aracılığıyla, P4 ve P5 ön yüzdeki lehim atlama telleri aracılığıyla. Serbest bırakmak istediğiniz herhangi bir pindeki atlama telini açın. P2 varsayılan olarak bağlı değildir: bunun yerine CAN TX’i P2’ye yönlendirmek için arka yüzdeki atlama telini köprüleyin (ve P1’i serbest bırakmak için P1’in arka yüzdeki atlama telini açın).
Not
P1/P2 ayrımı, shield’in işlemci aileleri arasında çalışması için vardır. OpenMV Cam IMXRT kartları (RT1062) CAN’i P1’e yönlendirebilir, bu nedenle varsayılan eşlemeyi kullanırlar. STM32 kartları CAN çevre birimiyle P1’e ulaşamaz, bu nedenle alternatifi kullanmak için P2’nin arka yüzdeki atlama telini köprüleyin (ve P1’inkini açın).
Not
CAN veri yolu sonlandırması varsayılan olarak bağlıdır — CANH ile CANL arasında, orta noktada toprağa bir kondansatör ile seri olarak iki 60 Ω yarıya bölünmüştür (120 Ω AC-bağlamalı bölünmüş sonlandırma). Her yarıyı bağımsız olarak ayırmak için iki lehim pedini açın.
Kullanım¶
Not
Aşağıdaki CAN(0) ve UART(1) çevre birimi numaraları IMXRT eşlemesini (varsayılan P1 kablolaması) izler. Başka bir işlemcide bu pinlere bağlı veri yolu farklı olabilir — kartınızın referansını kontrol edin.
CAN-FD çerçeveleri gönderin ve alın — TX P1 (varsayılan) veya P2 (alternatif) üzerinde, RX P3 üzerinde:
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())
P4 (TX) / P5 (RX) üzerinde RS-232 ile baytları yankılayın:
from machine import UART
uart = UART(1, baudrate=115200)
uart.write("hello\n")
print(uart.read())
AIN terminal bloğu girişini seviye kaydırmalı P6 pini aracılığıyla okuyun:
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 hattındaki bir düşen kenara tepki verin — örneğin, SYN’i düşüğe çeken başka bir cihazla kamerayı senkronize etmek için:
from machine import Pin
def on_sync(pin):
print("SYN falling edge")
syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)