Страница 1 из 15

Дисплей Nokia 3410 (3310)

Добавлено: Вт июл 25, 2006 21:35:03
Pavel V.
Доброго времени суток!

Наверняка многие пробовали подключать один из этих симпатичных дисплейчиков к МК. Вот и я не исключение - купил дисплеи (один 3310, другой 3410), спаял схемку на ATMEGA8, нарыл две библиотеки для работы с 3310, и после некоторых танцев с бубном оно даже что-то стало показывать. Но, несмотря на все мои усилия, не совсем то что хотелось бы..

Алгоритм их работы более-менее понятен, но при казалось бы логичных телодвижениях что-нибудь да не так. То какая-то часть изображения не отобразится, то сдвинется куда-то - в общем чудеса..

А при попытке подключить экран 3410 (у него разрешение больше - 96х65, у 3310 - 84х48), переменныя с кэшем данных для отправки в дисплей вылезает за пределы RAM :( Неужели придется внешнюю память довешивать? Или какие-то еще приемы существуют?

Не завалялось ли ни у кого каких-нибудь наработок в данном направлении? Очень хотелось бы изучить! А то я замучился уже..

К сообщению прикладываю свои файлики.

Добавлено: Ср июл 26, 2006 12:27:27
Spider
Я так понял ты взял библиотеки с МикроСилк. У этого человека старнное понятие о работе с дисплеем, он хранит картинку в памяти МК и её целиком выводит. Если немного переработать его код на прямую работу с дисплеем, то всё нормально.

ЗЫ. Мог бы ты кинуть схему включения дисплея так "как оно работает у тебя", ибо пытался я заставить работать 3310, не получилось.

Добавлено: Ср июл 26, 2006 14:42:41
Pavel V.
Сейчас пробую напрямую. Вот так:

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

void LcdDrawBitmap( void )   
{
   unsigned short i;
          LcdSend(0x80, LCD_CMD);
          LcdSend(0x40, LCD_CMD);               
   for (i=0; i<504; i++)
   LcdSend( glcdNokia[i], LCD_DATA);
}


glcdNokia[i] - массив с картинкой.

А получаю на экране то, что приложил к сообщению (IMG1443)..
Должно быть так: nokia02.jpg

Схема подключения как на микросилке, тоже прицепил к сообщению.
Контроллер и дисплей питаю +3 В, шью 5-вольтовым программатором, ничего не отключая. Все живо-здорово.

Добавлено: Ср июл 26, 2006 15:28:03
Pavel V.
Ура!! Я его победил! После того как попробовал данные отправлять кусками (постранично). Вот мой код:

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

void LcdDrawBitmap( void /* unsigned char* bitmap */)   
{
        int col, page, i = 0;       
   byte myPageAddr;
   for(page = 0; page < 6; page++)
   {
      myPageAddr = (page | 0x40);
      LcdSend( myPageAddr, LCD_CMD );
      LcdSend( 0x80, LCD_CMD );
      for (col = 0; col < LCD_X_RES; col++)
         LcdSend( glcdNokia[page * LCD_X_RES + col], LCD_DATA);
   }
}


Круто :)

Если интересно, то могу выложить готовый код когда приведу в порядок (сейчас там творческий хаос :) )

Добавлено: Пт июл 28, 2006 07:01:26
Spider
От чего же у меня не работает? :(
ВРОДЕ всё уже проверил что касается подключения....

Добавлено: Пт июл 28, 2006 20:09:25
Pavel V.
Видимо, дисплей битый :(

Кстати, я понял почему в оригинальной библиотеке данные хранятся в оперативке, а потом идут в дисплей. Это для того, чтобы рисовать точки и линии, ведь данные отправляются в контроллер экрана не попиксельно, а в виде массива 1х8, и если требуется нарисовать/стереть заданный пиксел, надо знать что там было до этого..

Но я думаю, можно и блоками рисовать. Хочу еще написать функцию для вывода картинки произвольного размера в необходимую часть экрана..

Прицепил свой код к сообщению, может кому пригодится.

(Кстати, проверено и на 3410 - работает. Достаточно поменять значения LCD_X_RES и LCD_Y_RES)

3310 - 84 и 6
3410 - 96 и 8

Добавлено: Чт авг 03, 2006 18:17:04
Spider
Ну всё. выручайте. Всё собрал и не работает. Прикладываю скрины асцилогрофа чтобы не возникало вопросов. Скрины конечно абстрактные, но видно, что на шинах сигналы есть. Что касается правильности подключения - да уже проверил на 9E99 раз. Софт с mycrosylc.com (или как там его)

Добавлено: Пт авг 04, 2006 18:34:23
Pavel V
Проверь контакт между шлейфом и дисплеем. У меня тоже сначала не работал, пока я его не разобрал и не почистил.

Добавлено: Пт авг 04, 2006 18:40:23
Гость
В смысле между стеклышком и контактной площадкой? Грубо говоря поджать?

ЗЫ. А куда делись аттачи? :)

Добавлено: Пт авг 04, 2006 18:42:00
Spider
Всё понял с аттачами - сам дурак.

Добавлено: Сб авг 05, 2006 21:43:20
Pavel V.
Да, да. Между стеклом и контактами. Можешь попробовать резинку от калькулятора/часов..

Добавлено: Сб авг 05, 2006 22:04:29
Spider
Уууу у меня много (достаточно) дисплеев с резинками, ваще ненавижу их. Гемор их подключать если честно :)

Добавлено: Вс авг 06, 2006 17:24:12
Гость
Чёрт. Что-же оно не помогает....

Добавлено: Вт авг 08, 2006 12:08:09
Spider
Anonymous писал(а):Чёрт. Что-же оно не помогает....

Урааа! Работает. Что было не знаю, просто работает :)

3310

Добавлено: Вс мар 11, 2007 20:34:41
Voodoo-Cat
Помогите прикрутить к 3213 дислей от 3310! :o
Библиотеки первого поста не пашут, ошибки в асемблерном коде.

Добавлено: Пн июн 04, 2007 17:16:14
Tohey
А кто подскажет для чего нога SCE? По даташиту не разобрался, но понял одно, что если она в "1" то в память ни чего не записуется. Когда именно её следует "дёргать"? И ещё вопрос, можно ли обнулять счетчики адреса X, Y - НЕ программным путем, не изменяя содержимого LCD-RAM?

P.S. Сегодня наконец то подключил LCD-3410 - понравилось :))

Добавлено: Вт июн 05, 2007 16:47:07
Tohey
Ок. А кто скажет есть кака то софтина для преобразования файла типа Ч\Б *.bmp > в массив, для LCD NOKIA?

Добавлено: Ср июн 06, 2007 16:48:26
Tohey
Тогда придется писать :cry:

Добавлено: Ср июн 06, 2007 17:53:26
Vadim
Tohey, не спешите, посмотрите во здесь: http://www.institute-rt.ru/common/archive.shtml Обратите внимание на четвёртую новость сверху (от 8 августа), "Предлагаем новую конструкцию MP3-плеера на базе микросхемы ...." Плеер с экраном от 3310, и одна из его особенностей- наличие фоновых картинок. Ссылка на программу-конвертер,- прямо под новостью. Может и подойдёт Вам. А ежели, чего подправить в проге захотите, там же и е-мыл автора приведён.
ЗЫ. Оригинально, между Вашими постами- ровно сутки. Невелико у Вас терпение :)))

Добавлено: Ср июн 06, 2007 21:39:35
Tohey
Vadim спасибо! То что надо!
Терпения очень мало, сразу после работы на РадиоКот ))