📦Free shipping over $10 in most countries and regions!



OLED Driver Chip-SSD1306

SSD1306 is a single-chip CMOS OLED/PLED driver and controller for organic/polymer light-emitting diode dot matrix graphic display systems. It consists of 128 segments and 64 commons. This integrated circuit is designed for ordinary cathode type OLED panels.

SSD1306 embeds contrast control, display RAM and oscillator, reducing the number of external components and power consumption of the display. It has 256 steps of brightness control. Data/commands are sent through the hardware-optional general-purpose MCU 6800/8000 series compatible parallel interface, I2C interface or serial peripheral interface. It is suitable for many compact portable applications, such as mobile phone sub-displays, MP3 players, calculators, etc.

Notice:
(1) Cathode OLED. This is because the chip limits the polarity of the OLED.
(2) 128 segments and 64 public areas -----> horizontal 128 points and vertical 64 points

Selection of MCU interface
The interface of SSD1306 MCU is composed of 8 data pins and 5 control pins. The pin assignment modes of different interfaces are shown in Table 8-1. Different MCU modes can be set by hardware selection on the BS[2:0] pins (see Table 7-1 for BS[2:0] settings).

6800 interface:
The parallel interface consists of 8 bi-directional data pins (D[7:0]), R/W#, D/C#, E and CS#
Interface line:
The 6800 bidirectional data interface has 8 data lines,
One R/W# (read and write control line [low level means writing, high level means reading]),
One D/C# (data/command selection line [low level represents commands, high level represents data]),
E (total enable line),
CS# (chip select [active low]).

(1) R/W# line, low level signal means writing data to the chip, high level means reading data from the chip.

(2) D/C# line, the low level indicates the read or write of the command, and the high level indicates the read or write of the data.
The meaning of the icon:
(1) During the falling edge of the E pin: CS# low level indicates that the chip is selected (the selected chip is a prerequisite for reading and writing):
R/W# low level-----D/C# low level means: write command
R/W# low level-----D/C# high level means: write data
R/W# high level-----D/C# low level means: read command
R/W# high level-----D/C# high level means: read data

 

8080 interface:
The parallel interface consists of 8 bi-directional data pins (D[7:0]), RD#, WR#, D/C# and CS#.
Interface line:
8 bidirectional data ports,
RD# (read enable [active low]),
WR# (write enable [active low]),
D/C# (data/command selection [high level data, low level command])
CS# (chip select [active low]).

Timing interpretation: when cs# remains low, the rising edge of wr# input is used as a data/command write latch signal

 

Write command: CS# is low level, D/C# is low level, WR# is low level, RD# is high level.

4-wire SPI:
The 4-wire serial interface consists of serial clock: SCLK, serial data: SDIN, D/C#, CS#. In 4-wire SPI mode
Interface line:
SCLK: clock line
SDIN: data line
D/C#: data or command line (low level command line, high level data line)
CS#: Chip select line (active low)

Timing interpretation:
Chip selection is selected—>Command or data is set—>Set the rising edge of the clock (SCLK is pulled low for a period of time and then pulled high) during which the data is put on the data line.

3-wire SPI: SCLK, SDIN, CS# these three lines, but there is no D/C# line. Only write operations are allowed. The timing operation is the same as 4-wire.
IIC interface: IIC timing

Introduction to OLED:

OLED distribution map:
There are 128 horizontal dots, 64 vertical dots, and 64 vertical dots are divided into 8 pages, each with 8 dots.

SSD1306 has 3 different memory addressing modes: page addressing mode, horizontal addressing mode and vertical addressing mode. This command sets the memory addressing method to one of the above methods
Three modes

页面寻址模式和指针移动方向

In the page addressing mode, after reading/writing the display RAM, the column address pointer increments and automatically increments by 1. If the column address pointer reaches the column end address, the column address pointer is reset to the column start address and the page address pointer does not change. The user must set a new page and column address in order to access the next page of RAM content page and move the column address point of the sequential page addressing mode as shown in Figure 10-1

In the normal display data RAM read or write and page addressing mode, the following steps are required to define the start RAM access pointer position:
• Set the page start address of the target display position to B0h-B7h through commands.
• Set the lower starting column address of the pointer by commands 00h~0Fh.
• Set the upper starting column address of the pointer by commands 10h~1Fh.
For example, if the page address is set to B2h, the lower column address is 03h, and the upper column address is 00h,
This means that the starting column is SEG3 of PAGE2. The location of the RAM access pointer is shown in the figure:

void OLED_Set_Pos(unsigned char x, unsigned char y)
{
OLED_WR_Byte(0xb0+y,OLED_CMD); //Set the page address b0-b7 to indicate pages 1-8
OLED_WR_Byte((((x)&0xf0)>>4)|0x10,OLED_CMD); //Set the upper starting column address of the pointer by command 10h~1Fh
OLED_WR_Byte(((x)&0x0f),OLED_CMD); //Set the lower starting column address of the pointer by command 00h~0Fh
}

水平寻址方式

Horizontal addressing mode (A[1:0]=00b)
In the horizontal addressing mode, after reading/writing the display RAM, the column address pointer increases automatically by 1. If the column address pointer reaches the column end address, the column address pointer is reset to the column start address, and the page address pointer is increased by 1. The page and column address points of the horizontal addressing mode are shown in Figure 10-3. When the page address pointer reaches the end address, the pointer is reset to the column start address and the page start address.

 

垂直寻址方式

Vertical addressing mode: (A[1:0]=01b)
In the vertical addressing mode, after reading/writing the display RAM, the page address pointer increases automatically by 1. If the page address pointer reaches the page end address, the page address pointer will be reset by the page start address and the column address pointer will increase by one. The sequence of page movement column address points in the vertical addressing mode are shown in Figure 10-4. When the column and page address pointers reach the end address at the same time, the pointers are reset to the column start address and page start address.

 

If you want, you can buy SSD1306 from HALJIA:
👉SSD1306 128x64
👉SSD1306 128x32

View more Electronic Component, please click it:
👉 Welcome to HALJIA