Convertir físicamente un OLED SPI a I2C no es posible en la mayoría de los casos. Esto se debe a que los displays OLED SPI y I2C son fabricados con diferentes circuitos integrados y pines para admitir cada interfaz de comunicación específica.
Sin embargo, hay alternativas para lograr la funcionalidad I2C si su display OLED actual es SPI:
-
Verifique si su OLED SPI tiene jumpers de selección de interfaz: Algunos displays OLED SPI poseen jumpers de selección que permiten cambiar entre las interfaces SPI e I2C. Revise la hoja de datos de su modelo específico para ver si cuenta con esta opción. Si es así, simplemente siga las instrucciones del fabricante para soldar los jumpers en la configuración I2C.
-
Use un convertidor SPI a I2C: Si su display OLED SPI no tiene jumpers de selección, puede utilizar un conversor SPI a I2C externo. Estos chips actúan como intermediarios, traduciendo las señales SPI a I2C para que su placa Arduino pueda comunicarse con el display. Algunos convertidores populares son el 74HC4066 y el MCP23008.
OLED SPI a I2C con jumpers
Si gira alrededor de su pantalla, observará que su pantalla tiene indicaciones para convertir SPI a I2C (ICC significa I2C). deberá cambiar la resistencia de SPI a I2C y acortar la trayectoria de la resistencia R8.
Ahora Vcc y las líneas GND son iguales, pero CLK será su SCL, MOSI será su SDA y debe conectar el pin de reinicio a Vcc y los otros dos pines a GND
Y ahora puede usar SPI OLED como I2C
La nueva distribucion de los pines queda de la siguiente forma
GND >> GND
VCC >> VCC
SCL >> SCL
SDA >> SDA
RES >> Digital reset pin
DC >> VCC or GND
Conecte la entrada "DC" (que es SA0 en el SSD1306) a VCC o GND para configurar la dirección I2C como desee.
DC/SA0 >> VCC = dirección I2C 0x3C
DC/SA0 >> GND = dirección I2C 0x3D
Si estás jugando con la biblioteca Adafruit SSD1306 como yo, la dirección predeterminada en el código es 0x3C, así que conecta DC/SA0 a VCC.
Links de interés
https://www.instructables.com/OLED-Tutorial-Convert-SPI-to-I2C/
https://electropeak.com/learn/interfacing-0-96-inch-spi-i2c-oled-display-module-with-arduino/