Подключение lcd от телефона Motorola C350

   Это был мой первый мобильник. Как и все последующие он достался мне от сестры, которая регулярно их меняла и меняет. Помню особые надежды я возлагал на ее Nokia 7610, но за день до покупки нового телефона, она уронила его в туалет. Девайс испустил дух, не приходя в себя. Разбор, перебор и сушка феном ничего не дали. Вот ведь облом. Ну да ладно..
   Вообщем валялась у меня эта Motorola, валялась, пока в один прекрасный день мне не захотелось подключить ее экранчик к микроконтроллеру. Сказано, сделано. Посерфил сеть, нашел распиновку разъема, datasheet на контроллер экранчика и начал шаманить.

Аппаратная часть

   Экранчик подключается к микроконтроллеру довольно просто – по SPI интерфейсу. Назначение выводов экранчика приведено на рисунке.

pinout-lcd-c350-avr
  

   Хочу вас сразу предупредить – в интернете мне попадалась неправильная распиновка. Из-за нее я убил кучу времени на оживление экранчика. Разобраться с подключением мне помогла схема на телефон С250.
  
   Выводы 1, 2 подключаются к выводам апаратного SPI интерфейса микроконтроллера AVR – MOSI, SCK соответственно. Выводы 3, 4, 5 – к любым другим.
  Напряжение питания контроллера экранчика 2,7 - 3,3 вольта. Чтобы не заморачиваться, я подрубил экранчик к STK500 и через AVR Studio программно задал напряжение питания платы. (Если кто не знает, делается это так – на вкладке HW Settings в разделе Voltages с помощью ползунка устанавливаем VTarget на 3 вольта и нажимаем кнопку Write). Можно собрать простую схему согласования уровней на резисторах.
   Для подсветки 3,3 вольта мало. Поэтому пришлось собрать простенький удвоитель напряжения на конденсаторах и диодах. Если будете повторять – используйте диоды Шоттки, на них маленькое падение напряжения -  порядка 0,3 В. Не знаю, есть ли там встроенный ограничительный резистор, я на всякий случай его поставил. В программе микроконтроллера нужно будет постоянно дергать ножкой к которой подключен удвоитель и ,конечно, лучше по таймеру, а не как у меня.

схема подключения lcd от с350 к микроконтроллеру avr

Программная часть

   После включения питания на вывод Reset нужно подать сигнал сброса (логический 0)  в течении 10 мкс. Он запускает процесс внутренней инициализации контроллера экрана. Все его установки приводятся в начальное состояние.
   Затем нужно программно задать параметры настройки контроллера экрана. Их довольно много и если что-то выставить неправильно, отображаться ничего не будет. В datasheet на контроллер дисплея был кусок программы инициализации -  я его оттуда передрал.
   Дисплей может работать в двух цветовых режимах – 8 бит и 16 бит. Второй режим получается за счет уменьшения разрешения экрана, если я правильно понял. В описании на контроллер экрана задано разрешение 104 на 80 пикселей, реально у этого экранчика оно меньше.
    Чтобы вывести попиксельно на экран изображение нужно задать начальный и конечный адрес столбца, начальный и конечный адрес страницы. Затем потоком записать данные. Контроллер дисплея, в зависимости от настроек, сам инкрементирует адреса столбца и страницы. В этом отношении от обладает довольно богатыми возможностями.
   Есть правда один нюанс. В 8-ми битном режиме нужно устанавливать таблицу перекодировки. Пока я этого не знал, попытки накатать знакогенератор проваливались с полным непониманием происходящего. В конце концов я его добил. К сожалению, под рукой был только английский шрифт.
  Кроме этого, контроллер дисплея обладает встроенными графическими функциями – рисование линии, рисование прямоугольника с заливкой, очистка заданной области, копирование заданной области. Я добавил к этому функцию вывода пикселя и рисования окружности.
   Есть еще функция скрола. С ней я не разбирался.

пример вывода изображения


Ссылки

Файлы

 

Добавить комментарий

При добавлении в комментарий Си кода, заключайте его между тегами [code] [/code]. Иначе он будет отображаться некорректно.


Защитный код
Обновить