Страница 6 из 7

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

Добавлено: Пн окт 21, 2013 07:42:57
MadOrc
Каюсь, проглядел, не нужно было. :roll:
Проверил сейчас на дисплейчике - работает команда. :wink:

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

Добавлено: Пн окт 21, 2013 10:58:02
axillent
тоже попробовал
классно, можно в любое положение повернуть

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

Добавлено: Пн янв 13, 2014 15:01:58
*BoyKot*
Есть где-нибудь человеческое описание как работать с этим дисплеем "на пальцах"? Неохота читать нудный даташит.

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

Добавлено: Пн янв 13, 2014 15:04:10
axillent
а вы попробуйте почитать, он совсем не нудный
и не найдете вы никакого лучшего описалова чем даташит
только если сами напишите

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

Добавлено: Пн янв 13, 2014 15:12:48
*BoyKot*
Ясно, буду делать по шиту. Дисплей хочу от Nokia 1616 взять. Посмотрим какой в продаже будет. Пугает еще их разделение на филипс и эпсон, но думаю разберусь.

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

Добавлено: Пн янв 13, 2014 15:22:26
axillent
хороший дисплейчик
можете начать с моих наработок http://radiokot.ru/articles/53/

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

Добавлено: Чт янв 16, 2014 10:12:39
*BoyKot*
А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.

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

Добавлено: Чт янв 16, 2014 10:41:12
axillent
*BoyKot* писал(а):А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.
у дисплея с подсветкой на 7 вольт forward voltage 6 с лишним, так что если бы у вас была подсветка на 7 вольт то от 3 она бы не завелась

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

Добавлено: Чт янв 16, 2014 10:42:47
*BoyKot*
axillent писал(а):
*BoyKot* писал(а):А кто-нибудь знает как отличить дисплей 1616 с питанием 7В подсветки от 3.3В? Нашел дисплей, подключил 3.3В. Вполне себе нормально светит. Но не знаю, может это мало, а 7В стремно заводить.
у дисплея с подсветкой на 7 вольт forward voltage 6 с лишним, так что если бы у вас была подсветка на 7 вольт то от 3 она бы не завелась
Все ясно. Хорошо что сразу 7В не подал. Значит преобразователь мне не нужен. УРА!

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

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

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

Изображение

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

Добавлено: Ср янв 22, 2014 20:39:49
0867532
Скажите, а где экран брали?

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

Добавлено: Ср янв 22, 2014 22:15:59
axillent
поздравляю!

в Москве дисплеи берут в магазине Профи и на всяких Митино и в Царицино (радиорынках)
а так можете поспрощать в конторах занимающихся ремонтом сотовых или поставкой запчастей к сотовым

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

Добавлено: Вт авг 12, 2014 18:30:08
B@R5uk
Подскажите, пожалуйста, какой ток потребляет дисплей в среднем и какой ток потребляют светодиоды подсветки? Подсветку нужно питать от 3,3 вольт или же им надо больше? А то я в интернете встречал упоминание о необходимости аж 7 вольт.

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

Добавлено: Чт авг 14, 2014 16:46:55
B@R5uk
Есть кто-нибудь, кто работал с эпсоновским дисплеем? Там надо после влючения посылать какие-нибудь команды типа включить конвертер напряжения, включить дисплей, как это делается у филипса? Или можно сразу писать в память и он будет показывать?

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

Добавлено: Чт авг 14, 2014 18:56:43
-Valerius-
B@R5uk писал(а):Есть кто-нибудь, кто работал с эпсоновским дисплеем?
Я работал с этими дисплеями, в лоб код от филипс не заработает, ну и есть свои заморочки. Что конкретно нужно? Чем помочь?)

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

Добавлено: Чт авг 14, 2014 22:15:30
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
;==============
Осталось чуток дописать и попробовать.

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

Добавлено: Чт авг 14, 2014 23:56:01
B@R5uk
Удивительно, дисплей заработал с первой попытки:

Изображение

Изображение

Единственное, что расстраивает, -- это очень низкая контрастность дисплея. Причём после выключения питания, когда напряжение падает, проскакивает момент с просто шикарной контрастностью. Может быть напряжение питания 3,3 вольта для драйвера -- это много? Подскажите, пожалуйста, что надо подкрутить?

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

Добавлено: Пт авг 15, 2014 08:17:18
-Valerius-
B@R5uk писал(а):
Единственное, что расстраивает, -- это очень низкая контрастность дисплея. Причём после выключения питания, когда напряжение падает, проскакивает момент с просто шикарной контрастностью. Может быть напряжение питания 3,3 вольта для драйвера -- это много? Подскажите, пожалуйста, что надо подкрутить?
Ммм.. Я в ассемблере- слабак, поэтому не могу проанализировать ваш инит дисплея- сам на СИ упражняюсь)) Отсюда вопрос- точно это Epson? Потому как с зеленым текстолитом могут быть и PCF8833, но если все работает- то рекомендую снизить напряжение питания дисплея до 2,5-2,7 Вольт. Иначе с контрастностью- проблемы, она как бы "перенасыщена". И еще- у моих дисплеев epson контроллер на стекле пришлось закрывать от естественного света- так как дисплей начинал сходить с ума и частично не реагировал на команды, чего не наблюдалось с дисплеями Phillips.

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

Добавлено: Пт авг 15, 2014 11:33:44
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 вольт, то есть не сгорит, но всё равно как-то не тру получается.

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

Добавлено: Ср авг 20, 2014 21:40:37
B@R5uk
Присмотрел в системе красивые символы для знакогенератора, размером всего 13х8:

Изображение

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

Изображение