Site icon Меандр — занимательная электроника

Модуль для использования цветного дисплея от сотового телефона

В настоящее время для радиолюбителей стали весьма доступны недорогие и качественные дисплеи от (для) мобильных телефонов. Для конкретной возможности применения одного из них в различных радиолюбительских конструкциях автором создан модуль, описание которого приведено в этой статье. Автор не считает свою разработку идеальной, но надеется, что этот модуль будет востребован радиолюбителями. Советы и рекомендации по его улучшению принимаются.0Чтобы использовать в своей конструкции миниатюрное цветной дисплей, совсем не нужны особо мощные процессоры или дорогостоящие дисплеи. Если нужен размер экрана порядка 2.5”, то можно применить дисплеи от телефона. Например, LS022-LS024 от телефонов NOKIA N76, N82, N73, 6303, 6500. Подойдет и самый большой дисплей от N95 (2.6”).

Все эти дисплеи оснащены котроллером, имеющим небольшой, но достаточно полный, набор команд. Даташит на контроллер дисплея MC2PA8201, который является аналогом LS022-LS024 прилагается. Правда, не все функции 100% работают, как описано.

Дисплей имеет разрешение 240х320 пикселей и цветовую гамму 24 бит. Стоимость от 200 рублей. Разъём со шлейфом стоит столько же. Оборванный шлейф в ремонте могут отдать бесплатно. Известную трудность представляет только его пайка и изготовление под него платы.

Дисплей имеет три напряжения питания: 1,8 В, 2,5 В и 12 В. Последнее подается  на подсветку через ограничивающий резистор. Ток подсветки примерно равен 20 мА. Распиновка разъёма N76 показана рис.1.

Рис. 1

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

Рис. 2

Основой модуля является распространенный микроконтроллер PIC18F452. Программа для него написана на Си.

Для питания дисплея я применил два стабилизатора LM1117 на соответствующее напряжение. Номинальное напряжение на сигнальных линиях 1,8 В.

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

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

Достоинство рассматриваемого дисплея, как и его проблема, заключается в 24-битном цвете. То есть для вывода 1 пикселя надо передать 5 байт, что снижает скорость вывода и требует приличных объёмов для хранения изображений. Поэтому тактовую частоту процессора надо стараться выбирать как можно выше. Я использовал 40 МГц. При этом скорость рисования вполне устраивает, а скорость вывода картинки маловата. Как вариант, можно на время прорисовки больших заставок гасить экран.

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

В прилагаемой программе имеется библиотека необходимых графических функций (описанная в файле LS_driver.h):

  1. вывод точки;
  2. вывод символа;
  3. вывод текста;
  4. вывод байта значения;
  5. рисование линии;
  6. рисование прямоугольника (с заливкой или без нее);
  7. рисование круга;
  8. рисование окошка типа WINDOWS;
  9. чтение из карточки и вывод рисунка  .BMP 24bit/pix

Детальные инструкции по функциям расписаны в файле LS_driver.h, и особо не требуют пояснений, за исключением 2-х моментов.

  1. При выводе картинки следует придерживаться вертикальной ориентации экрана (сам файл картинки предварительно развернуть в редакторе).
  2. При выводе файлов и рисовании картинок следует учитывать размеры экрана. Значения Х и Y меняются местами при изменении текущей ориентировки вывода с горизонтальной на вертикальную и наоборот, поэтому  проверка на превышение размеров не производится (не известен текущий максимум Х или Y).

Всё это, конечно, давно известно, но я попробовал собрать в кучу.

Получился более-менее универсальный модуль, который можно встроить в готовую или разрабатываемую конструкцию.

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

В качестве примера приведено рисование вертикальной шкалы в зависимости от значения АЦП (см. заглавное фото). В верхней части экрана выведена картинка – заставка.

Архив к проекту

Автор: Сергей Шакуров, г. Москва

Exit mobile version