LCD nokia 3310
-
bend
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Сб окт 10, 2009 02:49:27
- Откуда: Krasnoyarsk
- Контактная информация:
Re: LCD nokia 3310
не ну сам дисплей 3310 хороший, есть даташит, впринципе работает нормально, я сделал подсветку как на родной 3310 и светодиоды оттуда использовал, поставил их в ряд внизу и получил ровную подсветку всего дисплея как на телефоне. Вот только остается загадкой почему CS глючит.
- Valentin44
- Встал на лапы
- Сообщения: 104
- Зарегистрирован: Пн ноя 15, 2010 23:48:09
- Откуда: Украина, Кривой Рог
Re: LCD nokia 3310
ИМХО проблема с CS программая. Смотрел в протеусее осциллографом, что-то не то. Сильно часто дергает ЦС, при том что сигналы на других ногах идут. Можт это так и должно быть, но врядли. Факт что с ЦС не работает. Сделаюю эксперимент с линеей ЦС, попробую сам ее рулить. Т.е. перед вызовом функций управления экраном опускать уровень, а после поднимать.
-
bend
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Сб окт 10, 2009 02:49:27
- Откуда: Krasnoyarsk
- Контактная информация:
Re: LCD nokia 3310
дело в том что сама библиотека pcd8544.c впринципе не грамотно написана в плане отсыла байтов, когда нужно передать несколько байт подряд вызывается функция LcdSend которая перед отправкой каждого байта дергает CS отсылает байт, поднимает CS и тут же опускает для посыла следующего байта. ИМХО гамасятина где-то тут, к сожелению я уже собрал девайс и просто посадил на землю CS от дисплея ибо у меня тока одно устройство на SPI, хлтя он работал и когда SC висел на ножке порта где находится SPI, но в процессе экспериментов выяснилось что зависон происходит именно здесь: /* Send data to display controller. */
SPDR = data;
/* Wait until Tx register empty. */
while ( (SPSR & 0x80) != 0x80 ); -тут
потому что CS скорее всего рассинхронизирован. Впринципе грамотно былоб ставить CS не перед отправкой одного байта, а перед отправкой нескольких байт. Посмотри в протеусе как будет себя вести LCD если CS пересадить на другой порт (не на котором SPI) и просто вначале дернуть, погонять много байт на дисплей, потом CS поднять, немного подождать и повторить операцию.
SPDR = data;
/* Wait until Tx register empty. */
while ( (SPSR & 0x80) != 0x80 ); -тут
потому что CS скорее всего рассинхронизирован. Впринципе грамотно былоб ставить CS не перед отправкой одного байта, а перед отправкой нескольких байт. Посмотри в протеусе как будет себя вести LCD если CS пересадить на другой порт (не на котором SPI) и просто вначале дернуть, погонять много байт на дисплей, потом CS поднять, немного подождать и повторить операцию.
Re: LCD nokia 3310
Добрый вечер уважаемые КОТЫ! Вот тоже решил разобратся с экранчиком от 3310. Скачал файлы которые прикреплены к статье. http://www.radiokot.ru/articles/29/
Пробывал просимулировать в протезе, но на дисплей ничего не выводится. Писал сам прогу, пробывал подставлять уже скомпилированые hex, из статьи, но дисплей молчит. Пробывал подставлять хексы из других источников дисплей выводит данные. Но хочу чтобы заработало из данной статьи, так как здесь есть возможность подключать китайский дисплей(именно такой я купил). помогите пожалуйста
Пробывал просимулировать в протезе, но на дисплей ничего не выводится. Писал сам прогу, пробывал подставлять уже скомпилированые hex, из статьи, но дисплей молчит. Пробывал подставлять хексы из других источников дисплей выводит данные. Но хочу чтобы заработало из данной статьи, так как здесь есть возможность подключать китайский дисплей(именно такой я купил). помогите пожалуйста
- Вложения
-
- Design.rar
- проект в протеусе
- (12.81 КБ) 310 скачиваний
Re: LCD nokia 3310
Всем привет! Вот тоже дошли руки до дисплейчика Nokia3310 "китайского" варианта. Пытаюсь прикрутить к Меге8-й, исходник под свою разводку переделывал от сюда http://radiokot.ru/articles/29/ , но так нифига и не получилось. Не мог бы кто поелиться рабочим исходничком под Мегу8?
Re: LCD nokia 3310
fiksx, смотрю ты тож от туда драл? Две неудачи не мож быть совпдением, по ходу там лажа какая-то в исходниках. Я вообще-то дозиметр ваяю, всю обвязку уже запустил на готовой плате, осталось только дисп прилинковать.
- Valentin44
- Встал на лапы
- Сообщения: 104
- Зарегистрирован: Пн ноя 15, 2010 23:48:09
- Откуда: Украина, Кривой Рог
Re: LCD nokia 3310
CS надо вешать на землю., вместо кинроллера.
после команды LcdUpdate();
Обязательно LcdMode(2);
И не забываем с начала Проинициализировать LcdInit();
И выставить контрастность LcdContrast(0x40); // вместо 0х40 можно настроить под себя
после команды LcdUpdate();
Обязательно LcdMode(2);
И не забываем с начала Проинициализировать LcdInit();
И выставить контрастность LcdContrast(0x40); // вместо 0х40 можно настроить под себя
Re: LCD nokia 3310
Самое интересное что с мегой16 в протеусе работает! Думал что глюк протеуса с м8, собрал в железе с м8, но результат 0!! И кстати попробывал залить хексы со статьи, так они в М8, почемуто недоливаются выскакивает ошибка.
Re: LCD nokia 3310
Valentin44 писал(а):CS надо вешать на землю., вместо кинроллера.
после команды LcdUpdate();
Обязательно LcdMode(2);
И не забываем с начала Проинициализировать LcdInit();
И выставить контрастность LcdContrast(0x40); // вместо 0х40 можно настроить под себя
Попробую! Но с М16, работал и без этих изменеий, и врежиме 2, и в режиме 3
Re: LCD nokia 3310
за прошивку огромное спасибо, переботал под себя ,дико доволен китайщиной) научился их легко клеить и пилить) прошивка имеет ограничения по колличеству линий шт 20-30 макс
немогу понять ток как вывести картинку , типа как её вбить в код или подогнать под карту памяти любую
немогу понять ток как вывести картинку , типа как её вбить в код или подогнать под карту памяти любую
Re: LCD nokia 3310
Наиискреннейшим образом прошу прощения автора статьи http://radiokot.ru/articles/29/ Сачка за выше написанное мной. Всё работает, никакой CE никуда паять не надо, всем смотреть СВОЙ монтаж! Проблема была в контакте (я не паял дисплей). Автору СПАСИБО за статью 

Re: LCD nokia 3310
какая функция нужна для вывода картинки?под стандартную прошивку для китая, можно тупо глупо тело кинуть .далее я сам доработаю
Re: LCD nokia 3310
Кому интересно, можно попробовать пробить по инету FD60146A - это надпись на стекле китайского дисплея N3310 (видно только под мелкоскопом), логотипчик " Rfd ", мож и даташит всплывёт.
Re: LCD nokia 3310
Наконец-то таки и я запустил 3310 на своём арме LPC2103. Выяснил, что с выводом CS подключённому к МК дисплей не работает, а если повесить его на землю, то всё работает отлично.
Да помогут кому-нибудь выложенные мною исходники.
Пойти цветной 3510i помучать чтоли....
Кстати, очень удобная конвертилка bmp картинки в сишный код в компиляторе микроС. А также в микропаскале и микробейсике.
Да помогут кому-нибудь выложенные мною исходники.
Пойти цветной 3510i помучать чтоли....
Кстати, очень удобная конвертилка bmp картинки в сишный код в компиляторе микроС. А также в микропаскале и микробейсике.
- Вложения
-
- LCD_image.h
- (7.76 КБ) 402 скачивания
-
- LCD_fonts.h
- (6.93 КБ) 361 скачивание
-
- 1.c
- (7.36 КБ) 614 скачиваний
Re: LCD nokia 3310
У меня CS висит на ноге контроллера, исходник автора статьи касательно функций управления диспом не менялся, всё отлично работает.
- Alex_EXE
- Вымогатель припоя
- Сообщения: 580
- Зарегистрирован: Сб дек 27, 2008 12:01:35
- Откуда: Россия, Екатеринбург
- Контактная информация:
Re: LCD nokia 3310
В добавление к символьному генератору, написал небольшую статейку и программу для подготовки на компьютере массива изображения, для последующего вывода на дисплей.
Генератор изображений

Генератор изображений
Re: LCD nokia 3310
Спасибо, скачал, будет время поколупаюсь. Я смотрю ты Большой любитель 3310 
Re: LCD nokia 3310
Всем доброго времени суток. Применяю дисплей от 3310 (оригинальный), вывод данных, управление в стандартном наборе команд осуществляются прекрасно. Но по какой-то причине не работает ни одна команда из расширенного, причем вне зависимости от того, отправляются ли команды установки Vop, BIAS и TCx или что я в них пишу, дисплей прекрасно отображает данные. Собственно это не так и плохо, но хотелось бы изменять контраст. Инициализирую так:
//настройка портов и аппаратный срос LCD
LcdDdr |= (1<<ChipEnable)|(1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res);
LcdPort |= 1<<ChipEnable;
LcdPort &= ~( (1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res) );
delay_ms(10);
//SBR(LcdPort, Res);
LcdPort |= (1<<Res);
// блок расширенных команд с текущим дисплеем по какой-то причине не работает
// имеется подозрение что контролер LCD сам определяет оптимальный режим
LCDSend( 0x21, SEND_CMD ); // LCD Extended Commands.
LCDSend( 0x80|0xFF, SEND_CMD ); // Set LCD Vop (Contrast).
LCDSend( 0x06, SEND_CMD ); // Set Temp coefficent.
LCDSend( 0x13, SEND_CMD ); // LCD bias mode 1:48.
LCDSend( 0x20, SEND_CMD ); // LCD Standard Commands, Horizontal addressing mode.
LCDSend( 0x08, SEND_CMD ); // LCD blank
//вывести картинку
LCDSend( 0x0C, SEND_CMD ); // LCD in normal mode.
Затем пишу данные.
Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело
//настройка портов и аппаратный срос LCD
LcdDdr |= (1<<ChipEnable)|(1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res);
LcdPort |= 1<<ChipEnable;
LcdPort &= ~( (1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res) );
delay_ms(10);
//SBR(LcdPort, Res);
LcdPort |= (1<<Res);
// блок расширенных команд с текущим дисплеем по какой-то причине не работает
// имеется подозрение что контролер LCD сам определяет оптимальный режим
LCDSend( 0x21, SEND_CMD ); // LCD Extended Commands.
LCDSend( 0x80|0xFF, SEND_CMD ); // Set LCD Vop (Contrast).
LCDSend( 0x06, SEND_CMD ); // Set Temp coefficent.
LCDSend( 0x13, SEND_CMD ); // LCD bias mode 1:48.
LCDSend( 0x20, SEND_CMD ); // LCD Standard Commands, Horizontal addressing mode.
LCDSend( 0x08, SEND_CMD ); // LCD blank
//вывести картинку
LCDSend( 0x0C, SEND_CMD ); // LCD in normal mode.
Затем пишу данные.
Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело
Re: LCD nokia 3310
Всем доброго времени суток. Применяю дисплей от 3310 (оригинальный), вывод данных, управление в стандартном наборе команд осуществляются прекрасно. Но по какой-то причине не работает ни одна команда из расширенного, причем вне зависимости от того, отправляются ли команды установки Vop, BIAS и TCx или что я в них пишу, дисплей прекрасно отображает данные. Собственно это не так и плохо, но хотелось бы изменять контраст. Инициализирую так:
//настройка портов и аппаратный срос LCD
LcdDdr |= (1<<ChipEnable)|(1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res);
LcdPort |= 1<<ChipEnable;
LcdPort &= ~( (1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res) );
delay_ms(10);
//SBR(LcdPort, Res);
LcdPort |= (1<<Res);
// блок расширенных команд с текущим дисплеем по какой-то причине не работает
// имеется подозрение что контролер LCD сам определяет оптимальный режим
LCDSend( 0x21, SEND_CMD ); // LCD Extended Commands.
LCDSend( 0x80|0xFF, SEND_CMD ); // Set LCD Vop (Contrast).
LCDSend( 0x06, SEND_CMD ); // Set Temp coefficent.
LCDSend( 0x13, SEND_CMD ); // LCD bias mode 1:48.
LCDSend( 0x20, SEND_CMD ); // LCD Standard Commands, Horizontal addressing mode.
LCDSend( 0x08, SEND_CMD ); // LCD blank
//вывести картинку
LCDSend( 0x0C, SEND_CMD ); // LCD in normal mode.
Затем пишу данные.
Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело
//настройка портов и аппаратный срос LCD
LcdDdr |= (1<<ChipEnable)|(1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res);
LcdPort |= 1<<ChipEnable;
LcdPort &= ~( (1<<DataCmd)|(1<<Clk)|(1<<Mosi)|(1<<Res) );
delay_ms(10);
//SBR(LcdPort, Res);
LcdPort |= (1<<Res);
// блок расширенных команд с текущим дисплеем по какой-то причине не работает
// имеется подозрение что контролер LCD сам определяет оптимальный режим
LCDSend( 0x21, SEND_CMD ); // LCD Extended Commands.
LCDSend( 0x80|0xFF, SEND_CMD ); // Set LCD Vop (Contrast).
LCDSend( 0x06, SEND_CMD ); // Set Temp coefficent.
LCDSend( 0x13, SEND_CMD ); // LCD bias mode 1:48.
LCDSend( 0x20, SEND_CMD ); // LCD Standard Commands, Horizontal addressing mode.
LCDSend( 0x08, SEND_CMD ); // LCD blank
//вывести картинку
LCDSend( 0x0C, SEND_CMD ); // LCD in normal mode.
Затем пишу данные.
Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело