Подключение графического ЖК индикатора на USB

Собственно всё началось с двух сайтов: LCDProc и LCD4Linux. Вдохновленный идеей я даже купил текстовый экранчик и спаял соответствующую схему подключения. Сначало это чудо работало дома, показывая информацию из винампа. Но экран был без русских символов, и вскоре мне это надоело. Экранчик перекочевал на админское место в институт, где уютно устроился в панельке от стриммера (она как раз размерами подошла). Там он стоял примерно месяца 3, показывая информацию о системе... потом эта конструкция начала глючить и подвисать.
В общем экран был отдан в хорошие руки.
Дальше, в бесцельном брожении по просторам интернета я наткнулся на ЭТО. Выглядело всё предельно просто и в то же время интересно. В общем я спаял пробную железячку, залил в неё тестовую прошивку, убедился, что она определяется на USB как устройство и отложил на полку до лучших времен.
Примерно через 2 месяца появилась идея - а почему бы не подключить по USB ЖК экран. Только в этот раз не хотелось повторять прошлых ошибок, и купить экран, на который можно будет нормально вывести русские буквы, а главное - с подсветкой.
В итоге был выбран экран MT-12864A нашей российской фирмы МЭЛТ. Выбор был сделан на основе неплохого разрешения (128х64), совместимости с KS0108, наличия простой в использовании светодиодной подсветки, и привлекательной цены (~500рублей в "ЧипДип").
Дальнейшее было делом техники - припаять к той самой пробной железке разъем для подключения индикатора, и написать новую прошивку. По крайней мере я так думал.
Схема была набросана в Eagle за 20 минут, базовая прошивка модифицирована так, чтобы при запуске она не спалила мне индикатор ;). В общем после дня раскопок в документации и пайки получилось вот это:


Собственно сам экран. Ещё даже из пакетика не вытащен.

Вид на контроллер сверху. Виден порнографично припаянный разъем. Сразу видно, что это всего лишь макет.

А это вид снизу. Если бы знал, что получится такое крысиное гнездо - взял бы кусок макетки побольше.

Макет в сборе. Особенно весело смотрится IDE шлейф. На соседнем компьютере стоит главное средство разработки - программатор.

А это экран во включенном состоянии. Меня терзают смутные сомнения, что тестовая прошивка почему-то отработала не до конца.... Экран сбросился, включился, но где же две стертые вертикальные линии по 8 пикселей длиной (в каждой из двух половинок экрана)?

А это программатор вблизи, с вставленным в него процессором.
Кстати, если кто знает, как завести эту железяку под linux, буду очень благодарен


16.02.2006. Продолжение экспериментов.

В результате попыток вывести на экран что-либо значимое, выяснилось, что экран упорно не реагирует на отдельные команды. Кроме того, меня не устроила схема подключения (на контроллере не осталось свободных ножек, а хотелось подключить ещё и несколько кнопок. В результате творческого поиска родилась следующая схема:
Номиналов и параметров элементов пока нет - то что надо мне, я держу в памяти. Когда будет окончательный вариант - естественно оформлю более прилично.
В общем завтра буду перепаивать, переписывать софт и смотреть на результаты.

17.02.2006. Эксперименты становятся успешнее

Перепаял, переписал софт, запустил.... заработало.
И тут в предыдущей версии софта нашел баг из-за которого эта штука работала нестабильно. Блин! Из-за одной неправильной строчки я потерял больше 3-х часов.
Теперь дело за малым - разобраться, под какой из классов USB устройств подпадает моя железяка и реализовать его.
P.S. Фотографий пока нет - я не брал фотоаппарат.


С 18.02.2006 по утро 19.02.2006. Он завелся!

После долгих мучений и раскопок в libusb, экран запустился... Правда пока с глюками и тормознуто (на обновление экрана уходит 7 секунд, при том, что сам контроллер может обновлять экран как минимум 5 раз в секунду).
Кроме этого есть отдельные проблемы с записью данных в среднюю часть экрана. В общем вот результаты:

Здесь я ещё не понял, как выводить данные: связь есть, но на экран выводится только мусор

Собственно результаты перепайки. Мне надоело гадать - висит контроллер или работает и я впаял светодиод, для индикации состояния. Кроме того, мне надоело дергать каждый раз микросхему контроллера в программатор и я припаял интерфейс внутрисхемного программирования.
Ну на самом деле это громко сказано - интерфейс - всего-то 2 разъема, 3 резистора и провод к LPT.
Вот он виден в правой части платы.

А здесь с контроллером уже установлена стабильная связь.

Здесь лежит видеофайл, с записью прогона тестовой программы.
Здесь лежат исходные тексты прошивки и программы. Версия не окончательная
Схему нарисую, но позже.


c 19.02.2006 по 20.02.2006. Конец экспериментов!

Всё! Устройство завелось полностью и наконец-то работает с максимальной скорость. (Полная перерисовка экрана - примерно 0.25 секунды). Все баги на данный момент устранены.
Здесь можно посмотреть на скорость обновления.
Сейчас я работаю над драйверами под данное устройство и приведением в порядок технической документации.
Кроме того, явно не помешает пересобрать устройство в красивую коробочку :), и подключить к нему 5-ти кнопочную клавиатуру.
Ну а если моя лень мне позволит, то я пересоберу устройство так, чтобы оно было максимально компактным.


01.03.2006 Причесал документацию.

Здесь лежит перерисованая
схема.
Документация на экран.
Ищутся идеи по поводу корпуса.




Created With NEdit один лишь КОИ-8