Драйвер для OLED дисплеев типа CNK109632, CNK109630, PG-2864KSWE, UG-2864хххх и им подобных.


ОБЩАЯ ХАРАКТЕРИСТИКА

OLED

SSD1306 является однокристальный КМОП OLED/PLED драйвер с контроллером для органических/полимерных светодиодных графических дисплеев. SSD1306 имеет встроенное управление контрастностью, оперативной памятью и внутренний генератор, что снижает количество внешних компонентов и потребление энергии. 256-шагов регулировки яркости. Обладает 6800/8000 серии совместимым параллельным интерфейсом, последовательный периферийный интерфейс интерфейс I2C или SPI. Это подходит для многих компактных портативных устройств, таких как вспомогательный дисплей для мобильных телефонов, MP3-плеер и калькуляторы, и т.д.


ОСОБЕННОСТИ

Разрешение: 128 х 64.
Питание

  • VDD = 1,65 В до 3,3 В, напряжение питание логики<VBAT
  • VBAT = 3,3 до 4,2 В напряжение питания внутренего повышающего преобразователя
  • VCC = 7В до 15В внешнее напряжение питание OLED панели
  • Потребление
    • Ток сегмента максимальный: 100 мкА
    • Общий потребляемый, максимальный ток: 15 мА
  • 256 шагов регулировки яркости
  • Встроенный 128 х 64 бит SRAM буфер дисплея
  • Интерфейсы MCU:
    • 8-битный параллельный интерфейс 6800/8080-series
    • 3/4 проводной SPI
    • интерфейс I2C
  • Функцией прокрутки в горизонтальном и вертикальном направлении
  • Программируемая частота кадров
  • Возможность изменять систему координат
  • Внутренний генератор
  • Широкий диапазон рабочих температур: от -40 ° C до 85 ° C

Блок схема драйвераcatcatcat_electronic_oled_01


Назначение выводов интерфейса питания, данных и управления.

Название вывода Описание
Vdd Напряжение питания основной логики драйвера.
Vcc Вывод драйвера питания OLED панели. Когда драйвер включен, между этим выводом и землей (Vss) должен быть подключен конденсатор.
Vss Вывод земли, общий
Vlss Аналоговый вывод земли, должен быть соединен с Vss/
Vcomh Контакт для COM сигнала выбор уровня напряжения. Конденсатор должен быть подключен между этим выводом и Vss.
 Vbat
Напряжение питания внутреннего драйвера преобразователя напряжения. Если внутренний преобразователь включен Vbatподключен к внешнему источнику Vbat питания, Vdd- внешний источник Vdd, Vcc через конденсатор к общему  VssЕсли преобразователь отключен, то Vbat оставить не подключенным, Vdd — внешний источник Vdd, Vccвнешний источник Vcc
 BGGND Зарезервированный вывод, подключен к земле.
С1P/C1N C2P/C2N Выводы подключения конденсаторов для драйвера преобразователя напряжения питания панели OLED.
 Vbref Резервный вывод (не подключать)
BS[2:0] Выводы выбора интереса связи. смотри таблицу ниже.
Iref Токозадающий вход. Между этим выводом и землей должен быть подключен резистор обеспечивающий ток 12.5 12,5 мкА.
FR Неиспользуется
CL Вход внешней тактовой частоты. Когда внутрений генератор включен, вывод должен быть подключен к Vss.
CLS Вывод управления внутренним тактовым генератором, если он подключен к Vddвключен внутренний тактовый генератор, если подключен Vss — внутренний тактовый генератор отключен и на вход CL должна быть подана тактовая частота.
RES# Вывод СБРОС. Когда установлен «0» выполняется полная инициализация драйвера дисплея. Для нормальной работе должен быть переведен «1»
CS# Вывод выбора драйвера дисплея, активный уровень «0»
D/C# Управляющий вход — Данные/команда. Для параллельного интерфейса «1» — команда, «0» — данные. Для I2C — SA0 выбор адреса. SPI — должен подключен к Vss.
E (RD#) Для интерфейса 6800, этот контакт будет использоваться в качестве Включить (E) сигнала. Операции чтения / записи инициируется, когда этот вывод подтянут (то есть подключение к Vdd) и чип выбран.
Для интерфейса 8080, назначение этого вывода Read (RD#). Чтение начинается, когда этот вывод в «0» и чип выбран.
Когда выбран I2C или SPI, этот вывод должен быть подключен к VSS.
R/W#(WR#) Вход управления чтения/запись.
При взаимодействии в 6800 микропроцессора, этот контакт будет использоваться как чтение/запись (R/W#) Выбор входа. Режим чтения будет осуществляться, когда этот вывод подтянут «1», и режим записи, когда к «0».
Для 8080 интерфейса, этот вывод будет Запись сигнал (WR #). Запись данных. Операция начинается, когда этот вывод в «0» и чип выбран. Когда SPI или I2C выбран, этот вывод должен быть подключен к Vss.
D[7:0] Это шина 8-битной двунаправленной передачи данных. Для SPI, D0 вход тактовой частоты: SCLK; D1 входные данные: SDIN и D2 должны быть не подключена.
Когда I2C выбран режим, D2, D1 должны быть связаны друг с другом и служат SDAout, в SDAin — передача данных D0 — SCL.

Выбор интерфейса

Вывод I2C 6800 8080 4-SPI 3-SPI
BS0 0 0 0 0 1
BS1 1 0 1 0 0
BS2 0 1 1 0 0

Назначение выводов

Дата/Команда Сигналы управления
Вывод D7 D6 D5 D4 D3 D2 D1 D0 E R/W# CS# D/C# RES#
Интерфейс
8-bit 8080 D[7:0] RD# WR# CS# D/C# RES#
8-bit 6800 D[7:0] E R/W# CS# D/C# RES#
3-wire SPI «0» NC SDIN SCLK «0» CS# «0» RES#
4-wire SPI «0» NC SDIN SCLK «0» CS# D/C# RES#
I2C «0» SDAOUT SDAIN SCL «0» SA0 RES#

MCU Parallel 6800-series Interface

Параллельный интерфейс состоит из 8 двунаправленной линий передачи данных вводы (D [7:0]), R/W#, D/C#, E и CS#.  R/W#=»0″ указывает на операцию записи и R/W#=»1″ указывает, что операции чтения. D/C#=»0″ — чтения/записи команды, D/C#=»1″ чтения/записи данных. E входного сигнала служит защелка данных,  CS #=»0″ выбор драйвера. Данные фиксируются по заднему фронту сигнала Е.

Функция E R/W# CS# D/C#
Write command 0 0 0
Read status 1 0 0
Write data 0 0 1
Read data 1 0 1

 Control pins of 8080 interface

Функция RD# WR# CS# D/C#
Write command 1 0 0
Read status 1 0 0
Write data 1 0 1
Read data 1 0 1

ВНИМАНИЕ ! ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ ОБЕСПЕЧИВАЮТ ТОЛЬКО РЕЖИМ ЗАПИСИ ДАННЫХ!

Чтения/запись данных
Чтобы прочитать данные из GDDRAM установить сигналы R/W # (# WR)=1 и  D/C #=1  для 6800 и Е (RD #)=0 и  D / C #=1 для 8080 интерфейса. Режим чтения данных не предусмотрен в последовательных режимах работы.
В нормальном режиме чтения данных указатель адреса GDDRAM колонке автоматически увеличится на единицу после каждого считывания данных. Кроме того, требуется одна команда холостого чтения для получения первого байта данных.

Для записи данных в GDDRAM, установить R/W # (# WR)=0 и D/C # =1 для 6800 и 8080 интерфейсов. Последовательный режим интерфейса всегда находится в режиме записи. Адрес GDDRAM колонке указатель будет увеличена автоматически на единицу после каждого записи данных.


MCU Serial Interface (4-wire SPI)

Функция E(RD#) R/W#(WR#) CS# D/C# D0
Write command Vss Vss 0 0
Write data Vss Vss 0 1

catcatcat_oled06Декодирование байта команд  или данные.

Данные интерпретируются в зависимости состояния сигнала на  входе D/C#. Если D/C# = «1», то D [7:00] будет интерпретирован как проявление данные, записанные на графическом дисплее ОЗУ данных (GDDRAM). Если D/C# = «0», то данные поступающие на вход D [7:0] интерпретируется как команду.

MCU Serial Interface (3-wire SPI)

Функция E(RD#) R/W#(WR#) CS# D/C# D0
Write command Vss Vss 0 Vss
Write data Vss Vss 0 Vss

catcatcat_oled07

3-wire SPI — представляет собой передачу данных 9 бит где 9 бит определяет вид передаваемых данных 0 — передача команды, 1-передача данных.


MCU I2C Interface

Драйвер поддерживает подключения к шине до 2 дисплеев  адрес можно задать изменением состояния бита SA0. Состояние этого бита задается подачей на вывод  D/C# драйвера состояние Vdd или Vss. I2C-Bus шина данных SDA ( необходимо соединить вместе выводы D1 и D2 драйвера SDAOUT/D2 и SDAIN/D1) для ввода данных и I2C-Bus шина синхронизации SCL  использовать вывод D0. Обе шины должны быть подключены через подтягивающие резисторы в Vdd. RES# используется для инициализации устройства.

1. Адрес ведомого задается битом (SA0).
SSD1306 должна получить адреса ведомого до передачи или получения каких-либо данных I2C-Bus. Устройство будет отвечать на следующие адреса ведомого битом адреса ведомого («SA0» бит) и чтения / записи бит выбора («R/W#» бит) в следующем формате байта,

b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 1 1 0 SA0 R/W#

«SA0» бит обеспечивает расширение бит для адреса ведомого. Либо «0111100» или «0111101», может быть выбран в качестве ведомого адрес SSD1306. D/C# действует как контактный SA0 для выбора адреса ведомого.
«R/W #» бит используется для определения режима работы шины I2C интерфейс. R/W# = 1, — режиме чтения. R/W# = 0, то в режиме записи.
2. Шины I2C сигнал данных (SDA)
SDA выступает в качестве канала связи между передатчиком и приемником. Данные и подтверждения посылаются через SDA.
Следует отметить, что сопротивление ITO трек и поднятого вверх сопротивление на «SDA» PIN становится напряжение делителя напряжения. В результате, подтверждение не было бы возможно достичь действительного логический 0 уровня «SDA».
«SDAin» и «SDAout» связаны между собой и служат SDA.»SDAin» PIN должен быть подключен к SDA выступать в качестве входа данных.»SDAout» вывод может быть отключен. Когда «SDAOUT» вывод отключен, сигнал подтверждения будет игнорироваться I2C-Bus.
3. Шины I2C тактовый сигнал (SCL)
Передача информации в I2C-Bus следит тактового сигнала, SCL. Каждый передачи бит данных произошли в течение одного периода тактовой SCL.

Формат передачи данных по шине

catcatcat_oled05

Передача данных по шине I2C.

1) Ведущее устройство инициирует передачу данных формирует на шине состояние СТАРТ.
2) Передает первый байт адрес ведомого устройства «b0111100» или «b0111101» который зависит от состояния бита SA0 управляемого выводом D/C#.
3) Режим записи — установив R/W # бита в «0».
4) Ведомый формирует бит подтверждения ACK.
5) После передачи адреса подчиненного устройства, по шине SDA могут быть передан либо контрольный байт или байт данных. Контрольный байт в основном состоит из бит Co и D/C# и последующих шести «0» ‘.

  • Если бит Co = «0», то передача следующую байтов информации будет содержать только данные.
  • Бит D/C# определяет следующий байт — как команду или данные для отображения. Если D/C# = «0», он определяет следующий байт как команду. Если D/C# = «1», он определяет следующий байт данных в виде данных, которые будут сохранены в GDDRAM. Указатель адреса GDDRAM будет автоматически увеличиваться на единицу после каждой записи данных.

6) бит подтверждения будет сгенерирован после получения каждого байта управления или байт данных.
7) режим записи будет закончен, когда ведущий формирует состояние СТОП.

Сначала следует отметить, что передачи бита данных имеет некоторые особенности.
1.Бит данных, который передается во время каждого импульса SCL, должны держать в стабильном состоянии в течение «высокого» период тактового импульса. За исключением начала или остановить условий на линии данных может быть включена только тогда, когда SCL низкий.
2. Обе линии данных (SDA) и линия синхронизации (SCL) должны быть подтянуты внешних резисторов.


Последовательность включение и выключение питания с внешним источником  VCC

Последовательность включения дисплея.

1. Подать питание VDD
2. После VDD стать стабильным, подать на вход RES # низкий уровень (низкий логический уровень), по крайней мере 3 мкс (T1) (4), а затем перевести в высокий уровень.
3. После установки RES #=»0″, подождите не менее 3 мкс (t2). Затем включите VCC.
4. После VCC стать стабильным, отправить команду AFh для включения дисплея. SEG/COM будет включен через 100 мс (TAF).

catcatcat_oled01

Последовательность выключения дисплея:

1. Отправить команду AEh для выключения дисплея.
2. Отключение питания Vcc.
3. Отключение питания Vdd после Toff. (Типичное Toff = 100 мс)

catcatcat_oled02


Последовательность включение и выключение питания с внутренним источником  VCC

Последовательность включения дисплея.
1. Подать Vdd
2. Подождать ton и подать Vbat.  (где минимальный ton = 0 мс)
3. Когда Vbat стать стабильным, установить на RES# = «1», по крайней мере 3 мкс (T1), а затем превести в состояние «1».
4.  Затем выполнить последовательность команд:

  • 8Dh 14h  для включения внутреннего преобразователя напряжения
  • AFh команда включить дисплей

5. SEG/COM будет включен через 100 мс (Taf)

catcatcat_oled03Последовательность выключения дисплея:

1. Отправить команду AEh — выключить дисплей.
2. Отправить команду 8Dh 10h — выключить преобразователь.
3. Отключение питания Vbat после Toff. (типичное Toff = 100 мс)
4. Отключение питания Vdd после toff2. (где минимальный toff2 = 0 мс, типичные toff2 = 5 мс)

catcatcat_oled04


Внутренний повышающий преобразователь

Внутренняя схема регулятора в SSD1306 требует подключения только 2 внешних конденсаторов и может генерировать 7.5V Потребляемый ток до 6 мА. Этот регулятор может быть включен / выключен по команде 8Dh. Если используется внешний источник VCC внутренний регулятор должен быть отключен.


 Команды управления драйвером.

D/C# HEX D7 D6 D6 D5 D4 D3 D2 D1 Команда Описание
0 81 1 0 0 0 0 0 0 1 Установить контрастность дисплея Двухбайтовая команда. Параметр от 1 до 256. Значение по умолчанию (RESET = 7Fh (127))
A[7:0] A7 A6 A5 A4 A3 A2 A1 A0
0 A4/A5 1 0 1 0 0 1 0 X0 Включить весь дисплей A4h, X0=0b: Продолжить вывод на дисплей содержимого RAM (RESET) Отображается содержимое RAM.
A5h, X0=1b: Включить весь дисплей. Вывод игнорирует содержимое RAM.
0 A6/A7 1 0 1 0 0 1 1 X0 Установить Нормальное или Инверсное изображение A6h, X [0] =0b: Нормальный отображение (RESET)
0 в RAM: отображается как выключенный пиксель
1 в RAM: отображается как горящий пиксель
A7h, X [0] =1b: Инверсный режим отображения
0 в RAM: отображается как горящий пиксель
1 в RAM: OFF отображается как выключенный пиксель
0 AE/AF 1 0 1 0 1 1 1 X0 Включить/Выключить дисплей AEh, X[0]=0b:Дисплей отключен (спящий режим) (RESET)
AFh X[0]=1b:Дисплей включен, нормальный режим работы
0 26/27 0 0 1 0 0 1 1 X0 Установка непрерывной горизонтальной прокрутки (скроллинга) 26h, X[0]=0, горизонтальный скроллинг вправо,
27h, X[0]=1, горизонтальный скроллинг влево
0 A[7:0] 0 0 0 0 0 0 0 0 A[7:0]: фиктивный байт (Установить как 00h)
0 B[2:0] * * * * * B2 B1 B0 B[2:0]: Определить стартовой адрес
000b – PAGE0, 001b – PAGE1, 010b – PAGE2, 011b – PAGE3, 100b – PAGE4, 101b – PAGE5, 110b – PAGE6, 111b – PAGE7
0 C[2:0] * * * * * C2 C1 C0 C[2:0]: Установите временной интервал между каждым шагом прокрутки с точки зрения частоты кадров
000b – 5 frames, 001b – 64 frames, 010b – 128 frames, 011b – 256 frames, 100b – 3 frames, 101b – 4 frames, 110b – 25 frame, 111b – 2 frame
0 D[2:0] * * * * * D2 D1 D0 D[2:0]: Определить адрес конца страницы
000b – PAGE0, 001b – PAGE1, 010b – PAGE2, 011b – PAGE3, 100b – PAGE4, 101b – PAGE5, 110b – PAGE6, 111b – PAGE7
Значение D[2:0] должно быть больше или равно для B[2:0]
0 E[7:0] 0 0 0 0 0 0 0 0 E[7:0]: фиктивный байт (Установить как 00h)
0 F[7:0] 1 1 1 1 1 1 1 1 F[7:0]: фиктивный байт (Установить как FFh)
29/2A 0 0 1 0 1 0 X1 X0 Установка режима непрерывной горизонтальной или вертикальной прокрутки (скроллинга) 29h, X1X0=01b : Вертикальный и вправо горизонтальный скроллинг
2Ah, X1X0=10b : Вертикальный и влево горизонтальный скроллинг
(Горизонтальная прокрутка на 1 колонку)
A[2:0] 0 0 0 0 0 0 0 0 A[7:0]: фиктивный байт
B[2:0] * * * * * B2 B1 B0 B[2:0]:Определить стартовой адрес
000b – PAGE0, 001b – PAGE1, 010b – PAGE2, 011b – PAGE3, 100b – PAGE4, 101b – PAGE5, 110b – PAGE6, 111b – PAGE7
C[2:0] * * * * * C2 C1 C0 C[2:0]:Установите временной интервал между каждым шагом прокрутки с точки зрения частоты кадров
000b – 5 frames, 001b – 64 frames, 010b – 128 frames, 011b – 256 frames, 100b – 3 frames, 101b – 4 frames, 110b – 25 frame, 111b – 2 frame
D[2:0] * * * * * D2 D1 D0 D[2:0]: Определить адрес конца страницы
000b – PAGE0, 001b – PAGE1, 010b – PAGE2, 011b – PAGE3, 100b – PAGE4, 101b – PAGE5, 110b – PAGE6, 111b – PAGE7
Значение D[2:0] должно быть больше или равно для B[2:0]
E[5:0] * * * * * E2 E1 E0 E [5:0]: Вертикальная прокрутка смещения
например
E [5:0] = 01h см. смещение = 1 ряд
E [5:0] = 3Fh см. смещение = 63 строк
внимание (1) Нет непрерывной вертикальной прокрутки отсутствует.
2E 0 0 1 0 1 1 1 0 Отключить прокрутку ( скроллинг) Остановить прокрутку, настроенный командой 26h/27h/29h/2Ah.
внимание
(1) После отправки 2Eh команды для отключения прокрутки, данные в ОЗУ  должны быть переписаны.
2F 0 0 1 0 1 1 1 1 Включить прокрутку (скроллинг) Начать прокрутку (скроллинг), которая настроена на прокрутку командами настройки: 26h/27h/29h/2Ah со следующими допустимыми последовательностями:
Действительно последовательность команд 1: 26h; 2Fh.
Действительно последовательность команд 2: 27h; 2Fh.
Действительно последовательность команд 3: 29h; 2Fh.
Действительно последовательность команд 4: 2Ah; 2Fh.
Например, если «26h; 2Ah;. 2Fh» команды даются, то текст в последней команде настройки прокрутки, т.е. 2Ah в этом случае, будет выполнено. Другими словами,
установки в последней команде настройки прокрутки перезаписывают настройки в предыдущих командах настройки прокрутки.
A3 1 0 1 0 0 0 1 1 Установка области вертикальной прокрутки Внимание
(1) [5:00] + B [6:00] <= MUX ratio (соотношение)
(2) B [6:00] <= MUX ratio (соотношение)
(3а) Установка смещения для вертикального скроллинга (прокрутки)
(E[5:0] в 29h/2Ah) <B[6:00]
(3b) Установка Стартовой (начальной) линии дисплея,
(X5X4X3X2X1X0 из 40h ~ 7Fh) < B[6:00]
(4) В последняя строка области прокрутки смещается в первую строку области прокрутки.
(5) Для 64d MUX дисплей
[5:00] = 0, B [6:00] = 64: вся область прокрутки
[5:00] = 0, B [6:00] <64: верх области прокрутки
[5:00] + B [6:00] <64: центр области прокрутки
[5:00] + B [6:00] = 64: низ области прокрутки
A[5:0] * * A5 A4 A3 A2 A1 A0 [5:0]: Кол-во взятых строк в верхней фиксированной области.Количество строк в верхней фиксированной области ссылается на верхней части GDDRAM (то есть строка 0). [RESET= 0]
B[6:0] * B6 B5 B4 B3 B2 B1 B0 B [6:00]: Задание Количество рядов в области прокрутки. Это количество строк, которые будут использоваться для вертикальной прокрутки.Области прокрутки начинается в первой строке ниже верхней фиксированной области. [RESET= 64]
00~0F 0 0 0 0 X3 X2 X1 X0 Установка указателя по X. Младший полубайт. Загрузка младшего полубайта в регистр указателя положения курсора в положении на странице.
После сброса в этом регистре храниться значение 0000b.
внимание
(1) Эта команда только для режима адресации страницы
10~1F 0 0 0 1 X3 X2 X1 X0 Установка указателя по X. Старший полубайт. Загрузка старшего полубайта в регистр указателя положения курсора в положении на странице.
После сброса в этом регистре храниться значение 0000b.
внимание
(1) Эта команда только для режима адресации страницы

 

«*» Означает «не важно».


Внутренний повышающий регулятор.
Внутренней схеме регулятора в SSD1306 необходимо только 2 внешних конденсаторов для работы. Он обеспечивает питание 7,5 Вольт VCC, от низкого входного напряжения питания, VBAT. VCC предназначен для питания матрицы OLED. Этот вариант дисплеев предназначенный для ручных устройств. Этот регулятор может быть включен/выключен с помощью программы команды установки.

Поддерживаемые напряжения:

  • VDD = 1.65V to 3.3V,<VBAT для логики микросхемы
  • VBAT = 3.3V to 4.2V для повышающего преобразователя

Последовательность включения питания с источником внешней (DC/DC) VCC:
1. Включить VDD
2. Отправить в дисплей команду выключен
3. инициализация
4. Очистить экран
5. Подать питание VCC
6. Задержка 100 мс (Для стабилизации VCC)
7. Загрузить данные изображения

Последовательность выключения питания:
1. Отправить в дисплей команду выключен
2. Выключите VCC
3. Задержка 100 мс (Для полного разряда емкостей VCC цепей)
4. Выключить VDD


Процедура инициализации дисплея (вариант с внешним DC/DC)

продолжение следует…..


Copyright © Catcatcat 2013-2017. Все права защищены.
Копирование разрешается только с указанием активной ссылки на правообладателя.

e-mail: catcatcat.electronics@gmail.com