SSD1306 128x64 SPI OLED Display: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 35: | Line 35: | ||
Arduino UNO 11 12 13 8 7 6 | Arduino UNO 11 12 13 8 7 6 | ||
'''Arduino Uno - Hardware SPI - Screen Captures''' | '''Arduino Uno - Hardware SPI - Screen Captures'''<br> | ||
[[File:Start Of Frame Commands.png|1400px]]<br> | |||
Before each frame, the Arduino sends six command bytes before sending the frame data<br> | |||
Revision as of 09:48, 31 December 2020
Hardware
![](/wiki/images/c/c6/SSD1306_128x64_SPI_OLED_frontside.jpg)
![](/wiki/images/thumb/d/dd/SSD1306_128x64_SPI_OLED_backside.jpg/300px-SSD1306_128x64_SPI_OLED_backside.jpg)
These displays use the SSD1306 controller: https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
The following is from the SSD1306.pfd document:
8.1.3 MCU Serial Interface (4-wire SPI) The 4-wire serial interface consists of serial clock: SCLK, serial data: SDIN (MOSI), D/C#, CS#. In 4-wire SPI mode, D0 is used for SCLK signal, D1 is used for MOSI. For the unused data pins, D2 should be left open. The pins from D3 to D7, E and R/W# (WR#)# can be connected to an external ground. Table 8-4 : Control pins of 4-wire Serial interface Function E(RD#) R/W#(WR#) CS# D/C# D0 Write command Tie LOW Tie LOW L L ↑ Write data Tie LOW Tie LOW L H ↑ Note (1) H stands for HIGH signal (2) L stands for LOW signal
RES# This pin is reset signal input. When the pin is pulled LOW, initialization of the chip is executed. Keep this pin HIGH (i.e. connect to VDD) during normal operation. D/C# This is Data/Command control pin. When LOW, it indicates a command to be sent to the command register. When HIGH, it indicates data. In I2C mode, this pin acts as SA0 for slave address selection. When 3-wire serial interface is selected, this pin must be tied low (connected to VSS). CS# This pin is the chip select input. (active LOW). NOTE: This device uses SPI mode 0.
For this exercise, I used the SPI (4 wire) Hardware interface, with reset (RES#) added. (I don't believe MISO is used.)
According to the datasheet, the maximum SPI clock frequency is 10MHz.
Connections
Board MOSI MISO SCK RES# CS# D/C# Arduino UNO 11 12 13 8 7 6
Arduino Uno - Hardware SPI - Screen Captures
Before each frame, the Arduino sends six command bytes before sending the frame data
Software
For Arduino, the Adafruit SSD1306 library, version 2.4.2, works very well.
Additional Resources
https://learn.adafruit.com/monochrome-oled-breakouts/wiring-128x32-spi-oled-display