AE3 OLED Breakout¶
AE3 OLED Breakout поєднує OpenMV AE3 з RGB OLED-дисплеєм 128 × 128, 5-позиційним джойстиком та 10-контактним роз’ємом ARM SWD для автономного попереднього перегляду, простого введення та налагодження через JTAG/SWD.
Повний даташит, фотографії та інформацію про замовлення дивіться на сторінці продукту AE3 OLED Breakout.
Основні характеристики¶
RGB OLED 128 × 128 на контролері SSD1351 через SPI.
5-позиційний джойстик AS90R з центральною кнопкою натискання, підключений до шини I²C
P4/P5.Кнопка RESET та перемикач відновлення для доступу до UART захищеного анклаву.
Перемикач відключення OLED для електричного від’єднання панелі від шини SPI.
Два роз’єми Qwiic на спільній шині I²C
P4/P5.Роз’єм ARM 10-pin Cortex Debug для налагодження через SWD/JTAG.
Чотири тестові точки із заземленням.
Примітка
Чотири кутових монтажних отвори M1.6 дозволяють закріпити плату до корпусу або кріплення.
Довідник виводів¶
Усі сигнали AE3 на платі розширення знімаються з роз’єму B2B на нижній частині AE3 та виведені на два бічних штирові роз’єми — P0–P5 з одного боку, P6–P9 з іншого — обидва з рівнем 3,3 В. Повний список альтернативних функцій кожного виводу наведено на сторінці OpenMV AE3; на платі розширення виводи використовуються наступним чином:
Вивід |
Опис |
Функції AE3 |
Використання на платі |
|---|---|---|---|
P0 |
3.3 В |
SPI0 MOSI / I2C2 SCL / UART4 TX / TIM0 T1 / PDM D3 |
OLED SPI MOSI |
P1 |
3.3 В |
SPI0 MISO / I2C2 SDA / UART4 RX / TIM0 T0 |
вільний |
P2 |
3.3 В |
SPI0 SCLK / LPI2C SDA / UART5 TX / TIM1 T1 |
OLED SPI SCLK |
P3 |
3.3 В |
SPI0 SS / LPI2C SCL / UART5 RX / TIM1 T0 / PDM C3 |
OLED SPI CS |
P4 |
3.3 В |
I2C1 SCL / UART1 TX / TIM2 T1 / PDM C0 / CAN TX |
Джойстик / Qwiic I²C SCL |
P5 |
3.3 В |
I2C1 SDA / UART1 RX / TIM2 T0 / PDM D0 / CAN RX |
Джойстик / Qwiic I²C SDA |
RESET |
3.3 В |
NRST |
Натисніть кнопку RESET на платі або підтягніть до GND для скидання AE3 |
P6 |
3.3 В |
I2C1 SDA / UART3 CTS / TIM9 T0 |
вільний |
P7 |
3.3 В |
I2C1 SCL / UART3 RTS / TIM9 T1 |
OLED RESET |
P8 |
3.3 В |
I3C SDA / UART3 RX / TIM5 T0 / ADC ch S10 |
OLED DC (вибір регістра) |
P9 |
3.3 В |
I3C SCL / UART3 TX / TIM5 T1 / ADC ch S11 |
Джойстик IRQ (активний низький при зміні стану) |
Шина 3.3V |
— |
— |
Живить OLED, розширювач джойстика та пристрої Qwiic |
Шина GND |
— |
— |
Загальний провід |
Примітка
Перемикач відновлення перемикає внутрішній USB-мультиплексор на AE3: власні USB-виводи AE3 від’єднуються від порту USB‑C, а перетворювач USB-to-serial на UART захищеного анклаву підключається до порту замість них. При увімкненому перемикачі інструменти Alif на стороні хосту можуть звертатися до захищеного анклаву для перепрограмування завантажувача AE3. Залиште перемикач у положенні вимкнено для нормальної роботи, щоб порт USB‑C працював як USB AE3.
Примітка
Перемикач увімкнення OLED має бути увімкнений для роботи OLED — він керує живленням панелі та підключає керуючі виводи OLED (P0, P2, P3, P7, P8) до GPIO AE3. При вимкненому перемикачі підключеними залишаються лише P4, P5 та P9. Поточний стан перемикача відображається на розширювачі джойстика у біті 0x40 — вивід розширювача читається як низький, коли перемикач увімкнений.
Роз’єми Qwiic¶
Два Qwiic 4-контактних роз’єми JST‑SH 1,0 мм розташовані на платі і поділяють спільну шину I²C P4/P5 з вбудованим розширювачем джойстика, тому додаткові пристрої Qwiic не повинні використовувати адресу розширювача джойстика (0x63).
Вивід |
Сигнал |
|---|---|
1 |
GND |
2 |
+3.3 В |
3 |
SDA ( |
4 |
SCL ( |
Роз’єм JTAG¶
10-контактний роз’єм ARM Cortex Debug 1,27 мм на платі підключений безпосередньо до ліній SWD/JTAG AE3. Усі сигнали мають рівень 1,8 В — використовуйте зонд із зсувом рівнів або такий, опорна напруга якого відстежує VCC_REF (вивід 1).
Вивід |
Сигнал |
|---|---|
1 |
VCC_REF (+1.8 В) |
2 |
TMS (SWDIO) |
3 |
+1.8 В |
4 |
TCK (SWCLK) |
5 |
GND |
6 |
TDO (SWO) |
7 |
key (немає контакту) |
8 |
TDI |
9 |
GND |
10 |
DEBUG_RST_N (скидання JTAG/налагодження — окреме від системного NRST) |
Використання¶
Керуйте OLED через display.SPIDisplay з екземпляром контролера SSD1351. Передавайте кадри камери на панель 128 × 128:
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())
Зчитуйте 5-позиційний джойстик через заморожений драйвер pca9674a.PCA9674A. Розширювач активує P9 при зміні стану, тому підключіть зворотний виклик IRQ, який фіксує новий стан кнопок. Кнопки активні-низькі на розширювачі; код нижче застосовує XOR із 0xFF, тому встановлений біт у state означає натиснуто:
Біт |
Напрямок |
|---|---|
|
Джойстик вправо |
|
Джойстик вгору |
|
Джойстик вліво |
|
Джойстик вниз |
|
Центральне натискання джойстика |
|
Перемикач увімкнення OLED (встановлений у |
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())