Потыкал я этот CS. Никак не работает, ни подключив к МК, ни посадив на землю. Распсиховался короче я и бросил... Зато купил вот такие забавные штучки: тык и туц
не ну сам дисплей 3310 хороший, есть даташит, впринципе работает нормально, я сделал подсветку как на родной 3310 и светодиоды оттуда использовал, поставил их в ряд внизу и получил ровную подсветку всего дисплея как на телефоне. Вот только остается загадкой почему CS глючит.
ИМХО проблема с CS программая. Смотрел в протеусее осциллографом, что-то не то. Сильно часто дергает ЦС, при том что сигналы на других ногах идут. Можт это так и должно быть, но врядли. Факт что с ЦС не работает. Сделаюю эксперимент с линеей ЦС, попробую сам ее рулить. Т.е. перед вызовом функций управления экраном опускать уровень, а после поднимать.
дело в том что сама библиотека 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 поднять, немного подождать и повторить операцию.
Добрый вечер уважаемые КОТЫ! Вот тоже решил разобратся с экранчиком от 3310. Скачал файлы которые прикреплены к статье. http://www.radiokot.ru/articles/29/ Пробывал просимулировать в протезе, но на дисплей ничего не выводится. Писал сам прогу, пробывал подставлять уже скомпилированые hex, из статьи, но дисплей молчит. Пробывал подставлять хексы из других источников дисплей выводит данные. Но хочу чтобы заработало из данной статьи, так как здесь есть возможность подключать китайский дисплей(именно такой я купил). помогите пожалуйста
Вложения:
Комментарий к файлу: проект в протеусе Design.rar [12.81 KiB]
Скачиваний: 306
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Всем привет! Вот тоже дошли руки до дисплейчика Nokia3310 "китайского" варианта. Пытаюсь прикрутить к Меге8-й, исходник под свою разводку переделывал от сюда http://radiokot.ru/articles/29/ , но так нифига и не получилось. Не мог бы кто поелиться рабочим исходничком под Мегу8?
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
fiksx, смотрю ты тож от туда драл? Две неудачи не мож быть совпдением, по ходу там лажа какая-то в исходниках. Я вообще-то дозиметр ваяю, всю обвязку уже запустил на готовой плате, осталось только дисп прилинковать.
Самое интересное что с мегой16 в протеусе работает! Думал что глюк протеуса с м8, собрал в железе с м8, но результат 0!! И кстати попробывал залить хексы со статьи, так они в М8, почемуто недоливаются выскакивает ошибка.
за прошивку огромное спасибо, переботал под себя ,дико доволен китайщиной) научился их легко клеить и пилить) прошивка имеет ограничения по колличеству линий шт 20-30 макс немогу понять ток как вывести картинку , типа как её вбить в код или подогнать под карту памяти любую
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Наиискреннейшим образом прошу прощения автора статьи http://radiokot.ru/articles/29/ Сачка за выше написанное мной. Всё работает, никакой CE никуда паять не надо, всем смотреть СВОЙ монтаж! Проблема была в контакте (я не паял дисплей). Автору СПАСИБО за статью
Карма: 46
Рейтинг сообщений: 590
Зарегистрирован: Вт май 19, 2009 09:27:30 Сообщений: 3258 Откуда: Украина
Рейтинг сообщения:0
Кому интересно, можно попробовать пробить по инету FD60146A - это надпись на стекле китайского дисплея N3310 (видно только под мелкоскопом), логотипчик " Rfd ", мож и даташит всплывёт.
Наконец-то таки и я запустил 3310 на своём арме LPC2103. Выяснил, что с выводом CS подключённому к МК дисплей не работает, а если повесить его на землю, то всё работает отлично. Да помогут кому-нибудь выложенные мною исходники. Пойти цветной 3510i помучать чтоли....
Кстати, очень удобная конвертилка bmp картинки в сишный код в компиляторе микроС. А также в микропаскале и микробейсике.
В добавление к символьному генератору, написал небольшую статейку и программу для подготовки на компьютере массива изображения, для последующего вывода на дисплей. Генератор изображений
Всем доброго времени суток. Применяю дисплей от 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. Затем пишу данные. Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело
Всем доброго времени суток. Применяю дисплей от 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. Затем пишу данные. Даташит перерыл весь, там сказано что после сброса, внутренний генератор выключен. Однако, получается что включен и настроен, а так же настроены остальные служебные регистры. Подскажите, в чем дело
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения