OLED SSD1306 переделка SPI в I2C

Sonya
Offline
Зарегистрирован: 04.05.2016

Понадобились мне срочно для нескольких проектов 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

ff1eedf923cf2df3abb1fd221f4ed581.jpeg

Пишу этот пост как напоминание, так как внятной инструкции по переделке не удалось найти, единственное подходящее по теме Convert SPI to I2C for SSD1306/SH1106 OLED тоже не даёт такой ответ.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Круто! И что, перепрошивать не надо? Там готовая прошивка на оба интерфейса есть?

Sonya
Offline
Зарегистрирован: 04.05.2016

Контроллер дисплея умеет работать в 5 режимах:

aaed4d2828acf723dc9945106a9adbf7.jpeg

I2C Interface
6800-parallel interface (8 bit)
8080-parallel interface(8 bit)
4-wire Serial interface
3-wire Serial interface

Режимы выбираются уровнями на выводах BS0 BS1 BS2, что я и сделал.

Распиновка выводов 30-пинового шлейфа дисплея:

23e8752319a3c6e1bcbbd2a1362d62a8.jpeg

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Спасибо!

Logik
Offline
Зарегистрирован: 05.08.2014

Sonya пишет:

Контроллер дисплея умеет работать в 5 режимах:

И даже есть платы где это перемычками переключается.

А рецепт перепайки, прям тест на квалификацию микрорадиомонтажника - ну как комару геморой через хобот удалять ;)