AE3 OLED Breakout¶
AE3 OLED Breakout spaja OpenMV AE3 sa 128 × 128 RGB OLED zaslonom, 5‑smjernim joystickom i 10‑pinskim ARM SWD priključkom za samostalni pregled, jednostavan unos i JTAG/SWD ispravljanje pogrešaka.
Za potpunu tehničku dokumentaciju, fotografije i naručivanje pogledajte stranicu proizvoda AE3 OLED Breakout.
Istaknute značajke¶
128 × 128 RGB OLED kojim upravlja kontroler SSD1351 preko SPI sučelja.
AS90R 5‑smjerni joystick sa središnjim tipkalom, izveden na
P4/P5I²C sabirnicu.Tipka za resetiranje i prekidač za oporavak za pristup UART‑u sigurnosnog enklave modula.
Prekidač za odspajanje OLED‑a koji električki odvaja panel od SPI sabirnice.
Dva Qwiic priključka na istoj
P4/P5I²C sabirnici.ARM 10‑pinski Cortex Debug priključak za SWD/JTAG ispravljanje pogrešaka.
Četiri testne točke za priključak na masu.
Napomena
Četiri kutna M1.6 montažna otvora omogućuju vam pričvršćivanje breakout pločice na kućište ili nosač.
Referenca pinova¶
Svi AE3 signali na breakout pločici dolaze s B2B priključka na donjoj strani AE3‑a i izvedeni su na dva bočna pinska reda — P0–P5 na jednoj strani, P6–P9 na drugoj — oba s referencom od 3.3 V. Potpuni popis alternativnih funkcija za svaki pin nalazi se na stranici OpenMV AE3; breakout pločica koristi pinove na sljedeći način:
Pin |
Referenca |
Značajke AE3‑a |
Upotreba na breakout pločici |
|---|---|---|---|
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 |
slobodan |
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 |
Pritisnite tipku RESET na pločici ili povucite na GND kako biste resetirali AE3 |
P6 |
3.3 V |
I2C1 SDA / UART3 CTS / TIM9 T0 |
slobodan |
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 (odabir registra) |
P9 |
3.3 V |
I3C SCL / UART3 TX / TIM5 T1 / ADC ch S11 |
Joystick IRQ (aktivan u niskom stanju pri promjeni stanja) |
3.3V napajanje |
— |
— |
Napaja OLED, ekspander joysticka i Qwiic uređaje |
GND napajanje |
— |
— |
Zajednička masa |
Napomena
Prekidač za oporavak prebacuje interni USB multipleksor na AE3‑u: vlastiti USB pinovi AE3‑a odspajaju se s USB‑C priključka, a umjesto njih se na priključak spaja USB‑u‑serijski pretvarač na UART‑u sigurnosnog enklave modula. S uključenim prekidačem, Alif alati na strani računala mogu komunicirati sa sigurnosnim enklave modulom kako bi reprogramirali pokretač (bootloader) AE3‑a. Ostavite prekidač onemogućen za normalan rad kako bi USB‑C priključak djelovao kao USB AE3‑a.
Napomena
Prekidač za omogućavanje OLED‑a mora biti uključen da bi OLED radio — on propušta napajanje panelu i spaja upravljačke pinove OLED‑a (P0, P2, P3, P7, P8) na GPIO AE3‑a. S isključenim prekidačem ožičeni ostaju samo P4, P5 i P9. Trenutno stanje prekidača prikazuje se na ekspanderu joysticka kao bit 0x40 — sirovi pin ekspandera čita se nisko kada je prekidač omogućen.
Qwiic priključci¶
Na breakout pločici nalaze se dva Qwiic 4‑pinska JST‑SH 1.0 mm priključka koji dijele istu P4/P5 I²C sabirnicu kao i ekspander joysticka na pločici, pa dodatni Qwiic uređaji moraju izbjegavati adresu ekspandera joysticka (0x63).
Pin |
Signal |
|---|---|
1 |
GND |
2 |
+3.3 V |
3 |
SDA ( |
4 |
SCL ( |
JTAG priključak¶
10‑pinski 1.27 mm ARM Cortex Debug priključak na breakout pločici izravno je ožičen na SWD/JTAG linije AE3‑a. Svi signali imaju referencu od 1.8 V — koristite sondu s pomakom razine napona ili onu čiji ciljni napon prati VCC_REF (pin 1).
Pin |
Signal |
|---|---|
1 |
VCC_REF (+1.8 V) |
2 |
TMS (SWDIO) |
3 |
+1.8 V |
4 |
TCK (SWCLK) |
5 |
GND |
6 |
TDO (SWO) |
7 |
ključ (bez pina) |
8 |
TDI |
9 |
GND |
10 |
DEBUG_RST_N (JTAG/debug reset — odvojen od sistemskog NRST) |
Upotreba¶
Upravljajte OLED‑om putem display.SPIDisplay s instancom kontrolera SSD1351. Strujno prenosite sličice kamere na 128 × 128 panel:
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())
Očitajte 5‑smjerni joystick putem ugrađenog upravljačkog programa pca9674a.PCA9674A. Ekspander postavlja P9 pri promjenama stanja, pa povežite IRQ povratni poziv koji bilježi novo stanje tipke. Tipke su aktivne u niskom stanju na ekspanderu; donji kod XOR‑a očitanu vrijednost s 0xFF tako da postavljeni bit u state znači pritisnuto:
Bit |
Smjer |
|---|---|
|
Joystick desno |
|
Joystick gore |
|
Joystick lijevo |
|
Joystick dolje |
|
Joystick središnji pritisak |
|
Prekidač za omogućavanje OLED‑a (postavljen u |
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())