Например TDA7294

Форум РадиоКот :: Просмотр темы - Дисплей Nokia 3410 (3310)
Форум РадиоКот
https://radiokot.ru/forum/

Дисплей Nokia 3410 (3310)
https://radiokot.ru/forum/viewtopic.php?f=61&t=1458
Страница 1 из 15

Автор:  Pavel V. [ Вт июл 25, 2006 21:35:03 ]
Заголовок сообщения:  Дисплей Nokia 3410 (3310)

Доброго времени суток!

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

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

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

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

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

Вложения:
NokiaLCD.h [2.76 KiB]
Скачиваний: 3287
NokiaLCD.c [17.34 KiB]
Скачиваний: 2664
main.c [4.04 KiB]
Скачиваний: 2409

Автор:  Spider [ Ср июл 26, 2006 12:27:27 ]
Заголовок сообщения: 

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

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

Автор:  Pavel V. [ Ср июл 26, 2006 14:42:41 ]
Заголовок сообщения: 

Сейчас пробую напрямую. Вот так:

Код:
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-вольтовым программатором, ничего не отключая. Все живо-здорово.

Вложения:
nokia02.jpg [20.03 KiB]
Скачиваний: 5180
shematic.gif [7.27 KiB]
Скачиваний: 4849
IMG_1443_sm.jpg [32.75 KiB]
Скачиваний: 4399

Автор:  Pavel V. [ Ср июл 26, 2006 15:28:03 ]
Заголовок сообщения: 

Ура!! Я его победил! После того как попробовал данные отправлять кусками (постранично). Вот мой код:

Код:
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);
   }
}


Круто :)

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

Вложения:
IMG_1444_sm.jpg [26.49 KiB]
Скачиваний: 4440

Автор:  Spider [ Пт июл 28, 2006 07:01:26 ]
Заголовок сообщения: 

От чего же у меня не работает? :(
ВРОДЕ всё уже проверил что касается подключения....

Автор:  Pavel V. [ Пт июл 28, 2006 20:09:25 ]
Заголовок сообщения: 

Видимо, дисплей битый :(

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

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

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

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

3310 - 84 и 6
3410 - 96 и 8

Вложения:
nokia_lcd.h [10.42 KiB]
Скачиваний: 2611
nokia_lcd.c [3.94 KiB]
Скачиваний: 2446

Автор:  Spider [ Чт авг 03, 2006 18:17:04 ]
Заголовок сообщения: 

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

Вложения:
Комментарий к файлу: D/C
DC.jpg [27.82 KiB]
Скачиваний: 3421
Комментарий к файлу: Reset
RES.jpg [18.25 KiB]
Скачиваний: 2501
Комментарий к файлу: ChipSelect
SS.jpg [27.47 KiB]
Скачиваний: 2168
Комментарий к файлу: SPI.MOSI
MOSI.jpg [28.58 KiB]
Скачиваний: 2300
Комментарий к файлу: SPI.SCK
SCK.jpg [32.98 KiB]
Скачиваний: 2444

Автор:  Pavel V [ Пт авг 04, 2006 18:34:23 ]
Заголовок сообщения: 

Проверь контакт между шлейфом и дисплеем. У меня тоже сначала не работал, пока я его не разобрал и не почистил.

Автор:  Гость [ Пт авг 04, 2006 18:40:23 ]
Заголовок сообщения: 

В смысле между стеклышком и контактной площадкой? Грубо говоря поджать?

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

Автор:  Spider [ Пт авг 04, 2006 18:42:00 ]
Заголовок сообщения: 

Всё понял с аттачами - сам дурак.

Автор:  Pavel V. [ Сб авг 05, 2006 21:43:20 ]
Заголовок сообщения: 

Да, да. Между стеклом и контактами. Можешь попробовать резинку от калькулятора/часов..

Автор:  Spider [ Сб авг 05, 2006 22:04:29 ]
Заголовок сообщения: 

Уууу у меня много (достаточно) дисплеев с резинками, ваще ненавижу их. Гемор их подключать если честно :)

Автор:  Гость [ Вс авг 06, 2006 17:24:12 ]
Заголовок сообщения: 

Чёрт. Что-же оно не помогает....

Автор:  Spider [ Вт авг 08, 2006 12:08:09 ]
Заголовок сообщения: 

Anonymous писал(а):
Чёрт. Что-же оно не помогает....

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

Автор:  Voodoo-Cat [ Вс мар 11, 2007 20:34:41 ]
Заголовок сообщения:  3310

Помогите прикрутить к 3213 дислей от 3310! :o
Библиотеки первого поста не пашут, ошибки в асемблерном коде.

Автор:  Tohey [ Пн июн 04, 2007 17:16:14 ]
Заголовок сообщения: 

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

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

Автор:  Tohey [ Вт июн 05, 2007 16:47:07 ]
Заголовок сообщения: 

Ок. А кто скажет есть кака то софтина для преобразования файла типа Ч\Б *.bmp > в массив, для LCD NOKIA?

Автор:  Tohey [ Ср июн 06, 2007 16:48:26 ]
Заголовок сообщения: 

Тогда придется писать :cry:

Автор:  Vadim [ Ср июн 06, 2007 17:53:26 ]
Заголовок сообщения: 

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

Автор:  Tohey [ Ср июн 06, 2007 21:39:35 ]
Заголовок сообщения: 

Vadim спасибо! То что надо!
Терпения очень мало, сразу после работы на РадиоКот ))

Страница 1 из 15 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/