OLED SSD1306 переделка SPI в I2C
- Войдите на сайт для отправки комментариев
Понадобились мне срочно для нескольких проектов OLED дисплеи с интерфейсом I2C (у ESP8266 маловато свободных GPIO, экономим), а все дисплеи в наличии имели интерфейс SPI, причём никакого переключения там не предусмотрено.
После изучения даташита и экспериментов было выяснено, что для переделки SPI в I2C нужно отпаять шлейф дисплея, под ним перерезать дорожки к пинам 11 (BS1) и 20 (D2), пин 11 посадить на +3.3В, пин 20 соединить с пином 19 (SDA=D1+D2). Ещё нужно сделать формирование RES: припаять кондюк на 2мкФ от земли на пин 14 (RES ). Если не сделать линию RES, будут случайные точки на экране, "снег". Пин 15 (D/C) посадить на землю (это будет адрес 0x3c, если оставить в воздухе, то будут глюки).
SDA подключается к D1, SCL подключается к D0
Пишу этот пост как напоминание, так как внятной инструкции по переделке не удалось найти, единственное подходящее по теме Convert SPI to I2C for SSD1306/SH1106 OLED тоже не даёт такой ответ.
Круто! И что, перепрошивать не надо? Там готовая прошивка на оба интерфейса есть?
Контроллер дисплея умеет работать в 5 режимах:
I2C Interface
6800-parallel interface (8 bit)
8080-parallel interface(8 bit)
4-wire Serial interface
3-wire Serial interface
Режимы выбираются уровнями на выводах BS0 BS1 BS2, что я и сделал.
Распиновка выводов 30-пинового шлейфа дисплея:
Спасибо!
Контроллер дисплея умеет работать в 5 режимах:
И даже есть платы где это перемычками переключается.
А рецепт перепайки, прям тест на квалификацию микрорадиомонтажника - ну как комару геморой через хобот удалять ;)