Дисплей LCD Nokia 6100 и AVR

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
MadOrc
Сверлит текстолит когтями
Сообщения: 1215
Зарегистрирован: Чт дек 27, 2012 15:38:20
Откуда: Казахстан, Алма-Ата

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение MadOrc »

Каюсь, проглядел, не нужно было. :roll:
Проверил сейчас на дисплейчике - работает команда. :wink:
Радиофил-затейник.
Реклама
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение axillent »

тоже попробовал
классно, можно в любое положение повернуть
Реклама
Аватара пользователя
*BoyKot*
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт сен 05, 2013 11:01:55
Откуда: MoscowCity

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение *BoyKot* »

Есть где-нибудь человеческое описание как работать с этим дисплеем "на пальцах"? Неохота читать нудный даташит.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение axillent »

а вы попробуйте почитать, он совсем не нудный
и не найдете вы никакого лучшего описалова чем даташит
только если сами напишите
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
*BoyKot*
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт сен 05, 2013 11:01:55
Откуда: MoscowCity

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение *BoyKot* »

Ясно, буду делать по шиту. Дисплей хочу от Nokia 1616 взять. Посмотрим какой в продаже будет. Пугает еще их разделение на филипс и эпсон, но думаю разберусь.
Реклама
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение axillent »

хороший дисплейчик
можете начать с моих наработок http://radiokot.ru/articles/53/
Реклама
Аватара пользователя
*BoyKot*
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт сен 05, 2013 11:01:55
Откуда: MoscowCity

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение *BoyKot* »

А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение axillent »

*BoyKot* писал(а):А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.
у дисплея с подсветкой на 7 вольт forward voltage 6 с лишним, так что если бы у вас была подсветка на 7 вольт то от 3 она бы не завелась
Аватара пользователя
*BoyKot*
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт сен 05, 2013 11:01:55
Откуда: MoscowCity

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение *BoyKot* »

axillent писал(а):
*BoyKot* писал(а):А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.
у дисплея с подсветкой на 7 вольт forward voltage 6 с лишним, так что если бы у вас была подсветка на 7 вольт то от 3 она бы не завелась
Все ясно. Хорошо что сразу 7В не подал. Значит преобразователь мне не нужен. УРА!
Аватара пользователя
*BoyKot*
Открыл глаза
Сообщения: 52
Зарегистрирован: Чт сен 05, 2013 11:01:55
Откуда: MoscowCity

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение *BoyKot* »

Дисплей запустил. Полёт нормальный! Выражаю благодарность ресурсам
http://radiokot.ru/articles/53/ и http://robobuild.ru/index.php?itid=2 а также некоторым другим за предоставленные материалы.

Фоткал на телефон, четкости нету, но LCD показывает очень хорошо.

Изображение
Аватара пользователя
0867532
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб май 25, 2013 21:14:11
Откуда: Москва
Контактная информация:

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение 0867532 »

Скажите, а где экран брали?
Если возникнут вопросы - посмотрите на мой аватар.
axillent
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение axillent »

поздравляю!

в Москве дисплеи берут в магазине Профи и на всяких Митино и в Царицино (радиорынках)
а так можете поспрощать в конторах занимающихся ремонтом сотовых или поставкой запчастей к сотовым
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

Подскажите, пожалуйста, какой ток потребляет дисплей в среднем и какой ток потребляют светодиоды подсветки? Подсветку нужно питать от 3,3 вольт или же им надо больше? А то я в интернете встречал упоминание о необходимости аж 7 вольт.
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

Есть кто-нибудь, кто работал с эпсоновским дисплеем? Там надо после влючения посылать какие-нибудь команды типа включить конвертер напряжения, включить дисплей, как это делается у филипса? Или можно сразу писать в память и он будет показывать?
Аватара пользователя
-Valerius-
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб янв 12, 2013 22:43:10
Откуда: Москва

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение -Valerius- »

B@R5uk писал(а):Есть кто-нибудь, кто работал с эпсоновским дисплеем?
Я работал с этими дисплеями, в лоб код от филипс не заработает, ну и есть свои заморочки. Что конкретно нужно? Чем помочь?)
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

Да инициализация мне была нужна. В описании к чипу S1D15G10 написано много всяких инициализирующих команд, а какие типовые значения аргументов у этих команд должны быть -- не написано. Вот я долго мучился вопросом "КАК?", но таки нашёл в интернете пример вот на этом сайте. В статье список всяких файлов, в том числе Example Pixel Control of LCD. Этот файл работает именно с дисплеем от Epson. Вот по нему то я и составляю сейчас программу. Там даже комментарии есть по смыслу параметров команд, например установка напряжений с помощью команды VOLCTR -- это своего рода контрастность. Пока получился вот такой ацкий код:
Спойлер

Код: Выделить всё

;==============
;   Инициализация дисплея
LCD_init:       ldi     r18,    0x31
                ldi     ZL,     LOW(LCD_init_tbl<<1)
                ldi     ZH,     HIGH(LCD_init_tbl<<1)
LCD_init_loop:  lpm     r16,    Z+
                lpm     r17,    Z+
                lsr     r17
                rcall   LCD_send
                dec     r18
                brne    LCD_init_loop
                ret
;==============
;   Таблица данных, посылаемых на этапе инициализации в ЖК-дисплей
LCD_init_tbl:
.dw     LCD_DISCTL,     0x0103,0x0120,0x010C,0x0100
.dw     LCD_COMSCN,     0x0101
.dw     LCD_OSCON
.dw     LCD_SLPOUT
.dw     LCD_VOLCTR,     0x01A0,0x0101
.dw     LCD_PWRCTR,     0x010F
.dw     LCD_DISINV
.dw     LCD_DATCTL,     0x0100,0x0100,0x0101,0x0100
.dw     LCD_RGBSET8,    0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F
.dw                     0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F
.dw                     0x0100,0x0104,0x0109,0x010F
.dw     LCD_NOP
.dw     LCD_PASET,      0x0100,0x0183
.dw     LCD_CASET,      0x0100,0x0183
.dw     LCD_DISON
;   Всего 49 девятибитных посылок
;==============
;   Процедура посылки команды/данных в ЖК-дисплей
;   Исходные аргументы функции:
;       -   флаг переноса (8-й бит)
;       -   регистр r16 (биты с 7-го по 0-ой)
;   В процессе работы модифицируются:
;       -   регистр r17
;       -   флаг T
;       -   остальные флаги
;   По окончании работы остаются неизменными:
;       -   регистр r16
;       -   флаг переноса
LCD_send:       cbi     PORTC,  LCD_slct
                in      r17,    PORTC
                andi    r17,    ~(1<<LCD_clk)
                rol     r16             ;   Подготовка 8-го бита из C-флага
                bst     r16,    0
                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 8-го бита из C-флага

                rol     r16             ;   Подготовка 7-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 8-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 7-го бита

                rol     r16             ;   Подготовка 6-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 7-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 6-го бита

                rol     r16             ;   Подготовка 5-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 6-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 5-го бита

                rol     r16             ;   Подготовка 4-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 5-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 4-го бита

                rol     r16             ;   Подготовка 3-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 4-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 3-го бита

                rol     r16             ;   Подготовка 2-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 3-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 2-го бита

                rol     r16             ;   Подготовка 1-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 2-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 1-го бита

                rol     r16             ;   Подготовка 0-го бита
                bst     r16,    0
                sbi     PORTC,  LCD_clk ;   Отправка 1-го бита

                bld     r17,    LCD_data
                out     PORTC,  r17     ;   Вывод 0-го бита

                nop
                nop
                sbi     PORTC,  LCD_clk ;   Отправка 0-го бита

                nop
                nop
                sbi     PORTC,  LCD_slct
                ret
;==============
Осталось чуток дописать и попробовать.
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

Удивительно, дисплей заработал с первой попытки:

Изображение

Изображение

Единственное, что расстраивает, -- это очень низкая контрастность дисплея. Причём после выключения питания, когда напряжение падает, проскакивает момент с просто шикарной контрастностью. Может быть напряжение питания 3,3 вольта для драйвера -- это много? Подскажите, пожалуйста, что надо подкрутить?
Аватара пользователя
-Valerius-
Встал на лапы
Сообщения: 99
Зарегистрирован: Сб янв 12, 2013 22:43:10
Откуда: Москва

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение -Valerius- »

B@R5uk писал(а):
Единственное, что расстраивает, -- это очень низкая контрастность дисплея. Причём после выключения питания, когда напряжение падает, проскакивает момент с просто шикарной контрастностью. Может быть напряжение питания 3,3 вольта для драйвера -- это много? Подскажите, пожалуйста, что надо подкрутить?
Ммм.. Я в ассемблере- слабак, поэтому не могу проанализировать ваш инит дисплея- сам на СИ упражняюсь)) Отсюда вопрос- точно это Epson? Потому как с зеленым текстолитом могут быть и PCF8833, но если все работает- то рекомендую снизить напряжение питания дисплея до 2,5-2,7 Вольт. Иначе с контрастностью- проблемы, она как бы "перенасыщена". И еще- у моих дисплеев epson контроллер на стекле пришлось закрывать от естественного света- так как дисплей начинал сходить с ума и частично не реагировал на команды, чего не наблюдалось с дисплеями Phillips.
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

-Valerius-, спасибо за рекомендации, попробую.

Дисплей точно от Epson, поскольку выводит анимированную картинку. Инициализация вот такая:
Спойлер

Код: Выделить всё

;==============
;   Таблица данных, посылаемых на этапе инициализации в ЖК-дисплей
LCD_init_tbl:
.dw     LCD_DISCTL,     0x0103,0x0120,0x010C,0x0100
.dw     LCD_COMSCN,     0x0101
.dw     LCD_OSCON
.dw     LCD_SLPOUT
.dw     LCD_VOLCTR,     0x01A0,0x0101
.dw     LCD_PWRCTR,     0x010F
.dw     LCD_DISINV
.dw     LCD_DATCTL,     0x0100,0x0100,0x0101,0x0100
.dw     LCD_RGBSET8,    0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F
.dw                     0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F
.dw                     0x0100,0x0104,0x0109,0x010F
.dw     LCD_NOP
.dw     LCD_PASET,      0x0100,0x0183
.dw     LCD_CASET,      0x0100,0x0183
.dw     LCD_DISON
;   Всего 49 девятибитных посылок
;==============
Тут по идее без знания языка должно быть понятно что к чему. .dw — директива помещающая слово в память. То есть приведённый текст — это девятибитные команды, отправляемые в ЖКД. Самый старший байт — ноль или единичка. Ноль означает команду, и его писать не надо. А единичка — параметры команды, поэтому все они имеют вид 0x01zz. Комбинации символов типа LCD_xxxxxx — это определённые вручную константы, обозначающие команды эпсоновского драйвера ЖКД. Их имена (за исключением приставки LCD_) полностью совпадают с именами, приведёнными в спецификации на этот драйвер. На си эта таблица выглядела бы как-то так:
Спойлер

Код: Выделить всё

//=============
//   Таблица данных, посылаемых на этапе инициализации в ЖК-дисплей
unsigned int __attribute__((progmem))LCD_init_tbl[]=
{
     LCD_DISCTL,     0x0103,0x0120,0x010C,0x0100,
     LCD_COMSCN,     0x0101,
     LCD_OSCON,
     LCD_SLPOUT,
     LCD_VOLCTR,     0x01A0,0x0101,
     LCD_PWRCTR,     0x010F,
     LCD_DISINV,
     LCD_DATCTL,     0x0100,0x0100,0x0101,0x0100,
     LCD_RGBSET8,    0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F,
                     0x0100,0x0102,0x0104,0x0106,0x0108,0x010A,0x010C,0x010F,
                     0x0100,0x0104,0x0109,0x010F,
     LCD_NOP,
     LCD_PASET,      0x0100,0x0183,
     LCD_CASET,      0x0100,0x0183,
     LCD_DISON
};
//   Всего 49 девятибитных посылок
//=============
Процедура инициализации просто читает эту таблицу и отправляет младшие девять бит каждого слова в экран.

Сейчас внимательно почитал спецификацию на S1G15D10 по поводу напряжений. Там пишут, что у драйвера два питания V_ddi и V_dd. Номинальное значение V_ddi равно 1,8 вольт, а V_dd — 2,75 вольт. А я уже развёл, протравил и с трудом припаял разъём, где эти питания запараллелены. Хотя в разделе Absolute Maximum Ratings пишут, что максимальный рабочий диапазон для V_ddi и для V_dd равен -0,3...4,0 вольт, то есть не сгорит, но всё равно как-то не тру получается.
Аватара пользователя
B@R5uk
Собутыльник Кота
Сообщения: 2896
Зарегистрирован: Сб ноя 13, 2010 12:53:25
Откуда: приходит весна?

Re: Дисплей LCD Nokia 6100 и AVR

Сообщение B@R5uk »

Присмотрел в системе красивые символы для знакогенератора, размером всего 13х8:

Изображение

Прикинул занимаемую память 3,25 КБ -- 36% от ПЗУ ATmega. :shock: А ведь у неё целых 8 КБ! А что делать на контроллерах по-слабее? А ведь как хочется рисовать чем-нибудь по-приличней, типа этих символов, размером 15х25:

Изображение
Ответить

Вернуться в «Периферия»