SOLOMON SYSTECH SEMICONDUCTOR TECHNICAL DATA SSD1306 Advance Information 128 x 64 Dot Matrix OLED/PLED Segment/Common Driver with Controller This document contains information on a new product. Specifications and information herein are subject to change without notice. http://www.solomon-systech.com SSD1306 Rev 1.1 P 1/59 Apr 2008 Copyright © 2008 Solomon Systech Limited CONTENTS 1 GENERAL DESCRIPTION .......................................................................................................6 2 FEATURES...................................................................................................................................6 3 ORDERING INFORMATION ...................................................................................................6 4 BLOCK DIAGRAM ....................................................................................................................7 5 DIE PAD FLOOR PLAN ............................................................................................................ 8 6 PIN ARRANGEMENT..............................................................................................................11 6.1 SSD1306TR1 PIN ASSIGNMENT .......................................................................................................................... 11 7 PIN DESCRIPTION ..................................................................................................................13 8 FUNCTIONAL BLOCK DESCRIPTIONS.............................................................................15 8.1 MCU INTERFACE SELECTION.............................................................................................................................. 15 8.1.1 MCU Parallel 6800-series Interface.......................................................................................................... 15 8.1.2 MCU Parallel 8080-series Interface.......................................................................................................... 16 8.1.3 MCU Serial Interface (4-wire SPI) ............................................................................................................ 17 8.1.4 MCU Serial Interface (3-wire SPI) ............................................................................................................ 18 8.1.5 MCU I2C Interface..................................................................................................................................... 19 8.2 COMMAND DECODER ......................................................................................................................................... 22 8.3 OSCILLATOR CIRCUIT AND DISPLAY TIME GENERATOR ..................................................................................... 22 8.4 FR SYNCHRONIZATION ....................................................................................................................................... 23 8.5 RESET CIRCUIT ................................................................................................................................................... 23 8.6 SEGMENT DRIVERS / COMMON DRIVERS ............................................................................................................ 24 8.7 GRAPHIC DISPLAY DATA RAM (GDDRAM)..................................................................................................... 25 8.8 SEG/COM DRIVING BLOCK ............................................................................................................................... 26 8.9 POWER ON AND OFF SEQUENCE ........................................................................................................................ 27 9 COMMAND TABLE ................................................................................................................. 28 9.1 10 DATA READ / WRITE .......................................................................................................................................... 33 COMMAND DESCRIPTIONS ............................................................................................. 34 10.1 FUNDAMENTAL COMMAND ................................................................................................................................ 34 10.1.1 Set Lower Column Start Address for Page Addressing Mode (00h~0Fh) ................................................. 34 10.1.2 Set Higher Column Start Address for Page Addressing Mode (10h~1Fh) ................................................ 34 10.1.3 Set Memory Addressing Mode (20h).......................................................................................................... 34 10.1.4 Set Column Address (21h) ......................................................................................................................... 35 10.1.5 Set Page Address (22h).............................................................................................................................. 36 10.1.6 Set Display Start Line (40h~7Fh) .............................................................................................................. 36 10.1.7 Set Contrast Control for BANK0 (81h)...................................................................................................... 36 10.1.8 Set Segment Re-map (A0h/A1h) ................................................................................................................. 36 10.1.9 Entire Display ON (A4h/A5h) .................................................................................................................. 37 10.1.10 Set Normal/Inverse Display (A6h/A7h).................................................................................................. 37 10.1.11 Set Multiplex Ratio (A8h)....................................................................................................................... 37 10.1.12 Set Display ON/OFF (AEh/AFh) ........................................................................................................... 37 10.1.13 Set Page Start Address for Page Addressing Mode (B0h~B7h)............................................................. 37 10.1.14 Set COM Output Scan Direction (C0h/C8h).......................................................................................... 37 10.1.15 Set Display Offset (D3h) ........................................................................................................................ 37 10.1.16 Set Display Clock Divide Ratio/ Oscillator Frequency (D5h) ............................................................... 40 10.1.17 Set Pre-charge Period (D9h) ................................................................................................................. 40 10.1.18 Set COM Pins Hardware Configuration (DAh)..................................................................................... 40 10.1.19 Set VCOMH Deselect Level (DBh) ........................................................................................................... 43 Solomon Systech Apr 2008 P 2/59 Rev 1.1 SSD1306 10.1.20 NOP (E3h) ............................................................................................................................................. 43 10.1.21 Status register Read ............................................................................................................................... 43 10.2 GRAPHIC ACCELERATION COMMAND ................................................................................................................. 44 10.2.1 Horizontal Scroll Setup (26h/27h) ............................................................................................................. 44 10.2.2 Continuous Vertical and Horizontal Scroll Setup (29h/2Ah)..................................................................... 45 10.2.3 Deactivate Scroll (2Eh).............................................................................................................................. 46 10.2.4 Activate Scroll (2Fh).................................................................................................................................. 46 10.2.5 Set Vertical Scroll Area(A3h) .................................................................................................................... 46 11 MAXIMUM RATINGS..........................................................................................................47 12 DC CHARACTERISTICS.....................................................................................................48 13 AC CHARACTERISTICS.....................................................................................................49 14 APPLICATION EXAMPLE..................................................................................................55 15 PACKAGE INFORMATION................................................................................................56 15.1 15.2 SSD1306 SSD1306TR1 DETAIL DIMENSION ..................................................................................................................... 56 SSD1306Z DIE TRAY INFORMATION .................................................................................................................. 58 Rev 1.1 P 3/59 Apr 2008 Solomon Systech TABLES TABLE 5-1 : SSD1306Z BUMP DIE PAD COORDINATES ...................................................................................................... 10 TABLE 6-1 : SSD1306TR1 PIN ASSIGNMENT TABLE .......................................................................................................... 12 TABLE 7-1 : MCU BUS INTERFACE PIN SELECTION ............................................................................................................ 14 TABLE 8-1 : MCU INTERFACE ASSIGNMENT UNDER DIFFERENT BUS INTERFACE MODE ...................................................... 15 TABLE 8-2 : CONTROL PINS OF 6800 INTERFACE................................................................................................................. 15 TABLE 8-3 : CONTROL PINS OF 8080 INTERFACE................................................................................................................. 17 TABLE 8-4 : CONTROL PINS OF 4-WIRE SERIAL INTERFACE ................................................................................................. 17 TABLE 8-5 : CONTROL PINS OF 3-WIRE SERIAL INTERFACE ................................................................................................. 18 TABLE 9-1: COMMAND TABLE ........................................................................................................................................... 28 TABLE 9-2 : READ COMMAND TABLE ................................................................................................................................. 33 TABLE 9-3 : ADDRESS INCREMENT TABLE (AUTOMATIC) ................................................................................................... 33 TABLE 10-1 : EXAMPLE OF SET DISPLAY OFFSET AND DISPLAY START LINE WITH NO REMAP .......................................... 38 TABLE 10-2 :EXAMPLE OF SET DISPLAY OFFSET AND DISPLAY START LINE WITH REMAP ................................................ 39 TABLE 10-3 : COM PINS HARDWARE CONFIGURATION ..................................................................................................... 40 TABLE 11-1 : MAXIMUM RATINGS (VOLTAGE REFERENCED TO VSS)................................................................................ 47 TABLE 12-1 : DC CHARACTERISTICS .................................................................................................................................. 48 TABLE 13-1 : AC CHARACTERISTICS .................................................................................................................................. 49 TABLE 13-2 : 6800-SERIES MCU PARALLEL INTERFACE TIMING CHARACTERISTICS......................................................... 50 TABLE 13-3 : 8080-SERIES MCU PARALLEL INTERFACE TIMING CHARACTERISTICS......................................................... 51 TABLE 13-4 : 4-WIRE SERIAL INTERFACE TIMING CHARACTERISTICS ................................................................................ 52 TABLE 13-5 : 3-WIRE SERIAL INTERFACE TIMING CHARACTERISTICS ................................................................................ 53 TABLE 13-6 :I2C INTERFACE TIMING CHARACTERISTICS .................................................................................................... 54 Solomon Systech Apr 2008 P 4/59 Rev 1.1 SSD1306 FIGURES FIGURE 4-1 SSD1306 BLOCK DIAGRAM .............................................................................................................................. 7 FIGURE 5-1 : SSD1306Z DIE DRAWING ............................................................................................................................... 8 FIGURE 5-2 : SSD1306Z ALIGNMENT MARK DIMENSIONS .................................................................................................... 9 FIGURE 6-1 : SSD1306TR1 PIN ASSIGNMENT ................................................................................................................. 11 FIGURE 7-1 PIN DESCRIPTION ............................................................................................................................................. 13 FIGURE 8-1 : DATA READ BACK PROCEDURE - INSERTION OF DUMMY READ ....................................................................... 16 FIGURE 8-2 : EXAMPLE OF WRITE PROCEDURE IN 8080 PARALLEL INTERFACE MODE......................................................... 16 FIGURE 8-3 : EXAMPLE OF READ PROCEDURE IN 8080 PARALLEL INTERFACE MODE .......................................................... 16 FIGURE 8-4 : DISPLAY DATA READ BACK PROCEDURE - INSERTION OF DUMMY READ ......................................................... 17 FIGURE 8-5 : WRITE PROCEDURE IN 4-WIRE SERIAL INTERFACE MODE ............................................................................... 18 FIGURE 8-6 : WRITE PROCEDURE IN 3-WIRE SERIAL INTERFACE MODE ............................................................................... 18 FIGURE 8-7 : I2C-BUS DATA FORMAT .................................................................................................................................. 20 FIGURE 8-8 : DEFINITION OF THE START AND STOP CONDITION ......................................................................................... 21 FIGURE 8-9 : DEFINITION OF THE ACKNOWLEDGEMENT CONDITION ................................................................................... 21 FIGURE 8-10 : DEFINITION OF THE DATA TRANSFER CONDITION ......................................................................................... 21 FIGURE 8-11 : OSCILLATOR CIRCUIT AND DISPLAY TIME GENERATOR .............................................................................. 22 FIGURE 8-12 : SEGMENT OUTPUT WAVEFORM IN THREE PHASES ....................................................................................... 24 FIGURE 8-13 : GDDRAM PAGES STRUCTURE OF SSD1306................................................................................................ 25 FIGURE 8-14 : ENLARGEMENT OF GDDRAM (NO ROW RE-MAPPING AND COLUMN-REMAPPING)...................................... 25 FIGURE 8-15 : IREF CURRENT SETTING BY RESISTOR VALUE ............................................................................................. 26 FIGURE 8-16 : THE POWER ON SEQUENCE.......................................................................................................................... 27 FIGURE 8-17 : THE POWER OFF SEQUENCE ........................................................................................................................ 27 FIGURE 10-1 : ADDRESS POINTER MOVEMENT OF PAGE ADDRESSING MODE ..................................................................... 34 FIGURE 10-2 : EXAMPLE OF GDDRAM ACCESS POINTER SETTING IN PAGE ADDRESSING MODE (NO ROW AND COLUMNREMAPPING) ............................................................................................................................................................... 34 FIGURE 10-3 : ADDRESS POINTER MOVEMENT OF HORIZONTAL ADDRESSING MODE ......................................................... 35 FIGURE 10-4 : ADDRESS POINTER MOVEMENT OF VERTICAL ADDRESSING MODE .............................................................. 35 FIGURE 10-5 : EXAMPLE OF COLUMN AND ROW ADDRESS POINTER MOVEMENT .............................................................. 36 FIGURE 10-6 :TRANSITION BETWEEN DIFFERENT MODES .................................................................................................... 37 FIGURE 10-7 : HORIZONTAL SCROLL EXAMPLE: SCROLL RIGHT BY 1 COLUMN ................................................................. 44 FIGURE 10-8 : HORIZONTAL SCROLL EXAMPLE: SCROLL LEFT BY 1 COLUMN ................................................................... 44 FIGURE 10-9 : HORIZONTAL SCROLLING SETUP EXAMPLE................................................................................................... 44 FIGURE 10-10 : CONTINUOUS VERTICAL AND HORIZONTAL SCROLLING SETUP EXAMPLE .................................................. 45 FIGURE 13-1 : 6800-SERIES MCU PARALLEL INTERFACE CHARACTERISTICS ...................................................................... 50 FIGURE 13-2 : 8080-SERIES PARALLEL INTERFACE CHARACTERISTICS................................................................................ 51 FIGURE 13-3 : 4-WIRE SERIAL INTERFACE CHARACTERISTICS ............................................................................................. 52 FIGURE 13-4 : 3-WIRE SERIAL INTERFACE CHARACTERISTICS ............................................................................................. 53 FIGURE 13-5 : I2C INTERFACE TIMING CHARACTERISTICS .................................................................................................. 54 FIGURE 14-1 : APPLICATION EXAMPLE OF SSD1306Z ....................................................................................................... 55 FIGURE 15-1 SSD1306TR1 DETAIL DIMENSION ................................................................................................................ 56 FIGURE 15-2 : SSD1306Z DIE TRAY INFORMATION ............................................................................................................ 58 SSD1306 Rev 1.1 P 5/59 Apr 2008 Solomon Systech 1 GENERAL DESCRIPTION SSD1306 is a single-chip CMOS OLED/PLED driver with controller for organic / polymer light emitting diode dot-matrix graphic display system. It consists of 128 segments and 64commons. This IC is designed for Common Cathode type OLED panel. The SSD1306 embeds with contrast control, display RAM and oscillator, which reduces the number of external components and power consumption. It has 256-step brightness control. Data/Commands are sent from general MCU through the hardware selectable 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-display, MP3 player and calculator, etc. 2 FEATURES • • • • • • • • • • • • 3 Resolution: 128 x 64 dot matrix panel Power supply o VDD = 1.65V to 3.3V for IC logic o VCC = 7V to 15V for Panel driving For matrix display o OLED driving output voltage, 15V maximum o Segment maximum source current: 100uA o Common maximum sink current: 15mA o 256 step contrast brightness current control Embedded 128 x 64 bit SRAM display buffer Pin selectable MCU Interfaces: o 8-bit 6800/8080-series parallel interface o 3 /4 wire Serial Peripheral Interface o I2C Interface Screen saving continuous scrolling function in both horizontal and vertical direction RAM write synchronization signal Programmable Frame Rate and Multiplexing Ratio Row Re-mapping and Column Re-mapping On-Chip Oscillator Chip layout for COG & COF Wide range of operating temperature: -40°C to 85°C ORDERING INFORMATION Table 3-1: Ordering Information Ordering Part Number SEG COM SSD1306Z 128 64 SSD1306TR1 104 48 Solomon Systech Package Form Reference Remark o Min SEG pad pitch : 47um o Min COM pad pitch : 40um 8 COG o Die thickness: 300 +/- 25um o 35mm film, 4 sprocket hole, Folding TAB o 8-bit 80 / 8-bit 68 / SPI / I2C interface 11, 56 o SEG, COM lead pitch 0.1mm x 0.997 TAB =0.0997mm o Die thickness: 457 +/- 25um Apr 2008 P 6/59 Rev 1.1 SSD1306 4 BLOCK DIAGRAM SSD1306 Rev 1.1 P 7/59 Apr 2008 Current Control Voltage Control Common Driver Segment Driver SEG0 SEG1 | | SEG126 SEG127 COM1 COM3 | | COM61 COM63 VCOMH IREF CL CLS FR Oscillator Command Decoder VDD VCC VSS VLSS COM62 COM60 | | COM2 COM0 Common Driver D7 D6 D5 D4 D3 D2 D1 D0 Display Controller MCU Interface RES# CS# D/C# E (RD#) R/W#(WR#) BS2 BS1 BS0 Graphic Display Data RAM (GDDRAM) Figure 4-1 SSD1306 Block Diagram Solomon Systech 5 DIE PAD FLOOR PLAN Figure 5-1 : SSD1306Z Die Drawing Pad 1 Die size 6.76mm x 0.86mm Die thickness Min I/O pad pitch 300 +/- 25um 60um Min SEG pad pitch 47um Min COM pad pitch 40um Bump height Nominal 15um Bump size SSD1306Z Pad 1, 106, 124, 256 80um x 50um Pad 2-18, 89-105, 107-123, 257-273 25ium x 80um Pad 19-88 40um x 89um Pad 125-255 31um x 59um Pad 274-281 (TR pads) 30um x 50um Alignment mark + shape (-2973, 0) 75um x 75um + shape (2973, 0) 75um x 75um Circle (2466.665, 7.575) R37.5um, inner 18um SSL Logo (-2862.35, 144.82) - Position Size (For details dimension please see p.9 ) Note (1) Diagram showing the Gold bumps face up. (2) Coordinates are referenced to center of the chip. (3) Coordinate units and size of all alignment marks are in um. (4) All alignment keys do not contain gold Y X SSD1306 Pad 1,2,3,…->281 Gold Bumps face up Solomon Systech Apr 2008 P 8/59 Rev 1.1 SSD1306 Figure 5-2 : SSD1306Z alignment mark dimensions T shape + shape Circle *All units are in um SSD1306 Rev 1.1 P 9/59 Apr 2008 Solomon Systech Table 5-1 : SSD1306Z Bump Die Pad Coordinates Pad no. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Pad Name NC VSS COM49 COM50 COM51 COM52 COM53 COM54 COM55 COM56 COM57 COM58 COM59 COM60 COM61 COM62 COM63 VCOMH NC C2P C2P C2N C2N C1P C1P C1N C1N VBAT VBAT VBREF BGGND VCC VCC VCOMH VCOMH VLSS VLSS VLSS VSS VSS VSS VDD VDD BS0 VSS BS1 VDD VDD BS2 VSS FR CL VSS CS# RES# D/C# VSS R/W# E VDD VDD D0 D1 D2 D3 VSS D4 D5 D6 D7 VSS VSS CLS VDD VDD VDD VDD IREF IREF VCOMH X-pos -3315 -3084.77 -3044.77 -3004.77 -2964.77 -2924.77 -2884.77 -2844.77 -2804.77 -2764.77 -2724.77 -2684.77 -2644.77 -2604.77 -2564.77 -2524.77 -2484.77 -2444.77 -2334.965 -2278.265 -2218.265 -2136.715 -2055.465 -1995.465 -1904.115 -1844.115 -1762.865 -1679.31 -1619.31 -1537.51 -1477.51 -1416.01 -1356.01 -1266.955 -1206.955 -1125.155 -1043.355 -983.355 -920 -856 -796 -732.645 -672.645 -595.655 -531.955 -467.655 -403.155 -342.555 -279.705 -215.705 -151.955 -89.815 -25.665 38.635 109.835 182.425 246.125 310.425 373.125 457.175 517.175 609.275 692.475 765.675 828.875 890.325 951.275 1013.315 1075.355 1137.395 1220.735 1280.735 1362.585 1425.285 1485.885 1553.185 1613.185 1684.585 1744.585 1815.585 Solomon Systech Y-pos -377.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 Pad no. Pad Name 81 VCOMH 82 VCC 83 VCC 84 VLSS 85 VLSS 86 VLSS 87 NC 88 NC 89 VSS 90 COM31 91 COM30 92 COM29 93 COM28 94 COM27 95 COM26 96 COM25 97 COM24 98 COM23 99 COM22 100 COM21 101 COM20 102 COM19 103 COM18 104 COM17 105 VSS 106 NC 107 COM16 108 COM15 109 COM14 110 COM13 111 COM12 112 COM11 113 COM10 114 COM9 115 COM8 116 COM7 117 COM6 118 COM5 119 COM4 120 COM3 121 COM2 122 COM1 123 COM0 124 NC 125 NC 126 SEG0 127 SEG1 128 SEG2 129 SEG3 130 SEG4 131 SEG5 132 SEG6 133 SEG7 134 SEG8 135 SEG9 136 SEG10 137 SEG11 138 SEG12 139 SEG13 140 SEG14 141 SEG15 142 SEG16 143 SEG17 144 SEG18 145 SEG19 146 SEG20 147 SEG21 148 SEG22 149 SEG23 150 SEG24 151 SEG25 152 SEG26 153 SEG27 154 SEG28 155 SEG29 156 SEG30 157 SEG31 158 SEG32 159 SEG33 160 SEG34 X-pos 1875.585 1967.185 2027.185 2109.185 2169.185 2254.185 2314.185 2374.185 2444.77 2484.77 2524.77 2564.77 2604.77 2644.77 2684.77 2724.77 2764.77 2804.77 2844.77 2884.77 2924.77 2964.77 3004.77 3044.77 3084.77 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3315 3055.5 3009.5 2962.5 2915.5 2868.5 2821.5 2774.5 2727.5 2680.5 2633.5 2586.5 2539.5 2492.5 2445.5 2398.5 2351.5 2304.5 2257.5 2210.5 2163.5 2116.5 2069.5 2022.5 1975.5 1928.5 1881.5 1834.5 1787.5 1740.5 1693.5 1646.5 1599.5 1552.5 1505.5 1458.5 1411.5 Y-pos -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -352.83 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -362.5 -377.5 -325 -285 -245 -205 -165 -125 -85 -45 -5 35 75 115 155 195 235 275 315 367.5 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 Pad no. Pad Name 161 SEG35 162 SEG36 163 SEG37 164 SEG38 165 SEG39 166 SEG40 167 SEG41 168 SEG42 169 SEG43 170 SEG44 171 SEG45 172 SEG46 173 SEG47 174 SEG48 175 SEG49 176 SEG50 177 SEG51 178 SEG52 179 SEG53 180 SEG54 181 SEG55 182 SEG56 183 SEG57 184 SEG58 185 SEG59 186 SEG60 187 SEG61 188 SEG62 189 SEG63 190 SEG64 191 SEG65 192 SEG66 193 SEG67 194 SEG68 195 SEG69 196 SEG70 197 SEG71 198 SEG72 199 SEG73 200 SEG74 201 SEG75 202 SEG76 203 SEG77 204 SEG78 205 SEG79 206 SEG80 207 SEG81 208 SEG82 209 SEG83 210 NC 211 SEG84 212 SEG85 213 SEG86 214 SEG87 215 SEG88 216 SEG89 217 SEG90 218 SEG91 219 SEG92 220 SEG93 221 SEG94 222 SEG95 223 SEG96 224 SEG97 225 SEG98 226 SEG99 227 SEG100 228 SEG101 229 SEG102 230 SEG103 231 SEG104 232 SEG105 233 SEG106 234 SEG107 235 SEG108 236 SEG109 237 SEG110 238 SEG111 239 SEG112 240 SEG113 X-pos Y-pos 1364.5 356 1317.5 356 1270.5 356 1223.5 356 1176.5 356 1129.5 356 1082.5 356 1035.5 356 988.5 356 941.5 356 894.5 356 847.5 356 800.5 356 753.5 356 706.5 356 659.5 356 612.5 356 565.5 356 518.5 356 471.5 356 424.5 356 377.5 356 330.5 356 283.5 356 236.5 356 189.5 356 142.5 356 95.5 356 48.5 356 1.5 356 -45.5 356 -92.5 356 -139.5 356 -186.5 356 -233.5 356 -280.5 356 -327.5 356 -374.5 356 -421.5 356 -468.5 356 -515.5 356 -562.5 356 -609.5 356 -656.5 356 -703.5 356 -750.5 356 -797.5 356 -844.5 356 -891.5 356 -940 356 -988.5 356 -1035.5 356 -1082.5 356 -1129.5 356 -1176.5 356 -1223.5 356 -1270.5 356 -1317.5 356 -1364.5 356 -1411.5 356 -1458.5 356 -1505.5 356 -1552.5 356 -1599.5 356 -1646.5 356 -1693.5 356 -1740.5 356 -1787.5 356 -1834.5 356 -1881.5 356 -1928.5 356 -1975.5 356 -2022.5 356 -2069.5 356 -2116.5 356 -2163.5 356 -2210.5 356 -2257.5 356 -2304.5 356 -2351.5 356 Apr 2008 P 10/59 Pad no. Pad Name 241 SEG114 242 SEG115 243 SEG116 244 SEG117 245 SEG118 246 SEG119 247 SEG120 248 SEG121 249 SEG122 250 SEG123 251 SEG124 252 SEG125 253 SEG126 254 SEG127 255 NC 256 NC 257 COM32 258 COM33 259 COM34 260 COM35 261 COM36 262 COM37 263 COM38 264 COM39 265 COM40 266 COM41 267 COM42 268 COM43 269 COM44 270 COM45 271 COM46 272 COM47 273 COM48 X-pos -2398.5 -2445.5 -2492.5 -2539.5 -2586.5 -2633.5 -2680.5 -2727.5 -2774.5 -2821.5 -2868.5 -2915.5 -2962.5 -3009.5 -3056.5 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 -3315 Y-pos 356 356 356 356 356 356 356 356 356 356 356 356 356 356 356 367.5 315 275 235 195 155 115 75 35 -5 -45 -85 -125 -165 -205 -245 -285 -325 Pad no. Pad Name X-pos Pin# Pin name X-dir 274 TR0 2757.05 275 TR1 2697.05 276 TR2 2637.05 277 TR3 2577.05 278 VSS 2517.05 2457.05 279 TR4 280 TR5 2397.05 281 TR6 2337.05 Y-pos Y-dir 114.8 114.8 114.8 114.8 114.8 114.8 114.8 114.8 Rev 1.1 SSD1306 6 6.1 PIN ARRANGEMENT SSD1306TR1 pin assignment Figure 6-1 : SSD1306TR1 Pin Assignment Note: (1) COM sequence (Split) is under command setting: DAh, 12h SSD1306 Rev 1.1 P 11/59 Apr 2008 Solomon Systech Table 6-1 : SSD1306TR1 Pin Assignment Table Pin no. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Solomon Systech Pin Name NC VCC VCOMH IREF D7 D6 D5 D4 D3 D2 D1 D0 E/RD# R/W# D/C# RES# CS# NC BS2 BS1 VDD NC NC NC NC NC NC NC NC VSS NC NC NC COM47 COM45 COM43 COM41 COM39 COM37 COM35 COM33 COM31 COM29 COM27 COM25 COM23 COM21 COM19 COM17 COM15 COM13 COM11 COM9 COM7 COM5 COM3 COM1 NC NC NC NC NC NC NC NC NC NC SEG103 SEG102 SEG101 SEG100 SEG99 SEG98 SEG97 SEG96 SEG95 SEG94 SEG93 SEG92 SEG91 Pin no. 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 Pin Name SEG90 SEG89 SEG88 SEG87 SEG86 SEG85 SEG84 SEG83 SEG82 SEG81 SEG80 SEG79 SEG78 SEG77 SEG76 SEG75 SEG74 SEG73 SEG72 SEG71 SEG70 SEG69 SEG68 SEG67 SEG66 SEG65 SEG64 SEG63 SEG62 SEG61 SEG60 SEG59 SEG58 SEG57 SEG56 SEG55 SEG54 SEG53 SEG52 SEG51 SEG50 SEG49 SEG48 SEG47 SEG46 SEG45 SEG44 SEG43 SEG42 SEG41 SEG40 SEG39 SEG38 SEG37 SEG36 SEG35 SEG34 SEG33 SEG32 SEG31 SEG30 SEG29 SEG28 SEG27 SEG26 SEG25 SEG24 SEG23 SEG22 SEG21 SEG20 SEG19 SEG18 SEG17 SEG16 SEG15 SEG14 SEG13 SEG12 SEG11 Pin no. 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 Pin Name SEG10 SEG9 SEG8 SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0 NC NC NC NC NC NC NC NC NC NC COM0 COM2 COM4 COM6 COM8 COM10 COM12 COM14 COM16 COM18 COM20 COM22 COM24 COM26 COM28 COM30 COM32 COM34 COM36 COM38 COM40 COM42 COM44 COM46 NC NC Apr 2008 P 12/59 Rev 1.1 SSD1306 7 PIN DESCRIPTION Key: I = Input O =Output I/O = Bi-directional (input/output) P = Power pin NC = Not Connected Pull LOW= connect to Ground Pull HIGH= connect to VDD Figure 7-1 Pin Description Pin Name Type Description VDD P Power supply pin for core logic operation. VCC P Power supply for panel driving voltage. This is also the most positive power voltage supply pin. VSS P This is a ground pin. VLSS P This is an analog ground pin. It should be connected to VSS externally. VCOMH O The pin for COM signal deselected voltage level. A capacitor should be connected between this pin and VSS. VBAT P Reserved pin. It should be connected to VDD. BGGND P Reserved pin. It should be connected to ground. C1P/C1N C2P/C2N VBREF I Reserved pin. It should be kept NC. P Reserved pin. It should be kept NC. BS[2:0] I MCU bus interface selection pins. Please refer to Table 7-1 for the details of setting. IREF I This is segment output current reference pin. A resistor should be connected between this pin and VSS to maintain the IREF current at 12.5 uA. Please refer to Figure 8-15 for the details of resistor value. FR O This pin outputs RAM write synchronization signal. Proper timing between MCU data writing and frame display timing can be achieved to prevent tearing effect. It should be kept NC if it is not used. Please refer to Section 8.4 for details usage. CL I This is external clock input pin. When internal clock is enabled (i.e. HIGH in CLS pin), this pin is not used and should be connected to VSS. When internal clock is disabled (i.e. LOW in CLS pin), this pin is the external clock source input pin. CLS I This is internal clock enable pin. When it is pulled HIGH (i.e. connect to VDD), internal clock is enabled. When it is pulled LOW, the internal clock is disabled; an external clock source must be connected to the CL pin for normal operation. 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. I CS# SSD1306 This pin is the chip select input. (active LOW). I Rev 1.1 P 13/59 Apr 2008 Solomon Systech Pin Name Type Description D/C# I This is Data/Command control pin. When it is pulled HIGH (i.e. connect to VDD), the data at D[7:0] is treated as data. When it is pulled LOW, the data at D[7:0] will be transferred to the command register. In I2C mode, this pin acts as SA0 for slave address selection. When 3-wire serial interface is selected, this pin must be connected to VSS. For detail relationship to MCU interface signals, please refer to the Timing Characteristics Diagrams: Figure 13-1 to Figure 13-5. E (RD#) I When interfacing to a 6800-series microprocessor, this pin will be used as the Enable (E) signal. Read/write operation is initiated when this pin is pulled HIGH (i.e. connect to VDD) and the chip is selected. When connecting to an 8080-series microprocessor, this pin receives the Read (RD#) signal. Read operation is initiated when this pin is pulled LOW and the chip is selected. When serial or I2C interface is selected, this pin must be connected to VSS. R/W#(WR#) I This is read / write control input pin connecting to the MCU interface. When interfacing to a 6800-series microprocessor, this pin will be used as Read/Write (R/W#) selection input. Read mode will be carried out when this pin is pulled HIGH (i.e. connect to VDD) and write mode when LOW. When 8080 interface mode is selected, this pin will be the Write (WR#) input. Data write operation is initiated when this pin is pulled LOW and the chip is selected. When serial or I2C interface is selected, this pin must be connected to VSS. D[7:0] IO These are 8-bit bi-directional data bus to be connected to the microprocessor’s data bus. When serial interface mode is selected, D0 will be the serial clock input: SCLK; D1 will be the serial data input: SDIN and D2 should be kept NC. When I2C mode is selected, D2, D1 should be tied together and serve as SDAout, SDAin in application and D0 is the serial clock input, SCL. TR0-TR6 - Testing reserved pins. It should be kept NC. SEG0 ~ SEG127 O These pins provide Segment switch signals to OLED panel. These pins are VSS state when display is OFF. COM0 ~ COM63 O These pins provide Common switch signals to OLED panel. They are in high impedance state when display is OFF. NC - This is dummy pin. Do not group or short NC pins together. Table 7-1 : MCU Bus Interface Pin Selection 2 SSD1306 Pin Name BS0 BS1 BS2 I C Interface 6800-parallel interface (8 bit) 0 0 1 0 0 1 8080-parallel interface (8 bit) 0 1 1 4-wire Serial interface 3-wire Serial interface 0 0 0 1 0 0 Note (1) 0 is connected to VSS (2) 1 is connected to VDD Solomon Systech Apr 2008 P 14/59 Rev 1.1 SSD1306 8 FUNCTIONAL BLOCK DESCRIPTIONS 8.1 MCU Interface selection SSD1306 MCU interface consist of 8 data pins and 5 control pins. The pin assignment at different interface mode is summarized in Table 8-1. Different MCU mode can be set by hardware selection on BS[2:0] pins (please refer to Table 7-1 for BS[2:0] setting). Table 8-1 : MCU interface assignment under different bus interface mode Pin Name Bus Interface 8-bit 8080 8-bit 6800 3-wire SPI 4-wire SPI I2C 8.1.1 Data/Command Interface D7 D6 D5 D4 Control Signal D3 D[7:0] D[7:0] Tie LOW Tie LOW Tie LOW D2 D1 NC NC SDAOUT D0 E R/W# RD# WR# E R/W# SDIN SCLK Tie LOW SDIN SCLK Tie LOW SDAIN SCL Tie LOW CS# CS# CS# CS# CS# D/C# D/C# D/C# Tie LOW D/C# SA0 RES# RES# RES# RES# RES# RES# MCU Parallel 6800-series Interface The parallel interface consists of 8 bi-directional data pins (D[7:0]), R/W#, D/C#, E and CS#. A LOW in R/W# indicates WRITE operation and HIGH in R/W# indicates READ operation. A LOW in D/C# indicates COMMAND read/write and HIGH in D/C# indicates DATA read/write. The E input serves as data latch signal while CS# is LOW. Data is latched at the falling edge of E signal. Table 8-2 : Control pins of 6800 interface Function E R/W# CS# D/C# Write command ↓ L L L Read status ↓ H L L Write data ↓ L L H Read data ↓ H L H Note (1) ↓ stands for falling edge of signal H stands for HIGH in signal L stands for LOW in signal In order to match the operating frequency of display RAM with that of the microprocessor, some pipeline processing is internally performed which requires the insertion of a dummy read before the first actual display data read. This is shown in Figure 8-1. SSD1306 Rev 1.1 P 15/59 Apr 2008 Solomon Systech Figure 8-1 : Data read back procedure - insertion of dummy read R/W# E N Databus Write column address 8.1.2 Dummy read n n+1 Read 1st data Read 2nd data n+2 Read 3rd data MCU Parallel 8080-series Interface The parallel interface consists of 8 bi-directional data pins (D[7:0]), RD#, WR#, D/C# and CS#. A LOW in D/C# indicates COMMAND read/write and HIGH in D/C# indicates DATA read/write. A rising edge of RD# input serves as a data READ latch signal while CS# is kept LOW. A rising edge of WR# input serves as a data/command WRITE latch signal while CS# is kept LOW. Figure 8-2 : Example of Write procedure in 8080 parallel interface mode CS# WR# D[7:0] D/C# RD# high low Figure 8-3 : Example of Read procedure in 8080 parallel interface mode CS# RD# D[7:0] D/C# WR# high low Solomon Systech Apr 2008 P 16/59 Rev 1.1 SSD1306 Table 8-3 : Control pins of 8080 interface Function Write command Read status Write data Read data RD# H ↑ WR# ↑ H H ↑ ↑ H CS# L L L L D/C# L L H H Note (1) ↑ stands for rising edge of signal (2) H stands for HIGH in signal (3) L stands for LOW in signal In order to match the operating frequency of display RAM with that of the microprocessor, some pipeline processing is internally performed which requires the insertion of a dummy read before the first actual display data read. This is shown in Figure 8-4. Figure 8-4 : Display data read back procedure - insertion of dummy read WR# RD# Databus N Write column address 8.1.3 Dummy read n n+1 n+2 Read 1st data Read 2nd data Read 3rd data MCU Serial Interface (4-wire SPI) The 4-wire serial interface consists of serial clock: SCLK, serial data: SDIN, D/C#, CS#. In 4-wire SPI mode, D0 acts as SCLK, D1 acts as SDIN. 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 Write command Write data E(RD#) Tie LOW Tie LOW R/W#(WR#) Tie LOW Tie LOW CS# L L D/C# L H D0 ↑ ↑ Note (1) H stands for HIGH in signal (2) L stands for LOW in signal SDIN is shifted into an 8-bit shift register on every rising edge of SCLK in the order of D7, D6, ... D0. D/C# is sampled on every eighth clock and the data byte in the shift register is written to the Graphic Display Data RAM (GDDRAM) or command register in the same clock. Under serial mode, only write operations are allowed. SSD1306 Rev 1.1 P 17/59 Apr 2008 Solomon Systech Figure 8-5 : Write procedure in 4-wire Serial interface mode CS# D/C# SDIN/ SCLK DB1 DB2 DBn SCLK (D0) SDIN(D1) D7 D6 D5 D4 D3 D2 D0 D1 8.1.4 MCU Serial Interface (3-wire SPI) The 3-wire serial interface consists of serial clock SCLK, serial data SDIN and CS#. In 3-wire SPI mode, D0 acts as SCLK, D1 acts as SDIN. For the unused data pins, D2 should be left open. The pins from D3 to D7, R/W# (WR#)#, E and D/C# can be connected to an external ground. The operation is similar to 4-wire serial interface while D/C# pin is not used. There are altogether 9-bits will be shifted into the shift register on every ninth clock in sequence: D/C# bit, D7 to D0 bit. The D/C# bit (first bit of the sequential data) will determine the following data byte in the shift register is written to the Display Data RAM (D/C# bit = 1) or the command register (D/C# bit = 0). Under serial mode, only write operations are allowed. Table 8-5 : Control pins of 3-wire Serial interface Function Write command Write data E(RD#) Tie LOW Tie LOW R/W#(WR#) Tie LOW Tie LOW CS# L L D/C# Tie LOW Tie LOW D0 ↑ ↑ Note L stands for LOW in signal (1) Figure 8-6 : Write procedure in 3-wire Serial interface mode CS# SDIN/ SCLK DB1 DB2 DBn SCLK (D0) SDIN(D1) Solomon Systech D/C# D7 D6 D5 D4 D3 D2 Apr 2008 P 18/59 D1 Rev 1.1 D0 SSD1306 8.1.5 MCU I2C Interface The I2C communication interface consists of slave address bit SA0, I2C-bus data signal SDA (SDAOUT/D2 for output and SDAIN/D1 for input) and I2C-bus clock signal SCL (D0). Both the data and clock signals must be connected to pull-up resistors. RES# is used for the initialization of device. a) Slave address bit (SA0) SSD1306 has to recognize the slave address before transmitting or receiving any information by the I2C-bus. The device will respond to the slave address following by the slave address bit (“SA0” bit) and the read/write select bit (“R/W#” bit) with the following byte format, b7 b6 b5 b4 b3 b2 b1 b0 0 1 1 1 1 0 SA0 R/W# “SA0” bit provides an extension bit for the slave address. Either “0111100” or “0111101”, can be selected as the slave address of SSD1306. D/C# pin acts as SA0 for slave address selection. “R/W#” bit is used to determine the operation mode of the I2C-bus interface. R/W#=1, it is in read mode. R/W#=0, it is in write mode. b) I2C-bus data signal (SDA) SDA acts as a communication channel between the transmitter and the receiver. The data and the acknowledgement are sent through the SDA. It should be noticed that the ITO track resistance and the pulled-up resistance at “SDA” pin becomes a voltage potential divider. As a result, the acknowledgement would not be possible to attain a valid logic 0 level in “SDA”. “SDAIN” and “SDAOUT” are tied together and serve as SDA. The “SDAIN” pin must be connected to act as SDA. The “SDAOUT” pin may be disconnected. When “SDAOUT” pin is disconnected, the acknowledgement signal will be ignored in the I2C-bus. c) I2C-bus clock signal (SCL) The transmission of information in the I2C-bus is following a clock signal, SCL. Each transmission of data bit is taken place during a single clock period of SCL. SSD1306 Rev 1.1 P 19/59 Apr 2008 Solomon Systech 8.1.5.1 I2C-bus Write data The I2C-bus interface gives access to write data and command into the device. Please refer to Figure 8-7 for the write mode of I2C-bus in chronological order. Figure 8-7 : I2C-bus data format Note: Write mode P 1 byte ACK m ≥ 0 words Control byte ACK Slave Address Data byte D/C# Co ACK Control byte ACK D/C# Co ACK R/W# S 00 11 111 11 01 Co – Continuation bit D/C# – Data / Command Selection bit ACK – Acknowledgement SA0 – Slave address bit R/W# – Read / Write Selection bit S – Start Condition / P – Stop Condition Data byte n ≥ 0 bytes MSB ……………….LSB R/W# SA0 011110 SSD1306 Slave Address ACK D/C Co 0 0 0 0 0 0 Control byte 8.1.5.2 Write mode for I2C 1) The master device initiates the data communication by a start condition. The definition of the start condition is shown in Figure 8-8. The start condition is established by pulling the SDA from HIGH to LOW while the SCL stays HIGH. 2) The slave address is following the start condition for recognition use. For the SSD1306, the slave address is either “b0111100” or “b0111101” by changing the SA0 to LOW or HIGH (D/C pin acts as SA0). 3) The write mode is established by setting the R/W# bit to logic “0”. 4) An acknowledgement signal will be generated after receiving one byte of data, including the slave address and the R/W# bit. Please refer to the Figure 8-9 for the graphical representation of the acknowledge signal. The acknowledge bit is defined as the SDA line is pulled down during the HIGH period of the acknowledgement related clock pulse. 5) After the transmission of the slave address, either the control byte or the data byte may be sent across the SDA. A control byte mainly consists of Co and D/C# bits following by six “0” ‘s. a. If the Co bit is set as logic “0”, the transmission of the following information will contain data bytes only. b. The D/C# bit determines the next data byte is acted as a command or a data. If the D/C# bit is set to logic “0”, it defines the following data byte as a command. If the D/C# bit is set to logic “1”, it defines the following data byte as a data which will be stored at the GDDRAM. The GDDRAM column address pointer will be increased by one automatically after each data write. 6) Acknowledge bit will be generated after receiving each control byte or data byte. 7) The write mode will be finished when a stop condition is applied. The stop condition is also defined in Figure 8-8. The stop condition is established by pulling the “SDA in” from LOW to HIGH while the “SCL” stays HIGH. Solomon Systech Apr 2008 P 20/59 Rev 1.1 SSD1306 Figure 8-8 : Definition of the Start and Stop Condition tSSTOP tHSTART SDA SCL SDA SCL S P START condition STOP condition Figure 8-9 : Definition of the acknowledgement condition DATA OUTPUT BY TRANSMITTER Non-acknowledge DATA OUTPUT BY RECEIVER Acknowledge SCL FROM MASTER 1 2 8 9 S Clock pulse for acknowledgement START Condition Please be noted that the transmission of the data bit has some limitations. 1. The data bit, which is transmitted during each SCL pulse, must keep at a stable state within the “HIGH” period of the clock pulse. Please refer to the Figure 8-10 for graphical representations. Except in start or stop conditions, the data line can be switched only when the SCL is LOW. 2. Both the data line (SDA) and the clock line (SCL) should be pulled up by external resistors. Figure 8-10 : Definition of the data transfer condition SDA SCL Data line is stable SSD1306 Rev 1.1 P 21/59 Apr 2008 Change of data Solomon Systech 8.2 Command Decoder This module determines whether the input data is interpreted as data or command. Data is interpreted based upon the input of the D/C# pin. If D/C# pin is HIGH, D[7:0] is interpreted as display data written to Graphic Display Data RAM (GDDRAM). If it is LOW, the input at D[7:0] is interpreted as a command. Then data input will be decoded and written to the corresponding command register. 8.3 Oscillator Circuit and Display Time Generator Figure 8-11 : Oscillator Circuit and Display Time Generator Internal Oscillator Fosc M U X CL CLK DCLK Divider Display Clock CLS This module is an on-chip LOW power RC oscillator circuitry. The operation clock (CLK) can be generated either from internal oscillator or external source CL pin. This selection is done by CLS pin. If CLS pin is pulled HIGH, internal oscillator is chosen and CL should be left open. Pulling CLS pin LOW disables internal oscillator and external clock must be connected to CL pins for proper operation. When the internal oscillator is selected, its output frequency Fosc can be changed by command D5h A[7:4]. The display clock (DCLK) for the Display Timing Generator is derived from CLK. The division factor “D” can be programmed from 1 to 16 by command D5h DCLK = FOSC / D The frame frequency of display is determined by the following formula. FFRM = Fosc D × K × No. of Mux where • D stands for clock divide ratio. It is set by command D5h A[3:0]. The divide ratio has the range from 1 to 16. • K is the number of display clocks per row. The value is derived by K = Phase 1 period + Phase 2 period + BANK0 pulse width = 2 + 2 + 50 = 54 at power on reset (Please refer to Section 8.6 “Segment Drivers / Common Drivers” for the details of the “Phase”) • Number of multiplex ratio is set by command A8h. The power on reset value is 63 (i.e. 64MUX). • FOSC is the oscillator frequency. It can be changed by command D5h A[7:4]. The higher the register setting results in higher frequency. Solomon Systech Apr 2008 P 22/59 Rev 1.1 SSD1306 8.4 FR synchronization FR synchronization signal can be used to prevent tearing effect. One frame FR 100% Memory Access Process 0% Time Fast write MCU Slow write MCU SSD1306 displaying memory updates to OLED screen The starting time to write a new image to OLED driver is depended on the MCU writing speed. If MCU can finish writing a frame image within one frame period, it is classified as fast write MCU. For MCU needs longer writing time to complete (more than one frame but within two frames), it is a slow write one. For fast write MCU: MCU should start to write new frame of ram data just after rising edge of FR pulse and should be finished well before the rising edge of the next FR pulse. For slow write MCU: MCU should start to write new frame ram data after the falling edge of the 1st FR pulse and must be finished before the rising edge of the 3rd FR pulse. 8.5 Reset Circuit When RES# input is LOW, the chip is initialized with the following status: 1. Display is OFF 2. 128 x 64 Display Mode 3. Normal segment and display data column address and row address mapping (SEG0 mapped to address 00h and COM0 mapped to address 00h) 4. Shift register data clear in serial interface 5. Display start line is set at display RAM address 0 6. Column address counter is set at 0 7. Normal scan direction of the COM outputs 8. Contrast control register is set at 7Fh 9. Normal display mode (Equivalent to A4h command) SSD1306 Rev 1.1 P 23/59 Apr 2008 Solomon Systech 8.6 Segment Drivers / Common Drivers Segment drivers deliver 128 current sources to drive the OLED panel. The driving current can be adjusted from 0 to 100uA with 256 steps. Common drivers generate voltage-scanning pulses. The segment driving waveform is divided into three phases: 1. In phase 1, the OLED pixel charges of previous image are discharged in order to prepare for next image content display. 2. In phase 2, the OLED pixel is driven to the targeted voltage. The pixel is driven to attain the corresponding voltage level from VSS. The period of phase 2 can be programmed in length from 1 to 15 DCLKs. If the capacitance value of the pixel of OLED panel is larger, a longer period is required to charge up the capacitor to reach the desired voltage. 3. In phase 3, the OLED driver switches to use current source to drive the OLED pixels and this is the current drive stage. Figure 8-12 : Segment Output Waveform in three phases Segment VSS Phase: 1 2 3 Time After finishing phase 3, the driver IC will go back to phase 1 to display the next row image data. This threestep cycle is run continuously to refresh image display on OLED panel. In phase 3, if the length of current drive pulse width is set to 50, after finishing 50 DCLKs in current drive phase, the driver IC will go back to phase 1 for next row display. Solomon Systech Apr 2008 P 24/59 Rev 1.1 SSD1306 8.7 Graphic Display Data RAM (GDDRAM) The GDDRAM is a bit mapped static RAM holding the bit pattern to be displayed. The size of the RAM is 128 x 64 bits and the RAM is divided into eight pages, from PAGE0 to PAGE7, which are used for monochrome 128x64 dot matrix display, as shown in Figure 8-13. Figure 8-13 : GDDRAM pages structure of SSD1306 PAGE0 (COM0-COM7) Page 0 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 PAGE1 (COM8-COM15) PAGE2 (COM16-COM23) PAGE3 (COM24-COM31) PAGE4 (COM32-COM39) PAGE5 (COM40-COM47) PAGE6 (COM48–COM55) PAGE7 (COM56-COM63) Column re-mapping Row re-mapping PAGE0 (COM 63-COM56) PAGE1 (COM 55-COM48) PAGE2 (COM47-COM40) PAGE3 (COM39-COM32) PAGE4 (COM31-COM24) PAGE5 (COM23-COM16) PAGE6 (COM15-COM8) PAGE7 (COM 7-COM0) SEG0 ---------------------------------------------SEG127 SEG127 ---------------------------------------------SEG0 When one data byte is written into GDDRAM, all the rows image data of the same page of the current column are filled (i.e. the whole column (8 bits) pointed by the column address pointer is filled.). Data bit D0 is written into the top row, while data bit D7 is written into bottom row as shown in Figure 8-14. SEG0 SEG1 SEG2 SEG3 SEG4 .................... LSB D0 .................... PAGE2 MSB D7 SEG123 SEG134 SEG125 SEG126 SEG127 Figure 8-14 : Enlargement of GDDRAM (No row re-mapping and column-remapping) COM16 COM17 : : : : : COM23 Each box represents one bit of image data For mechanical flexibility, re-mapping on both Segment and Common outputs can be selected by software as shown in Figure 8-13. For vertical shifting of the display, an internal register storing the display start line can be set to control the portion of the RAM data to be mapped to the display (command D3h). SSD1306 Rev 1.1 P 25/59 Apr 2008 Solomon Systech 8.8 SEG/COM Driving block This block is used to derive the incoming power sources into the different levels of internal use voltage and current. • VCC is the most positive voltage supply. • VCOMH is the Common deselected level. It is internally regulated. • VLSS is the ground path of the analog and panel current. • IREF is a reference current source for segment current drivers ISEG. The relationship between reference current and segment current of a color is: ISEG = Contrast / 256 x IREF x scale factor in which the contrast (0~255) is set by Set Contrast command 81h; and the scale factor is 8 by default. The magnitude of IREF is controlled by the value of resistor, which is connected between IREF pin and VSS as shown in Figure 8-15. It is recommended to set IREF to 12.5 ± 2uA so as to achieve ISEG = 100uA at maximum contrast 255. Figure 8-15 : IREF Current Setting by Resistor Value SSD1306 IREF ~ 12.5uA R1 IREF (voltage at this pin = VCC – 2.5) VSS Since the voltage at IREF pin is VCC – 2.5V, the value of resistor R1 can be found as below: For IREF = 12.5uA, VCC =12V: R1 = (Voltage at IREF – VSS) / IREF = (12 – 2.5) / 12.5uA = 760KΩ Solomon Systech Apr 2008 P 26/59 Rev 1.1 SSD1306 8.9 Power ON and OFF sequence The following figures illustrate the recommended power ON and power OFF sequence of SSD1306 Power ON sequence: 1. Power ON VDD 2. After VDD become stable, set RES# pin LOW (logic low) for at least 3us (t1) (4) and then HIGH (logic high). 3. After set RES# pin LOW (logic low), wait for at least 3us (t2). Then Power ON VCC.(1) 4. After VCC become stable, send command AFh for display ON. SEG/COM will be ON after 100ms (tAF). Figure 8-16 : The Power ON sequence ON VDD ON VCC RES# Send AFh command for Display ON VDD OFF t1 RES# GND t2 VCC OFF tAF ON SEG/COM OFF Power OFF sequence: 1. Send command AEh for display OFF. 2. Power OFF VCC.(1), (2), (3) 3. Power OFF VDD after tOFF. (5) (Typical tOFF=100ms) Figure 8-17 : The Power OFF sequence Send command AEh for display OFF VCC OFF VCC OFF VDD OFF tOFF VDD OFF Note: (1) Since an ESD protection circuit is connected between VDD and VCC, VCC becomes lower than VDD whenever VDD is ON and VCC is OFF as shown in the dotted line of VCC in Figure 8-16 and Figure 8-17. (2) VCC should be kept float (i.e. disable) when it is OFF. (3) Power Pins (VDD , VCC) can never be pulled to ground under any circumstance. (4) The register values are reset after t1. (5) VDD should not be Power OFF before VCC Power OFF. SSD1306 Rev 1.1 P 27/59 Apr 2008 Solomon Systech 9 COMMAND TABLE Table 9-1: Command Table (D/C#=0, R/W#(WR#) = 0, E(RD#=1) unless specific setting is stated) 1. Fundamental Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 Command Description 0 81 1 0 0 0 0 0 0 1 Set Contrast Control Double byte command to select 1 out of 256 contrast steps. Contrast increases as the value 0 A[7:0] A7 A6 A5 A4 A3 A2 A1 A0 increases. (RESET = 7Fh ) A4h, X0=0b: Resume to RAM content display (RESET) Output follows RAM content A5h, X0=1b: Entire display ON Output ignores RAM content Set Normal/Inverse A6h, X[0]=0b: Normal display (RESET) 0 in RAM: OFF in display panel Display 1 in RAM: ON in display panel A7h, X[0]=1b: Inverse display 0 in RAM: ON in display panel 1 in RAM: OFF in display panel Set Display ON/OFF AEh, X[0]=0b:Display OFF (sleep mode) (RESET) AFh X[0]=1b:Display ON in normal mode 0 A4/A5 1 0 1 0 0 1 0 X0 Entire Display ON 0 A6/A7 1 0 1 0 0 1 1 X0 0 AE AF 0 1 0 1 1 1 X0 1 2. Scrolling Command Table D/C# Hex D7 D6 D5 D4 D3 0 26/27 0 0 1 0 0 0 A[7:0] 0 0 0 0 0 0 B[2:0] * * * * * 0 C[2:0] * * * * * 0 D[2:0] * * * * * 0 E[7:0] 0 0 0 0 0 0 F[7:0] 1 1 1 1 1 D2 D1 D0 1 1 X0 0 0 0 B2 B1 B0 C2 C1 C0 D2 D1 D0 0 0 0 1 1 1 Command Continuous Horizontal Scroll Setup Description 26h, X[0]=0, Right Horizontal Scroll 27h, X[0]=1, Left Horizontal Scroll (Horizontal scroll by 1 column) A[7:0] : Dummy byte (Set as 00h) B[2:0] : Define start page address 000b – PAGE0 011b – PAGE3 110b – PAGE6 001b – PAGE1 100b – PAGE4 111b – PAGE7 010b – PAGE2 101b – PAGE5 C[2:0] : Set time interval between each scroll step in terms of frame frequency 000b – 5 frames 100b – 3 frames 001b – 64 frames 101b – 4 frames 010b – 128 frames 110b – 25 frame 011b – 256 frames 111b – 2 frame D[2:0] : Define end page address 000b – PAGE0 011b – PAGE3 110b – PAGE6 001b – PAGE1 100b – PAGE4 111b – PAGE7 010b – PAGE2 101b – PAGE5 The value of D[2:0] must be larger or equal to B[2:0] E[7:0] : Dummy byte (Set as 00h) F[7:0] : Dummy byte (Set as FFh) Solomon Systech Apr 2008 P 28/59 Rev 1.1 SSD1306 2. Scrolling Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 0 29/2A 0 0 1 0 1 0 X1 X0 0 A[2:0] 0 0 0 0 0 0 0 0 0 B[2:0] * * * * * B2 B1 B0 0 C[2:0] * * * * * C2 C1 C0 0 D[2:0] * * * * * D2 D1 D0 0 E[5:0] * * E5 E4 E3 E2 E1 E0 Command Continuous Vertical and Horizontal Scroll Setup Description 29h, X1X0=01b : Vertical and Right Horizontal Scroll 2Ah, X1X0=10b : Vertical and Left Horizontal Scroll (Horizontal scroll by 1 column) A[7:0] : Dummy byte B[2:0] : Define start page address 000b – PAGE0 011b – PAGE3 110b – PAGE6 001b – PAGE1 100b – PAGE4 111b – PAGE7 010b – PAGE2 101b – PAGE5 C[2:0] : Set time interval between each scroll step in terms of frame frequency 000b – 5 frames 100b – 3 frames 001b – 64 frames 101b – 4 frames 010b – 128 frames 110b – 25 frame 011b – 256 frames 111b – 2 frame D[2:0] : Define end page address 000b – PAGE0 011b – PAGE3 110b – PAGE6 001b – PAGE1 100b – PAGE4 111b – PAGE7 010b – PAGE2 101b – PAGE5 The value of D[2:0] must be larger or equal to B[2:0] E[5:0] : Vertical scrolling offset e.g. E[5:0]= 01h refer to offset =1 row E[5:0] =3Fh refer to offset =63 rows Note (1) No continuous vertical scrolling is available. 0 2E 0 0 1 0 1 1 1 0 Deactivate scroll Stop scrolling that is configured by command 26h/27h/29h/2Ah. Note (1) After sending 2Eh command to deactivate the scrolling action, the ram data needs to be rewritten. 0 2F 0 0 1 0 1 1 1 1 Activate scroll Start scrolling that is configured by the scrolling setup commands :26h/27h/29h/2Ah with the following valid sequences: Valid command sequence 1: 26h ;2Fh. Valid command sequence 2: 27h ;2Fh. Valid command sequence 3: 29h ;2Fh. Valid command sequence 4: 2Ah ;2Fh. For example, if “26h; 2Ah; 2Fh.” commands are issued, the setting in the last scrolling setup command, i.e. 2Ah in this case, will be executed. In other words, setting in the last scrolling setup command overwrites the setting in the previous scrolling setup commands. SSD1306 Rev 1.1 P 29/59 Apr 2008 Solomon Systech 2. Scrolling Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 Command Description 0 A3 1 0 1 0 0 0 1 1 Set Vertical Scroll A[5:0] : Set No. of rows in top fixed area. The No. of 0 A[5:0] * * A5 A4 A3 A2 A1 A0 Area rows in top fixed area is referenced to the 0 B[6:0] * B6 B5 B4 B3 B2 B1 B0 top of the GDDRAM (i.e. row 0).[RESET = 0] B[6:0] : Set No. of rows in scroll area. This is the number of rows to be used for vertical scrolling. The scroll area starts in the first row below the top fixed area. [RESET = 64] Note (1) A[5:0]+B[6:0] <= MUX ratio (2) B[6:0] <= MUX ratio (3a) Vertical scrolling offset (E[5:0] in 29h/2Ah) < B[6:0] (3b) Set Display Start Line (X5X4X3X2X1X0 of 40h~7Fh) < B[6:0] (4) The last row of the scroll area shifts to the first row of the scroll area. (5) For 64d MUX display A[5:0] = 0, B[6:0]=64 : whole area scrolls A[5:0]= 0, B[6:0] < 64 : top area scrolls A[5:0] + B[6:0] < 64 : central area scrolls A[5:0] + B[6:0] = 64 : bottom area scrolls 3. Addressing Setting Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 Command 0 00~0F 0 0 0 0 X3 X2 X1 X0 Set Lower Column Start Address for Page Addressing Mode Description Set the lower nibble of the column start address register for Page Addressing Mode using X[3:0] as data bits. The initial display line register is reset to 0000b after RESET. Note (1) 0 10~1F 0 0 0 1 X3 X2 X1 X0 Set Higher Column Start Address for Page Addressing Mode This command is only for page addressing mode Set the higher nibble of the column start address register for Page Addressing Mode using X[3:0] as data bits. The initial display line register is reset to 0000b after RESET. Note (1) This command is only for page addressing mode 0 0 20 A[1:0] 0 * 0 * 1 * 0 * 0 * 0 * 0 A1 0 Set Memory A0 Addressing Mode A[1:0] = 00b, Horizontal Addressing Mode A[1:0] = 01b, Vertical Addressing Mode A[1:0] = 10b, Page Addressing Mode (RESET) A[1:0] = 11b, Invalid 0 0 0 21 A[6:0] B[6:0] 0 * * 0 A6 B6 1 A5 B5 0 A4 B4 0 A3 B3 0 A2 B2 0 A1 B1 1 Set Column Address Setup column start and end address A[6:0] : Column start address, range : 0-127d, A0 (RESET=0d) B0 B[6:0]: Column end address, range : 0-127d, (RESET =127d) Note (1) This command is only for horizontal or vertical addressing mode. Solomon Systech Apr 2008 P 30/59 Rev 1.1 SSD1306 3. Addressing Setting Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 Command 0 22 0 0 1 0 0 0 1 0 Set Page Address 0 A[2:0] * * * * * A 2 A1 A0 0 B[2:0] * * * * * B2 B1 B0 Description Setup page start and end address A[2:0] : Page start Address, range : 0-7d, (RESET = 0d) B[2:0] : Page end Address, range : 0-7d, (RESET = 7d) Note (1) This command is only for horizontal or vertical addressing mode. 0 B0~B7 1 0 1 1 0 X2 X1 X0 Set Page Start Address for Page Addressing Mode Set GDDRAM Page Start Address (PAGE0~PAGE7) for Page Addressing Mode using X[2:0]. Note (1) This command is only for page addressing mode 4. Hardware Configuration (Panel resolution & layout related) Command Table D/C# Hex D7 D6 D5 D4 D3 D2 D1 D0 Command Description 0 40~7F 0 1 X5 X4 X3 X2 X1 X0 Set Display Start Line Set display RAM display start line register from 0-63 using X5X3X2X1X0. Display start line register is reset to 000000b during RESET. 0 A0/A1 1 0 1 0 0 0 0 X0 Set Segment Re-map A0h, X[0]=0b: column address 0 is mapped to SEG0 (RESET) A1h, X[0]=1b: column address 127 is mapped to SEG0 0 0 A8 A[5:0] 1 * 0 * 1 A5 0 A4 1 A3 0 A2 0 A1 0 Set Multiplex Ratio A0 0 C0/C8 1 1 0 0 X3 0 0 0 0 0 D3 A[5:0] 1 * 1 * 0 A5 1 A4 0 A3 0 A2 1 A1 1 Set Display Offset A0 Set vertical shift by COM from 0d~63d The value is reset to 00h after RESET. 0 0 DA A[5:4] 1 0 1 0 0 A5 1 A4 1 0 0 0 1 1 0 0 A[4]=0b, Sequential COM pin configuration A[4]=1b(RESET), Alternative COM pin configuration Set COM Output Scan Direction Set COM Pins Hardware Configuration Set MUX ratio to N+1 MUX N=A[5:0] : from 16MUX to 64MUX, RESET= 111111b (i.e. 63d, 64MUX) A[5:0] from 0 to 14 are invalid entry. C0h, X[3]=0b: normal mode (RESET) Scan from COM0 to COM[N –1] C8h, X[3]=1b: remapped mode. Scan from COM[N-1] to COM0 Where N is the Multiplex ratio. A[5]=0b(RESET), Disable COM Left/Right remap A[5]=1b, Enable COM Left/Right remap SSD1306 Rev 1.1 P 31/59 Apr 2008 Solomon Systech 5. Timing & Driving Scheme Setting Command Table D/C#Hex D7 D6 D5 D4 D3 D2 D1 D0 Command 0 D5 1 1 0 1 0 1 0 1 Set Display Clock 0 A[7:0] A7 A6 A5 A4 A3 A2 A1 A0 Divide Ratio/Oscillator Frequency Description A[3:0] : Define the divide ratio (D) of the display clocks (DCLK): Divide ratio= A[3:0] + 1, RESET is 0000b (divide ratio = 1) A[7:4] : Set the Oscillator Frequency, FOSC. Oscillator Frequency increases with the value of A[7:4] and vice versa. RESET is 1000b Range:0000b~1111b Frequency increases as setting value increases. 0 D9 1 1 0 1 1 0 0 0 A[7:0] A7 A6 A5 A4 A3 A2 A1 1 Set Pre-charge Period A[3:0] : Phase 1 period of up to 15 DCLK clocks 0 is invalid entry A0 (RESET=2h) A[7:4] : Phase 2 period of up to 15 DCLK clocks 0 is invalid entry (RESET=2h ) A[6:4] Hex V COMH deselect level 0 DB 1 1 0 1 1 0 1 0 A[6:4] 0 A6 A5 A4 0 0 0 1 Set VCOMH Deselect 0 Level 0 E3 1 1 1 0 0 0 1 1 NOP 000b 010b 011b code 00h 20h 30h ~ 0.65 x VCC ~ 0.77 x VCC (RESET) ~ 0.83 x VCC Command for no operation Note (1) “*” stands for “Don’t care”. Solomon Systech Apr 2008 P 32/59 Rev 1.1 SSD1306 Table 9-2 : Read Command Table Bit Pattern D7D6D5D4D3D2D1D0 Command Status Register Read Description D[7] : Reserved D[6] : “1” for display OFF / “0” for display ON D[5] : Reserved D[4] : Reserved D[3] : Reserved D[2] : Reserved D[1] : Reserved D[0] : Reserved Note (1) Patterns other than those given in the Command Table are prohibited to enter the chip as a command; as unexpected results can occur. 9.1 Data Read / Write To read data from the GDDRAM, select HIGH for both the R/W# (WR#) pin and the D/C# pin for 6800series parallel mode and select LOW for the E (RD#) pin and HIGH for the D/C# pin for 8080-series parallel mode. No data read is provided in serial mode operation. In normal data read mode the GDDRAM column address pointer will be increased automatically by one after each data read. Also, a dummy read is required before the first data read. To write data to the GDDRAM, select LOW for the R/W# (WR#) pin and HIGH for the D/C# pin for both 6800-series parallel mode and 8080-series parallel mode. The serial interface mode is always in write mode. The GDDRAM column address pointer will be increased automatically by one after each data write. Table 9-3 : Address increment table (Automatic) SSD1306 D/C# R/W# (WR#) Comment Address Increment 0 0 1 1 0 1 0 1 Write Command Read Status Write Data Read Data No No Yes Yes Rev 1.1 P 33/59 Apr 2008 Solomon Systech 10 COMMAND DESCRIPTIONS 10.1 Fundamental Command 10.1.1 Set Lower Column Start Address for Page Addressing Mode (00h~0Fh) This command specifies the lower nibble of the 8-bit column start address for the display data RAM under Page Addressing Mode. The column address will be incremented by each data access. Please refer to Section Table 9-1 and Section 10.1.3 for details. 10.1.2 Set Higher Column Start Address for Page Addressing Mode (10h~1Fh) This command specifies the higher nibble of the 8-bit column start address for the display data RAM under Page Addressing Mode. The column address will be incremented by each data access. Please refer to Section Table 9-1 and Section 10.1.3 for details. 10.1.3 Set Memory Addressing Mode (20h) There are 3 different memory addressing mode in SSD1306: page addressing mode, horizontal addressing mode and vertical addressing mode. This command sets the way of memory addressing into one of the above three modes. In there, “COL” means the graphic display data RAM column. Page addressing mode (A[1:0]=10xb) In page addressing mode, after the display RAM is read/written, the column address pointer is increased automatically by 1. If the column address pointer reaches column end address, the column address pointer is reset to column start address and page address pointer is not changed. Users have to set the new page and column addresses in order to access the next page RAM content. The sequence of movement of the PAGE and column address point for page addressing mode is shown in Figure 10-1. Figure 10-1 : Address Pointer Movement of Page addressing mode PAGE0 PAGE1 : PAGE6 PAGE7 COL0 COL 1 ….. : : : COL 126 COL 127 : : In normal display data RAM read or write and page addressing mode, the following steps are required to define the starting RAM access pointer location: • Set the page start address of the target display location by command B0h to B7h. • Set the lower start column address of pointer by command 00h~0Fh. • Set the upper start column address of pointer by command 10h~1Fh. For example, if the page address is set to B2h, lower column address is 03h and upper column address is 10h, then that means the starting column is SEG3 of PAGE2. The RAM access pointer is located as shown in Figure 10-2. The input data byte will be written into RAM position of column 3. Figure 10-2 : Example of GDDRAM access pointer setting in Page Addressing Mode (No row and columnremapping) SEG0 SEG3 (Starting column) SEG127 RAM access pointer LSB D0 COM16 COM17 : : : : : COM23 Each lattice represents one bit of image data .................... PAGE2 (Starting page) MSB D7 Solomon Systech Apr 2008 P 34/59 Rev 1.1 SSD1306 Horizontal addressing mode (A[1:0]=00b) In horizontal addressing mode, after the display RAM is read/written, the column address pointer is increased automatically by 1. If the column address pointer reaches column end address, the column address pointer is reset to column start address and page address pointer is increased by 1. The sequence of movement of the page and column address point for horizontal addressing mode is shown in Figure 10-3. When both column and page address pointers reach the end address, the pointers are reset to column start address and page start address (Dotted line in Figure 10-3.) Figure 10-3 : Address Pointer Movement of Horizontal addressing mode PAGE0 PAGE1 : PAGE6 PAGE7 COL0 COL 1 ….. : : : COL 126 COL 127 : : Vertical addressing mode: (A[1:0]=01b) In vertical addressing mode, after the display RAM is read/written, the page address pointer is increased automatically by 1. If the page address pointer reaches the page end address, the page address pointer is reset to page start address and column address pointer is increased by 1. The sequence of movement of the page and column address point for vertical addressing mode is shown in Figure 10-4. When both column and page address pointers reach the end address, the pointers are reset to column start address and page start address (Dotted line in Figure 10-4.) Figure 10-4 : Address Pointer Movement of Vertical addressing mode COL0 PAGE0 PAGE1 : PAGE6 PAGE7 COL 1 ….. ….. ….. : ….. ….. COL 126 COL 127 In normal display data RAM read or write and horizontal / vertical addressing mode, the following steps are required to define the RAM access pointer location: • Set the column start and end address of the target display location by command 21h. • Set the page start and end address of the target display location by command 22h. Example is shown in Figure 10-5. 10.1.4 Set Column Address (21h) This triple byte command specifies column start address and end address of the display data RAM. This command also sets the column address pointer to column start address. This pointer is used to define the current read/write column address in graphic display data RAM. If horizontal address increment mode is enabled by command 20h, after finishing read/write one column data, it is incremented automatically to the next column address. Whenever the column address pointer finishes accessing the end column address, it is reset back to start column address and the row address is incremented to the next row. SSD1306 Rev 1.1 P 35/59 Apr 2008 Solomon Systech 10.1.5 Set Page Address (22h) This triple byte command specifies page start address and end address of the display data RAM. This command also sets the page address pointer to page start address. This pointer is used to define the current read/write page address in graphic display data RAM. If vertical address increment mode is enabled by command 20h, after finishing read/write one page data, it is incremented automatically to the next page address. Whenever the page address pointer finishes accessing the end page address, it is reset back to start page address. The figure below shows the way of column and page address pointer movement through the example: column start address is set to 2 and column end address is set to 125, page start address is set to 1 and page end address is set to 6; Horizontal address increment mode is enabled by command 20h. In this case, the graphic display data RAM column accessible range is from column 2 to column 125 and from page 1 to page 6 only. In addition, the column address pointer is set to 2 and page address pointer is set to 1. After finishing read/write one pixel of data, the column address is increased automatically by 1 to access the next RAM location for next read/write operation (solid line in Figure 10-5). Whenever the column address pointer finishes accessing the end column 125, it is reset back to column 2 and page address is automatically increased by 1 (solid line in Figure 10-5). While the end page 6 and end column 125 RAM location is accessed, the page address is reset back to 1 and the column address is reset back to 2 (dotted line in Figure 10-5). . Figure 10-5 : Example of Column and Row Address Pointer Movement Col 0 Col 1 Col 2 PAGE0 PAGE1 : PAGE6 PAGE7 ….. ……. Col 125 Col 126 Col 127 : : 10.1.6 Set Display Start Line (40h~7Fh) This command sets the Display Start Line register to determine starting address of display RAM, by selecting a value from 0 to 63. With value equal to 0, RAM row 0 is mapped to COM0. With value equal to 1, RAM row 1 is mapped to COM0 and so on. Refer to Table 10-1 for more illustrations. 10.1.7 Set Contrast Control for BANK0 (81h) This command sets the Contrast Setting of the display. The chip has 256 contrast steps from 00h to FFh. The segment output current increases as the contrast step value increases. 10.1.8 Set Segment Re-map (A0h/A1h) This command changes the mapping between the display data column address and the segment driver. It allows flexibility in OLED module design. Please refer to Table 9-1. This command only affects subsequent data input. Data already stored in GDDRAM will have no changes. Solomon Systech Apr 2008 P 36/59 Rev 1.1 SSD1306 10.1.9 Entire Display ON (A4h/A5h) A4h command enable display outputs according to the GDDRAM contents. If A5h command is issued, then by using A4h command, the display will resume to the GDDRAM contents. In other words, A4h command resumes the display from entire display “ON” stage. A5h command forces the entire display to be “ON”, regardless of the contents of the display data RAM. 10.1.10 Set Normal/Inverse Display (A6h/A7h) This command sets the display to be either normal or inverse. In normal display a RAM data of 1 indicates an “ON” pixel while in inverse display a RAM data of 0 indicates an “ON” pixel. 10.1.11 Set Multiplex Ratio (A8h) This command switches the default 63 multiplex mode to any multiplex ratio, ranging from 16 to 63. The output pads COM0~COM63 will be switched to the corresponding COM signal. 10.1.12 Set Display ON/OFF (AEh/AFh) These single byte commands are used to turn the OLED panel display ON or OFF. When the display is ON, the selected circuits by Set Master Configuration command will be turned ON. When the display is OFF, those circuits will be turned OFF and the segment and common output are in VSS state and high impedance state, respectively. These commands set the display to one of the two states: o AEh : Display OFF o AFh : Display ON Figure 10-6 :Transition between different modes AFh Normal mode Sleep mode AEh 10.1.13 Set Page Start Address for Page Addressing Mode (B0h~B7h) This command positions the page start address from 0 to 7 in GDDRAM under Page Addressing Mode. Please refer to Table 9-1 and Section 10.1.3 for details. 10.1.14 Set COM Output Scan Direction (C0h/C8h) This command sets the scan direction of the COM output, allowing layout flexibility in the OLED module design. Additionally, the display will show once this command is issued. For example, if this command is sent during normal display then the graphic display will be vertically flipped immediately. Please refer to Table 10-3 for details. 10.1.15 Set Display Offset (D3h) This is a double byte command. The second command specifies the mapping of the display start line to one of COM0~COM63 (assuming that COM0 is the display start line then the display start line register is equal to 0). For example, to move the COM16 towards the COM0 direction by 16 lines the 6-bit data in the second byte should be given as 010000b. To move in the opposite direction by 16 lines the 6-bit data should be given by 64 – 16, so the second byte would be 100000b. The following two tables (Table 10-1, Table 10-2) show the example of setting the command C0h/C8h and D3h. SSD1306 Rev 1.1 P 37/59 Apr 2008 Solomon Systech Table 10-1 : Example of Set Display Offset and Display Start Line with no Remap Hardware pin name COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 COM10 COM11 COM12 COM13 COM14 COM15 COM16 COM17 COM18 COM19 COM20 COM21 COM22 COM23 COM24 COM25 COM26 COM27 COM28 COM29 COM30 COM31 COM32 COM33 COM34 COM35 COM36 COM37 COM38 COM39 COM40 COM41 COM42 COM43 COM44 COM45 COM46 COM47 COM48 COM49 COM50 COM51 COM52 COM53 COM54 COM55 COM56 COM57 COM58 COM59 COM60 COM61 COM62 COM63 Display examples 64 Normal 0 0 Row0 RAM0 Row1 RAM1 Row2 RAM2 Row3 RAM3 Row4 RAM4 Row5 RAM5 Row6 RAM6 Row7 RAM7 Row8 RAM8 Row9 RAM9 Row10 RAM10 Row11 RAM11 Row12 RAM12 Row13 RAM13 Row14 RAM14 Row15 RAM15 Row16 RAM16 Row17 RAM17 Row18 RAM18 Row19 RAM19 Row20 RAM20 Row21 RAM21 Row22 RAM22 Row23 RAM23 Row24 RAM24 Row25 RAM25 Row26 RAM26 Row27 RAM27 Row28 RAM28 Row29 RAM29 Row30 RAM30 Row31 RAM31 Row32 RAM32 Row33 RAM33 Row34 RAM34 Row35 RAM35 Row36 RAM36 Row37 RAM37 Row38 RAM38 Row39 RAM39 Row40 RAM40 Row41 RAM41 Row42 RAM42 Row43 RAM43 Row44 RAM44 Row45 RAM45 Row46 RAM46 Row47 RAM47 Row48 RAM48 Row49 RAM49 Row50 RAM50 Row51 RAM51 Row52 RAM52 Row53 RAM53 Row54 RAM54 Row55 RAM55 Row56 RAM56 Row57 RAM57 Row58 RAM58 Row59 RAM59 Row60 RAM60 Row61 RAM61 Row62 RAM62 Row63 RAM63 64 Normal 8 0 Row8 RAM8 Row9 RAM9 Row10 RAM10 Row11 RAM11 Row12 RAM12 Row13 RAM13 Row14 RAM14 Row15 RAM15 Row16 RAM16 Row17 RAM17 Row18 RAM18 Row19 RAM19 Row20 RAM20 Row21 RAM21 Row22 RAM22 Row23 RAM23 Row24 RAM24 Row25 RAM25 Row26 RAM26 Row27 RAM27 Row28 RAM28 Row29 RAM29 Row30 RAM30 Row31 RAM31 Row32 RAM32 Row33 RAM33 Row34 RAM34 Row35 RAM35 Row36 RAM36 Row37 RAM37 Row38 RAM38 Row39 RAM39 Row40 RAM40 Row41 RAM41 Row42 RAM42 Row43 RAM43 Row44 RAM44 Row45 RAM45 Row46 RAM46 Row47 RAM47 Row48 RAM48 Row49 RAM49 Row50 RAM50 Row51 RAM51 Row52 RAM52 Row53 RAM53 Row54 RAM54 Row55 RAM55 Row56 RAM56 Row57 RAM57 Row58 RAM58 Row59 RAM59 Row60 RAM60 Row61 RAM61 Row62 RAM62 Row63 RAM63 Row0 RAM0 Row1 RAM1 Row2 RAM2 Row3 RAM3 Row4 RAM4 Row5 RAM5 Row6 RAM6 Row7 RAM7 (a) (b) Output 64 56 Normal Normal 0 0 8 0 Row0 RAM8 Row0 RAM0 Row1 RAM9 Row1 RAM1 Row2 RAM10 Row2 RAM2 Row3 RAM11 Row3 RAM3 Row4 RAM12 Row4 RAM4 Row5 RAM13 Row5 RAM5 Row6 RAM14 Row6 RAM6 Row7 RAM15 Row7 RAM7 Row8 RAM16 Row8 RAM8 Row9 RAM17 Row9 RAM9 Row10 RAM18 Row10 RAM10 Row11 RAM19 Row11 RAM11 Row12 RAM20 Row12 RAM12 Row13 RAM21 Row13 RAM13 Row14 RAM22 Row14 RAM14 Row15 RAM23 Row15 RAM15 Row16 RAM24 Row16 RAM16 Row17 RAM25 Row17 RAM17 Row18 RAM26 Row18 RAM18 Row19 RAM27 Row19 RAM19 Row20 RAM28 Row20 RAM20 Row21 RAM29 Row21 RAM21 Row22 RAM30 Row22 RAM22 Row23 RAM31 Row23 RAM23 Row24 RAM32 Row24 RAM24 Row25 RAM33 Row25 RAM25 Row26 RAM34 Row26 RAM26 Row27 RAM35 Row27 RAM27 Row28 RAM36 Row28 RAM28 Row29 RAM37 Row29 RAM29 Row30 RAM38 Row30 RAM30 Row31 RAM39 Row31 RAM31 Row32 RAM40 Row32 RAM32 Row33 RAM41 Row33 RAM33 Row34 RAM42 Row34 RAM34 Row35 RAM43 Row35 RAM35 Row36 RAM44 Row36 RAM36 Row37 RAM45 Row37 RAM37 Row38 RAM46 Row38 RAM38 Row39 RAM47 Row39 RAM39 Row40 RAM48 Row40 RAM40 Row41 RAM49 Row41 RAM41 Row42 RAM50 Row42 RAM42 Row43 RAM51 Row43 RAM43 Row44 RAM52 Row44 RAM44 Row45 RAM53 Row45 RAM45 Row46 RAM54 Row46 RAM46 Row47 RAM55 Row47 RAM47 Row48 RAM56 Row48 RAM48 Row49 RAM57 Row49 RAM49 Row50 RAM58 Row50 RAM50 Row51 RAM59 Row51 RAM51 Row52 RAM60 Row52 RAM52 Row53 RAM61 Row53 RAM53 Row54 RAM62 Row54 RAM54 Row55 RAM63 Row55 RAM55 Row56 RAM0 Row57 RAM1 Row58 RAM2 Row59 RAM3 Row60 RAM4 Row61 RAM5 Row62 RAM6 Row63 RAM7 (c) (a) (b) (e) (f) Solomon Systech (d) 56 Normal 8 0 Row8 RAM8 Row9 RAM9 Row10 RAM10 Row11 RAM11 Row12 RAM12 Row13 RAM13 Row14 RAM14 Row15 RAM15 Row16 RAM16 Row17 RAM17 Row18 RAM18 Row19 RAM19 Row20 RAM20 Row21 RAM21 Row22 RAM22 Row23 RAM23 Row24 RAM24 Row25 RAM25 Row26 RAM26 Row27 RAM27 Row28 RAM28 Row29 RAM29 Row30 RAM30 Row31 RAM31 Row32 RAM32 Row33 RAM33 Row34 RAM34 Row35 RAM35 Row36 RAM36 Row37 RAM37 Row38 RAM38 Row39 RAM39 Row40 RAM40 Row41 RAM41 Row42 RAM42 Row43 RAM43 Row44 RAM44 Row45 RAM45 Row46 RAM46 Row47 RAM47 Row48 RAM48 Row49 RAM49 Row50 RAM50 Row51 RAM51 Row52 RAM52 Row53 RAM53 Row54 RAM54 Row55 RAM55 Row0 RAM0 Row1 RAM1 Row2 RAM2 Row3 RAM3 Row4 RAM4 Row5 RAM5 Row6 RAM6 Row7 RAM7 56 Normal 0 8 Row0 RAM8 Row1 RAM9 Row2 RAM10 Row3 RAM11 Row4 RAM12 Row5 RAM13 Row6 RAM14 Row7 RAM15 Row8 RAM16 Row9 RAM17 Row10 RAM18 Row11 RAM19 Row12 RAM20 Row13 RAM21 Row14 RAM22 Row15 RAM23 Row16 RAM24 Row17 RAM25 Row18 RAM26 Row19 RAM27 Row20 RAM28 Row21 RAM29 Row22 RAM30 Row23 RAM31 Row24 RAM32 Row25 RAM33 Row26 RAM34 Row27 RAM35 Row28 RAM36 Row29 RAM37 Row30 RAM38 Row31 RAM39 Row32 RAM40 Row33 RAM41 Row34 RAM42 Row35 RAM43 Row36 RAM44 Row37 RAM45 Row38 RAM46 Row39 RAM47 Row40 RAM48 Row41 RAM49 Row42 RAM50 Row43 RAM51 Row44 RAM52 Row45 RAM53 Row46 RAM54 Row47 RAM55 Row48 RAM56 Row49 RAM57 Row50 RAM58 Row51 RAM59 Row52 RAM60 Row53 RAM61 Row54 RAM62 Row55 RAM63 - (e) (f) (c) Set MUX ratio(A8h) COM Normal / Remapped (C0h / C8h) Display offset (D3h) Display start line (40h - 7Fh) (d) (RAM) Apr 2008 P 38/59 Rev 1.1 SSD1306 Table 10-2 :Example of Set Display Offset and Display Start Line with Remap Hardware pin name COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 COM10 COM11 COM12 COM13 COM14 COM15 COM16 COM17 COM18 COM19 COM20 COM21 COM22 COM23 COM24 COM25 COM26 COM27 COM28 COM29 COM30 COM31 COM32 COM33 COM34 COM35 COM36 COM37 COM38 COM39 COM40 COM41 COM42 COM43 COM44 COM45 COM46 COM47 COM48 COM49 COM50 COM51 COM52 COM53 COM54 COM55 COM56 COM57 COM58 COM59 COM60 COM61 COM62 COM63 Display examples 64 Remap 0 0 Row63 RAM63 Row62 RAM62 Row61 RAM61 Row60 RAM60 Row59 RAM59 Row58 RAM58 Row57 RAM57 Row56 RAM56 Row55 RAM55 Row54 RAM54 Row53 RAM53 Row52 RAM52 Row51 RAM51 Row50 RAM50 Row49 RAM49 Row48 RAM48 Row47 RAM47 Row46 RAM46 Row45 RAM45 Row44 RAM44 Row43 RAM43 Row42 RAM42 Row41 RAM41 Row40 RAM40 Row39 RAM39 Row38 RAM38 Row37 RAM37 Row36 RAM36 Row35 RAM35 Row34 RAM34 Row33 RAM33 Row32 RAM32 Row31 RAM31 Row30 RAM30 Row29 RAM29 Row28 RAM28 Row27 RAM27 Row26 RAM26 Row25 RAM25 Row24 RAM24 Row23 RAM23 Row22 RAM22 Row21 RAM21 Row20 RAM20 Row19 RAM19 Row18 RAM18 Row17 RAM17 Row16 RAM16 Row15 RAM15 Row14 RAM14 Row13 RAM13 Row12 RAM12 Row11 RAM11 Row10 RAM10 Row9 RAM9 Row8 RAM8 Row7 RAM7 Row6 RAM6 Row5 RAM5 Row4 RAM4 Row3 RAM3 Row2 RAM2 Row1 RAM1 Row0 RAM0 64 Remap 8 0 Row7 RAM7 Row6 RAM6 Row5 RAM5 Row4 RAM4 Row3 RAM3 Row2 RAM2 Row1 RAM1 Row0 RAM0 Row63 RAM63 Row62 RAM62 Row61 RAM61 Row60 RAM60 Row59 RAM59 Row58 RAM58 Row57 RAM57 Row56 RAM56 Row55 RAM55 Row54 RAM54 Row53 RAM53 Row52 RAM52 Row51 RAM51 Row50 RAM50 Row49 RAM49 Row48 RAM48 Row47 RAM47 Row46 RAM46 Row45 RAM45 Row44 RAM44 Row43 RAM43 Row42 RAM42 Row41 RAM41 Row40 RAM40 Row39 RAM39 Row38 RAM38 Row37 RAM37 Row36 RAM36 Row35 RAM35 Row34 RAM34 Row33 RAM33 Row32 RAM32 Row31 RAM31 Row30 RAM30 Row29 RAM29 Row28 RAM28 Row27 RAM27 Row26 RAM26 Row25 RAM25 Row24 RAM24 Row23 RAM23 Row22 RAM22 Row21 RAM21 Row20 RAM20 Row19 RAM19 Row18 RAM18 Row17 RAM17 Row16 RAM16 Row15 RAM15 Row14 RAM14 Row13 RAM13 Row12 RAM12 Row11 RAM11 Row10 RAM10 Row9 RAM9 Row8 RAM8 64 Remap 0 8 Row63 RAM7 Row62 RAM6 Row61 RAM5 Row60 RAM4 Row59 RAM3 Row58 RAM2 Row57 RAM1 Row56 RAM0 Row55 RAM63 Row54 RAM62 Row53 RAM61 Row52 RAM60 Row51 RAM59 Row50 RAM58 Row49 RAM57 Row48 RAM56 Row47 RAM55 Row46 RAM54 Row45 RAM53 Row44 RAM52 Row43 RAM51 Row42 RAM50 Row41 RAM49 Row40 RAM48 Row39 RAM47 Row38 RAM46 Row37 RAM45 Row36 RAM44 Row35 RAM43 Row34 RAM42 Row33 RAM41 Row32 RAM40 Row31 RAM39 Row30 RAM38 Row29 RAM37 Row28 RAM36 Row27 RAM35 Row26 RAM34 Row25 RAM33 Row24 RAM32 Row23 RAM31 Row22 RAM30 Row21 RAM29 Row20 RAM28 Row19 RAM27 Row18 RAM26 Row17 RAM25 Row16 RAM24 Row15 RAM23 Row14 RAM22 Row13 RAM21 Row12 RAM20 Row11 RAM19 Row10 RAM18 Row9 RAM17 Row8 RAM16 Row7 RAM15 Row6 RAM14 Row5 RAM13 Row4 RAM12 Row3 RAM11 Row2 RAM10 Row1 RAM9 Row0 RAM8 Output 48 Remap 0 0 Row47 RAM47 Row46 RAM46 Row45 RAM45 Row44 RAM44 Row43 RAM43 Row42 RAM42 Row41 RAM41 Row40 RAM40 Row39 RAM39 Row38 RAM38 Row37 RAM37 Row36 RAM36 Row35 RAM35 Row34 RAM34 Row33 RAM33 Row32 RAM32 Row31 RAM31 Row30 RAM30 Row29 RAM29 Row28 RAM28 Row27 RAM27 Row26 RAM26 Row25 RAM25 Row24 RAM24 Row23 RAM23 Row22 RAM22 Row21 RAM21 Row20 RAM20 Row19 RAM19 Row18 RAM18 Row17 RAM17 Row16 RAM16 Row15 RAM15 Row14 RAM14 Row13 RAM13 Row12 RAM12 Row11 RAM11 Row10 RAM10 Row9 RAM9 Row8 RAM8 Row7 RAM7 Row6 RAM6 Row5 RAM5 Row4 RAM4 Row3 RAM3 Row2 RAM2 Row1 RAM1 Row0 RAM0 - (a) (b) (c) (d) (a) (e) SSD1306 Rev 1.1 P 39/59 48 Remap 8 0 Row47 Row46 Row45 Row44 Row43 Row42 Row41 Row40 Row39 Row38 Row37 Row36 Row35 Row34 Row33 Row32 Row31 Row30 Row29 Row28 Row27 Row26 Row25 Row24 Row23 Row22 Row21 Row20 Row19 Row18 Row17 Row16 Row15 Row14 Row13 Row12 Row11 Row10 Row9 Row8 Row7 Row6 Row5 Row4 Row3 Row2 Row1 Row0 - RAM47 RAM46 RAM45 RAM44 RAM43 RAM42 RAM41 RAM40 RAM39 RAM38 RAM37 RAM36 RAM35 RAM34 RAM33 RAM32 RAM31 RAM30 RAM29 RAM28 RAM27 RAM26 RAM25 RAM24 RAM23 RAM22 RAM21 RAM20 RAM19 RAM18 RAM17 RAM16 RAM15 RAM14 RAM13 RAM12 RAM11 RAM10 RAM9 RAM8 RAM7 RAM6 RAM5 RAM4 RAM3 RAM2 RAM1 RAM0 - (e) (b) (c) (f) (g) Apr 2008 48 Remap 0 8 Row47 RAM55 Row46 RAM54 Row45 RAM53 Row44 RAM52 Row43 RAM51 Row42 RAM50 Row41 RAM49 Row40 RAM48 Row39 RAM47 Row38 RAM46 Row37 RAM45 Row36 RAM44 Row35 RAM43 Row34 RAM42 Row33 RAM41 Row32 RAM40 Row31 RAM39 Row30 RAM38 Row29 RAM37 Row28 RAM36 Row27 RAM35 Row26 RAM34 Row25 RAM33 Row24 RAM32 Row23 RAM31 Row22 RAM30 Row21 RAM29 Row20 RAM28 Row19 RAM27 Row18 RAM26 Row17 RAM25 Row16 RAM24 Row15 RAM23 Row14 RAM22 Row13 RAM21 Row12 RAM20 Row11 RAM19 Row10 RAM18 Row9 RAM17 Row8 RAM16 Row7 RAM15 Row6 RAM14 Row5 RAM13 Row4 RAM12 Row3 RAM11 Row2 RAM10 Row1 RAM9 Row0 RAM8 - 48 Remap 8 16 Row47 Row46 Row45 Row44 Row43 Row42 Row41 Row40 Row39 Row38 Row37 Row36 Row35 Row34 Row33 Row32 Row31 Row30 Row29 Row28 Row27 Row26 Row25 Row24 Row23 Row22 Row21 Row20 Row19 Row18 Row17 Row16 Row15 Row14 Row13 Row12 Row11 Row10 Row9 Row8 Row7 Row6 Row5 Row4 Row3 Row2 Row1 Row0 - (f) Set MUX ratio(A8h) COM Normal / Remapped (C0h / C8h) Display offset (D3h) Display start line (40h - 7Fh) RAM63 RAM62 RAM61 RAM60 RAM59 RAM58 RAM57 RAM56 RAM55 RAM54 RAM53 RAM52 RAM51 RAM50 RAM49 RAM48 RAM47 RAM46 RAM45 RAM44 RAM43 RAM42 RAM41 RAM40 RAM39 RAM38 RAM37 RAM36 RAM35 RAM34 RAM33 RAM32 RAM31 RAM30 RAM29 RAM28 RAM27 RAM26 RAM25 RAM24 RAM23 RAM22 RAM21 RAM20 RAM19 RAM18 RAM17 RAM16 - (g) (d) (RAM) Solomon Systech 10.1.16 Set Display Clock Divide Ratio/ Oscillator Frequency (D5h) This command consists of two functions: • Display Clock Divide Ratio (D)(A[3:0]) Set the divide ratio to generate DCLK (Display Clock) from CLK. The divide ratio is from 1 to 16, with reset value = 1. Please refer to section 8.3 for the details relationship of DCLK and CLK. • Oscillator Frequency (A[7:4]) Program the oscillator frequency Fosc that is the source of CLK if CLS pin is pulled high. The 4-bit value results in 16 different frequency settings available as shown below. The default setting is 1000b. 10.1.17 Set Pre-charge Period (D9h) This command is used to set the duration of the pre-charge period. The interval is counted in number of DCLK, where RESET equals 2 DCLKs. 10.1.18 Set COM Pins Hardware Configuration (DAh) This command sets the COM signals pin configuration to match the OLED panel hardware layout. The table below shows the COM pin configuration under different conditions (for MUX ratio =64): Table 10-3 : COM Pins Hardware Configuration Conditions COM pins Configurations ROW63 1 Sequential COM pin configuration (DAh A[4] =0) COM output Scan direction: from COM0 to COM63 (C0h) Disable COM Left/Right remap (DAh A[5] =0) ROW32 ROW31 128x 64 ROW0 COM32 COM0 SSD1306Z COM31 COM63 Pad 1,2,3,…->126 Gold Bumps face up 2 Sequential COM pin configuration (DAh A[4] =0) COM output Scan direction: from COM0 to COM63 (C0h) Enable COM Left/Right remap (DAh A[5] =1) ROW63 ROW31 ROW32 128 x 64 ROW0 COM0 COM32 SSD1306Z COM63 Pad 1,2,3,…->126 Gold Bumps face up Solomon Systech Apr 2008 P 40/59 Rev 1.1 SSD1306 Conditions COM pins Configurations ROW0 3 Sequential COM pin configuration (DAh A[4] =0) COM output Scan direction: from COM63 to COM0 (C8h) Disable COM Left/Right remap (DAh A[5] =0) ROW31 ROW32 128 x 64 ROW63 COM32 COM0 SSD1306Z COM31 COM63 Pad 1,2,3,…->126 Gold Bumps face up 4 Sequential COM pin configuration (DAh A[4] =0) COM output Scan direction: from COM63 to COM0 (C8h) Enable COM Left/Right remap (DAh A[5] =1) ROW0 ROW32 ROW31 128 x 64 ROW63 COM0 COM32 SSD1306Z COM63 COM31 Pad 1,2,3,…->126 Gold Bumps face up 5 Alternative COM pin configuration (DAh A[4] =1) COM output Scan direction: from COM0 to COM63 (C0h) Disable COM Left/Right remap (DAh A[5] =0) ROW63 ROW62 ROW61 128 x 64 ROW2 ROW1 ROW0 COM32 COM0 SSD1306Z COM1 COM62 COM63 COM31 Pad 1,2,3,…->126 Gold Bumps face up SSD1306 Rev 1.1 P 41/59 Apr 2008 Solomon Systech Conditions COM pins Configurations 6 Alternative COM pin configuration (DAh A[4] =1) ROW62 COM output Scan direction: from COM0 to COM63 (C0h) Enable COM Left/Right remap (DAh A[5] =1) 128 x 64 ROW63 ROW61 ROW2 ROW1 ROW0 COM32 COM33 COM0 SSD1306Z COM30 COM63 COM31 Pad 1,2,3,…->126 Gold Bumps face up 7 Alternative COM pin configuration (DAh A[4] =1) COM output Scan direction: from COM63 to COM0(C8h) Disable COM Left/Right remap (DAh A[5] =0) ROW0 ROW1 ROW2 128 x 64 ROW61 ROW62 ROW63 COM32 COM0 SSD1306Z COM1 COM62 COM63 COM31 Pad 1,2,3,…->126 Gold Bumps face up 8 Alternative COM pin configuration (DAh A[4] =1) COM output Scan direction: from COM63 to COM0(C8h) Enable COM Left/Right remap (DAh A[5] =1) ROW0 ROW1 ROW2 128 x 64 ROW61 ROW62 ROW63 COM32 COM33 COM0 SSD1306Z COM30 COM63 COM31 Pad 1,2,3,…->126 Gold Bumps face up Solomon Systech Apr 2008 P 42/59 Rev 1.1 SSD1306 10.1.19 Set VCOMH Deselect Level (DBh) This command adjusts the VCOMH regulator output. 10.1.20 NOP (E3h) No Operation Command 10.1.21 Status register Read This command is issued by setting D/C# ON LOW during a data read (See Figure 13-1 to Figure 13-2 for parallel interface waveform). It allows the MCU to monitor the internal status of the chip. No status read is provided for serial mode. SSD1306 Rev 1.1 P 43/59 Apr 2008 Solomon Systech 10.2 Graphic Acceleration Command 10.2.1 Horizontal Scroll Setup (26h/27h) This command consists of consecutive bytes to set up the horizontal scroll parameters and determines the scrolling start page, end page and scrolling speed. Before issuing this command the horizontal scroll must be deactivated (2Eh). Otherwise, RAM content may be corrupted. The SSD1306 horizontal scroll is designed for 128 columns scrolling. The following two figures (Figure 10-7, Figure 10-8, Figure 10-9) show the examples of using the horizontal scroll: SEG127 SEG126 SEG125 SEG124 SEG126 SEG124 SEG123 SEG125 SEG123 SEG122 … … SEG122 … … SEG121 … … SEG5 SEG4 SEG4 SEG3 SEG3 SEG2 SEG2 SEG1 SEG1 SEG0 After one scroll step SEG127 Original Setting SEG0 Figure 10-7 : Horizontal scroll example: Scroll RIGHT by 1 column SEG127 SEG123 SEG124 SEG0 SEG122 SEG123 SEG126 … … SEG127 … … SEG125 … … SEG126 SEG5 SEG6 SEG124 SEG4 SEG5 SEG125 SEG3 SEG2 SEG3 SEG4 SEG1 SEG2 After one scroll step SEG0 Original Setting SEG1 Figure 10-8 : Horizontal scroll example: Scroll LEFT by 1 column Figure 10-9 : Horizontal scrolling setup example Solomon Systech Apr 2008 P 44/59 Rev 1.1 SSD1306 10.2.2 Continuous Vertical and Horizontal Scroll Setup (29h/2Ah) This command consists of 6 consecutive bytes to set up the continuous vertical scroll parameters and determines the scrolling start page, end page, scrolling speed and vertical scrolling offset. The bytes B[2:0], C[2:0] and D[2:0] of command 29h/2Ah are for the setting of the continuous horizontal scrolling. The byte E[5:0] is for the setting of the continuous vertical scrolling offset. All these bytes together are for the setting of continuous diagonal (horizontal + vertical) scrolling. If the vertical scrolling offset byte E[5:0] is set to zero, then only horizontal scrolling is performed (like command 26/27h). Before issuing this command the scroll must be deactivated (2Eh). Otherwise, RAM content may be corrupted. The following figure (Figure 10-10 ) show the example of using the continuous vertical and horizontal scroll: Figure 10-10 : Continuous Vertical and Horizontal scrolling setup example SSD1306 Rev 1.1 P 45/59 Apr 2008 Solomon Systech 10.2.3 Deactivate Scroll (2Eh) This command stops the motion of scrolling. After sending 2Eh command to deactivate the scrolling action, the ram data needs to be rewritten. 10.2.4 Activate Scroll (2Fh) This command starts the motion of scrolling and should only be issued after the scroll setup parameters have been defined by the scrolling setup commands :26h/27h/29h/2Ah . The setting in the last scrolling setup command overwrites the setting in the previous scrolling setup commands. The following actions are prohibited after the scrolling is activated 1. RAM access (Data write or read) 2. Changing the horizontal scroll setup parameters 10.2.5 Set Vertical Scroll Area(A3h) This command consists of 3 consecutive bytes to set up the vertical scroll area. For the continuous vertical scroll function (command 29/2Ah), the number of rows that in vertical scrolling can be set smaller or equal to the MUX ratio. Solomon Systech Apr 2008 P 46/59 Rev 1.1 SSD1306 11 MAXIMUM RATINGS Table 11-1 : Maximum Ratings (Voltage Referenced to VSS) Symbol VDD VCC VSEG VCOM Vin TA Tstg Parameter Supply Voltage SEG output voltage COM output voltage Input voltage Operating Temperature Storage Temperature Range Value -0.3 to +4 0 to 16 0 to VCC 0 to 0.9*VCC VSS-0.3 to VDD+0.3 -40 to +85 -65 to +150 Unit V V V V V ºC ºC Maximum ratings are those values beyond which damages to the device may occur. Functional operation should be restricted to the limits in the Electrical Characteristics tables or Pin Description section This device may be light sensitive. Caution should be taken to avoid exposure of this device to any light source during normal operation. This device is not radiation protected. SSD1306 Rev 1.1 P 47/59 Apr 2008 Solomon Systech 12 DC CHARACTERISTICS Condition (Unless otherwise specified): Voltage referenced to VSS VDD = 1.65 to 3.3V TA = 25°C Table 12-1 : DC Characteristics Symbol VCC Parameter Operating Voltage Test Condition - Min 7 Typ - Max 15 VDD Logic Supply Voltage - 1.65 - 3.3 VOH VOL VIH VIL ICC, SLEEP High Logic Output Level Low Logic Output Level High Logic Input Level Low Logic Input Level ICC, Sleep mode Current IOUT = 100uA, 3.3MHz IOUT = 100uA, 3.3MHz VDD = 1.65V~3.3V, VCC = 7V~15V Display OFF, No panel attached VDD = 1.65V~3.3V, VCC = 7V~15V Display OFF, No panel attached 0.9 x VDD 0.8 x VDD - - 0.1 x VDD 0.2 x VDD V V V V - - 10 uA - - 10 uA - 430 780 uA - 50 150 uA Contrast=FFh - 100 - Contrast=AFh - 69 - Contrast=3Fh Dev = (ISEG – IMID)/IMID IMID = (IMAX + IMIN)/2 ISEG[0:131] = Segment current at contrast = FFh Adj Dev = (I[n]-I[n+1]) / (I[n]+I[n+1]) - 25 - -3 - +3 % -2 - +2 % IDD, SLEEP IDD, Sleep mode Current ICC IDD ISEG VCC Supply Current VDD = 2.8V, VCC = 12V, IREF = 12.5uA No loading, Display ON, All ON VDD Supply Current VDD = 2.8V, VCC = 12V, IREF = 12.5uA No loading, Display ON, All ON Segment Output Current VDD=2.8V, VCC=12V, IREF=12.5uA, Display ON. Dev Segment output current uniformity Adj. Dev Adjacent pin output current uniformity (contrast = FF) Solomon Systech Unit V V Contrast = FFh Apr 2008 P 48/59 Rev 1.1 uA SSD1306 13 AC CHARACTERISTICS Conditions: Voltage referenced to VSS VDD=1.65 to3.3V TA = 25°C Table 13-1 : AC Characteristics Symbol Parameter Test Condition FOSC (1) Oscillation Frequency of Display VDD = 2.8V FFRM Timing Generator Frame Frequency for 64 MUX Mode RES# Reset low pulse width 128x64 Graphic Display Mode, Display ON, Internal Oscillator Enabled Min 333 Typ 370 Max 407 kHz - FOSC x 1/(DxKx64) - Hz 3 - - us (2) Unit Note (1) FOSC stands for the frequency value of the internal oscillator and the value is measured when command D5h A[7:4] is in default value. (2) D: divide ratio (default value = 1) K: number of display clocks (default value = 54) Please refer to Table 9-1 (Set Display Clock Divide Ratio/Oscillator Frequency, D5h) for detailed description SSD1306 Rev 1.1 P 49/59 Apr 2008 Solomon Systech Table 13-2 : 6800-Series MCU Parallel Interface Timing Characteristics (VDD - VSS = 1.65V to 3.3V, TA = 25°C) Symbol Parameter Min Typ Max Unit tcycle Clock Cycle Time 300 - - ns tAS Address Setup Time 0 - - ns tAH Address Hold Time 0 - - ns tDSW Write Data Setup Time 40 - - ns tDHW Write Data Hold Time 7 - - ns tDHR Read Data Hold Time 20 - - ns tOH Output Disable Time - - 70 ns tACC Access Time - - 140 ns Chip Select Low Pulse Width (read) Chip Select Low Pulse Width (write) Chip Select High Pulse Width (read) Chip Select High Pulse Width (write) 120 60 60 60 - - ns - - ns tR Rise Time - - 40 ns tF Fall Time - - 40 ns PWCSL PWCSH Figure 13-1 : 6800-series MCU parallel interface characteristics D/C# tAS tAH R/W# E tcycle PWCSL CS# PWCSH tR tF tDHW tDSW D[7:0](WRITE) Valid Data tACC D[7:0](READ) tDHR Valid Data tOH Solomon Systech Apr 2008 P 50/59 Rev 1.1 SSD1306 Table 13-3 : 8080-Series MCU Parallel Interface Timing Characteristics (VDD - VSS = 1.65V to 3.3V, TA = 25°C) Symbol Parameter tcycle tAS tAH tDSW tDHW tDHR tOH tACC tPWLR tPWLW tPWHR tPWHW tR tF tCS tCSH tCSF Clock Cycle Time Address Setup Time Address Hold Time Write Data Setup Time Write Data Hold Time Read Data Hold Time Output Disable Time Access Time Read Low Time Write Low Time Read High Time Write High Time Rise Time Fall Time Chip select setup time Chip select hold time to read signal Chip select hold time Min 300 10 0 40 7 20 120 60 60 60 0 0 20 Typ - Max 70 140 40 40 - Unit ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns ns Figure 13-2 : 8080-series parallel interface characteristics Write Cycle CS# tCSF tCS D/C# tAH tAS tR tF WR# tcycle tPWLW tDSW tPWHW tDHW D[7:0] Read cycle CS# tCSH tCS D/C# tAS tR tF RD# tAH tcycle tPWLR tACC tPWHR tDHR D[7:0] tOH SSD1306 Rev 1.1 P 51/59 Apr 2008 Solomon Systech Table 13-4 : 4-wire Serial Interface Timing Characteristics (VDD - VSS = 1.65V to 3.3V, TA = 25°C) Symbol Parameter tcycle Clock Cycle Time tAS Address Setup Time tAH Address Hold Time tCSS Chip Select Setup Time tCSH Chip Select Hold Time tDSW Write Data Setup Time tDHW Write Data Hold Time tCLKL Clock Low Time tCLKH Clock High Time tR Rise Time tF Fall Time Min 100 15 15 20 10 15 15 20 20 - Typ - Max 40 40 Unit ns ns ns ns ns ns ns ns ns ns ns Figure 13-3 : 4-wire Serial interface characteristics D/C# t AS t AH t CSS CS# t CSH t cycle tCLKL tCLKH SCLK(D 0 ) tF tR t DHW t DSW SDIN(D 1 ) Valid Data CS# SCLK(D0 ) SDIN(D1) Solomon Systech D7 D6 D5 D4 D3 D2 Apr 2008 P 52/59 D1 Rev 1.1 D0 SSD1306 Table 13-5 : 3-wire Serial Interface Timing Characteristics (VDD - VSS = 1.65V to 3.3V, TA = 25°C) Symbol Parameter tcycle Clock Cycle Time tCSS Chip Select Setup Time tCSH Chip Select Hold Time tDSW Write Data Setup Time tDHW Write Data Hold Time tCLKL Clock Low Time tCLKH Clock High Time tR Rise Time tF Fall Time Min 100 20 10 15 15 20 20 - Typ - Max 40 40 Unit ns ns ns ns ns ns ns ns ns Figure 13-4 : 3-wire Serial interface characteristics t CSS CS# t CSH t CYCLE tCLKH t CLKL SCLK tF tR t DSW SDIN tDSH Valid Data CS# SCLK SDIN SSD1306 D/C# Rev 1.1 D7 P 53/59 D6 Apr 2008 D5 D4 D3 D2 D1 D0 Solomon Systech Conditions: VDD - VSS = VDD - VSS = 1.65V to 3.3V TA = 25°C Table 13-6 :I2C Interface Timing Characteristics Symbol Parameter Max Unit tcycle Clock Cycle Time 2.5 - - us tHSTART Start condition Hold Time 0.6 - - us tHD Data Hold Time (for “SDAOUT” pin) 0 - - ns Data Hold Time (for “SDAIN” pin) 300 - - ns 100 - - ns 0.6 - - us tSSTOP Data Setup Time Start condition Setup Time (Only relevant for a repeated Start condition) Stop condition Setup Time 0.6 - - us tR Rise Time for data and clock pin - - 300 ns tF Fall Time for data and clock pin - - 300 ns tIDLE Idle Time before a new transmission can start 1.3 - - us tSD tSSTART Min Typ Figure 13-5 : I2C interface Timing characteristics // SDA tHD tHSTART tR // tIDLE tF tSD tSSTART tSSTOP SCL tCYCLE Solomon Systech Apr 2008 P 54/59 Rev 1.1 SSD1306 14 Application Example Figure 14-1 : Application Example of SSD1306Z The configuration for 8080-parallel interface mode is shown in the following diagram: (VDD=2.8V, VCC =12V, IREF=12.5uA) COM1 COM3 . . COM61 COM63 SEG0 . . . . . . . . . . . . SEG127 COM62 COM60 . . COM2 COM0 DISPLAY PANEL 128 x 64 SSD1306Z BGGND VCC VCOMH IREF D[7:0] E (RD#) R/W#(W/R#) D/C# RES# CS# BS1 BS2 C3 VDD VBAT VBREF FR VSS C1N C1P C2N C2P R1 C1 C2 VCC D[7:0] E (RD#) R/W# (W/R#) D/C# RES# CS# VDD VSS VSS [GND] Pin connected to MCU interface: D[7:0], E, R/W#, D/C#, CS#, RES# Pin internally connected to VSS: BS0, CL Pin internally connected to VDD: CLS C2P, C2N, C1P, C1N, VBREF, FB should be left open. C1: 1.0uF (1) C2: 2.2uF (1) C3: 2.2uF (1) Voltage at IREF = VCC – 2.5V. For VCC = 12V, IREF = 12.5uA: R1 = (Voltage at IREF - VSS) / IREF = (12-2.5) / 12.5u =760KΩ Note (1) The capacitor value is recommended value. Select appropriate value against module application. SSD1306 Rev 1.1 P 55/59 Apr 2008 Solomon Systech 15 PACKAGE INFORMATION 15.1 SSD1306TR1 Detail Dimension SS D1 30 6T Figure 15-1 SSD1306TR1 Detail Dimension Solomon Systech Apr 2008 P 56/59 Rev 1.1 SSD1306 SSD1306 Rev 1.1 P 57/59 Apr 2008 Solomon Systech 15.2 SSD1306Z Die Tray Information Figure 15-2 : SSD1306Z die tray information Solomon Systech Apr 2008 P 58/59 Rev 1.1 SSD1306 Solomon Systech reserves the right to make changes without notice to any products herein. Solomon Systech makes no warranty, representation or guarantee regarding the suitability of its products for any particular purpose, nor does Solomon Systech assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any, and all, liability, including without limitation consequential or incidental damages. “Typical” parameters can and do vary in different applications. All operating parameters, including “Typical” must be validated for each customer application by the customer’s technical experts. Solomon Systech does not convey any license under its patent rights nor the rights of others. Solomon Systech products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to support or sustain life, or for any other application in which the failure of the Solomon Systech product could create a situation where personal injury or death may occur. Should Buyer purchase or use Solomon Systech products for any such unintended or unauthorized application, Buyer shall indemnify and hold Solomon Systech and its offices, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even if such claim alleges that Solomon Systech was negligent regarding the design or manufacture of the part. All Solomon Systech Products complied with six (6) hazardous substances limitation requirement per European Union (EU) “Restriction of Hazardous Substance (RoHS) Directive (2002/95/EC)” and China standard “电子信息产品污染控制标识要求 (SJ/T11364-2006)” with control Marking Symbol . Hazardous Substances test report is available upon requested. http://www.solomon-systech.com SSD1306 Rev 1.1 P 59/59 Apr 2008 Solomon Systech