AE3 OLED Breakout¶
Az AE3 OLED Breakout az OpenMV AE3 modult egy 128 × 128 felbontású RGB OLED kijelzővel, egy 5 irányú joystickkal és egy 10 lábú ARM SWD csatlakozóval párosítja, így önállóan használható előnézethez, egyszerű bevitelhez és JTAG/SWD hibakereséshez.
A teljes adatlapért, fényképekért és a rendeléshez lásd az AE3 OLED Breakout termékoldalt.
Kiemelt jellemzők¶
128 × 128 RGB OLED, amelyet egy SSD1351 vezérlő hajt meg SPI-n keresztül.
AS90R 5 irányú joystick középső nyomógombbal, a
P4/P5I²C buszra kivezetve.Reset gomb és helyreállító kapcsoló a secure-enclave UART eléréséhez.
OLED leválasztó kapcsoló, amellyel a panel elektromosan eltávolítható az SPI buszról.
Két Qwiic csatlakozó ugyanazon a
P4/P5I²C buszon.ARM 10 lábú Cortex Debug csatlakozó SWD/JTAG hibakereséshez.
Négy földelési teszthorog pont.
Megjegyzés
Négy sarki M1.6 rögzítőfurat lehetővé teszi, hogy a breakoutot egy házhoz vagy rögzítőelemhez csavarozd.
Lábkiosztás referencia¶
A breakout összes AE3 jele az AE3 alján lévő B2B csatlakozóról származik, és két oldalsó tűsorra van kivezetve — az egyik oldalon P0–P5, a másikon P6–P9 —, mindkettő 3,3 V-hoz viszonyított. Az egyes lábak teljes alternatív funkciólistája az OpenMV AE3 oldalon található; a breakout a következőképpen használja a lábakat:
Láb |
Referencia |
AE3 funkciók |
Breakout felhasználás |
|---|---|---|---|
P0 |
3,3 V |
SPI0 MOSI / I2C2 SCL / UART4 TX / TIM0 T1 / PDM D3 |
OLED SPI MOSI |
P1 |
3,3 V |
SPI0 MISO / I2C2 SDA / UART4 RX / TIM0 T0 |
szabad |
P2 |
3,3 V |
SPI0 SCLK / LPI2C SDA / UART5 TX / TIM1 T1 |
OLED SPI SCLK |
P3 |
3,3 V |
SPI0 SS / LPI2C SCL / UART5 RX / TIM1 T0 / PDM C3 |
OLED SPI CS |
P4 |
3,3 V |
I2C1 SCL / UART1 TX / TIM2 T1 / PDM C0 / CAN TX |
Joystick / Qwiic I²C SCL |
P5 |
3,3 V |
I2C1 SDA / UART1 RX / TIM2 T0 / PDM D0 / CAN RX |
Joystick / Qwiic I²C SDA |
RESET |
3,3 V |
NRST |
Nyomd meg a beépített RESET gombot, vagy húzd le GND-re az AE3 visszaállításához |
P6 |
3,3 V |
I2C1 SDA / UART3 CTS / TIM9 T0 |
szabad |
P7 |
3,3 V |
I2C1 SCL / UART3 RTS / TIM9 T1 |
OLED RESET |
P8 |
3,3 V |
I3C SDA / UART3 RX / TIM5 T0 / ADC ch S10 |
OLED DC (regiszterválasztás) |
P9 |
3,3 V |
I3C SCL / UART3 TX / TIM5 T1 / ADC ch S11 |
Joystick IRQ (aktív alacsony állapotváltáskor) |
3,3 V-os sín |
— |
— |
Táplálja az OLED-et, a joystick bővítőt és a Qwiic eszközöket |
GND sín |
— |
— |
Közös föld |
Megjegyzés
A helyreállító kapcsoló átkapcsol egy belső USB multiplexert az AE3-on: az AE3 saját USB lábai leválasztódnak az USB-C portról, és helyettük a secure-enclave UART-on lévő USB-soros átalakító kapcsolódik a porthoz. A kapcsoló bekapcsolásakor a gazdaoldali Alif eszközök kommunikálhatnak a secure enclave-vel az AE3 rendszerbetöltőjének újraprogramozásához. Normál működéshez hagyd a kapcsolót kikapcsolva, hogy az USB-C port az AE3 USB-jeként működjön.
Megjegyzés
Az OLED engedélyező kapcsolónak bekapcsolva kell lennie ahhoz, hogy az OLED működjön — ez kapcsolja a tápot a panelhez, és összeköti az OLED vezérlőlábakat (P0, P2, P3, P7, P8) az AE3 GPIO-jával. A kapcsoló kikapcsolt állapotában csak a P4, P5 és P9 marad bekötve. A kapcsoló aktuális állapota a joystick bővítőn a 0x40 biten jelenik meg — a nyers bővítőláb alacsonyat olvas, ha a kapcsoló be van kapcsolva.
Qwiic csatlakozók¶
A breakouton két Qwiic 4 lábú JST-SH 1,0 mm-es csatlakozó található, amelyek ugyanazon a P4/P5 I²C buszon osztoznak, mint a beépített joystick bővítő, ezért a további Qwiic eszközöknek kerülniük kell a joystick bővítő címét (0x63).
Láb |
Jel |
|---|---|
1 |
GND |
2 |
+3,3 V |
3 |
SDA ( |
4 |
SCL ( |
JTAG csatlakozó¶
A breakouton lévő 10 lábú 1,27 mm-es ARM Cortex Debug csatlakozó közvetlenül az AE3 SWD/JTAG vonalaira van bekötve. Minden jel 1,8 V-hoz viszonyított — használj szintillesztő szondát, vagy olyat, amelynek célfeszültsége a VCC_REF (1. láb) szerint igazodik.
Láb |
Jel |
|---|---|
1 |
VCC_REF (+1,8 V) |
2 |
TMS (SWDIO) |
3 |
+1,8 V |
4 |
TCK (SWCLK) |
5 |
GND |
6 |
TDO (SWO) |
7 |
kulcs (nincs láb) |
8 |
TDI |
9 |
GND |
10 |
DEBUG_RST_N (JTAG/hibakeresés reset — a rendszer NRST-jétől elkülönülő) |
Használat¶
Hajtsd meg az OLED-et a display.SPIDisplay osztályon keresztül egy SSD1351 vezérlőpéldánnyal. Streamelj kamerakockákat a 128 × 128 panelre:
import csi
import time
import display
import image
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.window((400, 400))
lcd = display.SPIDisplay(width=128, height=128,
controller=display.SSD1351())
clock = time.clock()
while True:
clock.tick()
lcd.write(csi0.snapshot(),
hint=image.CENTER | image.SCALE_ASPECT_KEEP)
print(clock.fps())
Olvasd be az 5 irányú joystickot a beágyazott pca9674a.PCA9674A illesztőprogramon keresztül. A bővítő állapotváltáskor aktiválja a P9-et, ezért köss be egy IRQ visszahívást, amely rögzíti az új gombállapotot. A gombok a bővítőn aktív alacsonyak; az alábbi kód 0xFF-fel XOR-olja a beolvasott értéket, így a state-ben beállított bit megnyomást jelent:
Bit |
Irány |
|---|---|
|
Joystick jobbra |
|
Joystick fel |
|
Joystick balra |
|
Joystick le |
|
Joystick középső nyomás |
|
OLED engedélyező kapcsoló (a |
import csi
import time
import display
from pca9674a import PCA9674A
from machine import I2C
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.VGA)
csi0.window((400, 400))
lcd = display.SPIDisplay(width=128, height=128,
controller=display.SSD1351())
clock = time.clock()
state = 0
cursor_x = 0
cursor_y = 0
def read_expander(pin):
global exp, state
# Buttons are active‑low on the expander; XOR for active‑high bits.
state = exp.read() ^ 0xFF
exp = PCA9674A(I2C(1), irq_pin="P9", callback=read_expander)
def update_cursor():
global cursor_x, cursor_y
if state & 0x01: cursor_x += 2 # Right
if state & 0x02: cursor_y -= 2 # Up
if state & 0x04: cursor_x -= 2 # Left
if state & 0x08: cursor_y += 2 # Down
if state & 0x10: # Centre
cursor_x = 0
cursor_y = 0
while True:
clock.tick()
update_cursor()
lcd.write(csi0.snapshot(), x=cursor_x, y=cursor_y,
x_scale=128 / 400, y_scale=128 / 400)
print(clock.fps())