PIC24FJ256DA210. Графический модуль

PIC24FJ256DA210. Графический модуль

Фирма Microchip выпустила семейство микропроцессоров PIC24FJ256DA210ххх, отличающееся от остальных интересными и полезными возможностями, которые позволяют реализовать большое число разнообразных устройств на базе одного микропроцессора. Особенно ценно наличие встроенного модуля графического дисплея, позволяющего использовать недорогие цветные и монохромные дисплеи с сенсорной панелью. С учетом широкого спектра встроенных внешних устройств, на микропроцессоре PIC24FJ256DA210ххх удобно реализовывать различного рода приборы и системы управления с отображением и управлением устройством только с использованием одного экрана, без применения других органов управления. Микропроцессор выпускается в корпусах трех модификаций, 64 контакта, 100 контактов и в корпусе BGA 121 контакт. Сразу следует отметить некоторую проблему, вызванную применением корпуса BGA, который неудобен для монтажа и распайки. Суть в том, что применение недорогого цветного дисплея с сенсорной панелью требует установки дополнительной памяти с параллельным интерфейсом для буфера отображения . В результате в подобной системе, в 100 контактном корпусе, с трудом можно набрать не более 10-12 свободных контактов. Если разрабатываемая система не вписывается в такое число контактов, то приходится использовать корпус BGA. Альтернативой является применение монохромного дисплея, который не требует дополнительной памяти и оставляет много свободных контактов. Однако монохромные дисплеи с одинаковым разрешением и размером экрана приблизительно в три раза дороже цветных TFT дисплеев и естественно монохромные дисплеи имеют худшее качество отображения. Даже с учетом дополнительной микросхемы памяти система на цветном TFT дисплее получается значительно дешевле, чем аналог на монохромном дисплее.
В статье делается  краткий, ознакомительный обзор возможностей старшей модели семейства микропроцессоров PIC24FJ256DA210ххх.

Графический модуль (контроллер) микропроцессора описывается в отдельной книге. Книга является свободным переводом оригинальной документации с учетом практического опыта разработки автором графических модулей на цветных и монохромных дисплеях. Книга может быть свободно закачана по этой ссылке Arc/ModuleGFX.pdf, при возникновении проблем с закачкой обращайтесь к автору.


Общие характеристики микропроцессора таковы:

Микропроцессор имеет расширенный набор периферийных устройств:

Аналоговые возможности.

Программное обеспечение
Возможности реализации широкого спектра устройств на базе данного микропроцессора существенно расширяются благодаря тому, что он сопровождается бесплатной графической библиотекой Microchip и большим количеством примеров ее использования. Важной возможностью библиотеки является поддержка сенсорных панелей и емкостных клавиатур, что позволяет быстро создавать устройства, простые и недорогие в производстве, без внешних многоклавишных клавиатур. Появление в широком доступе недорогих (значительно дешевле монохромных) цветных TFT дисплеев делает применение этого микропроцессора еще более заманчивым.

Обзор графической библиотеки

Библиотека предназначена для быстрого создания  графического интерфейса пользователя в приложении. Библиотека поддерживает ряд наиболее употребительных контроллеров устройств отображения, а также позволяет использовать другие контроллеры, которые легко интегрируются в библиотеку, что  упрощает процесс смены устройства отображения. Также в библиотеке присутствует драйвер дисплея с RGB интерфейсом или интерфейсом монохромных дисплеев.  Данный драйвер достаточно просто перенастраивается под широкую гамму дисплеев. Необходимо сразу оговорить понятие дисплея с контроллером. В литературе существует путаница в классификации дисплеев, часто говорят, что дисплей имеет контроллер, подразумевая наличие контроллера одного из широко используемых интерфейсов, ставшего де-факто почти стандартом. В действительности  все современные дисплеи  имеют как минимум два контроллера или больше. Так многие дисплеи TFT с интерфейсом RGB имеют цифроаналоговый контроллер для формирования изображения на панели TFT, контроллер интерфейса RGB и контроллер шины SPI для начальной программной настройки контроллера интерфейса RGB. Физически они могут быть выполнены как раздельно, так и вместе в различных сочетаниях. Далее под контроллером  дисплея будет пониматься только контроллер, работающий с модулем графического дисплея микропроцессора.
Библиотека поддерживает  три типа устройств ввода для связи с оператором, клавиатуру, мышь и сенсорную панель. Для  микроконтроллеров  PIC, она предлагает высокоуровневый программный интерфейс (API), выполняющий отображение примитивных графических объектов и объектов с расширенным функционированием, подобных виджетам.  Система обмена сообщениями существенно упрощает программирование с применением виджетов, приближая его к высокоуровневому программированию на языке С++. Многоуровневая архитектура библиотеки  позволяет просто реализовать вышеуказанные возможности.
Структура библиотеки показана на рисунке 1.

lib

Графическая библиотека имеет три  слоя, слой графических объектов, осуществляющий связь с приложением, слой графических примитивов (функций рисования) и слой дисплейного драйвера, обеспечивающего связь с графическим контроллером микропроцессора. Связь драйвера с графическим контроллером не обязательна, если микропроцессор работает с дисплеем, имеющим не RGB интерфейс. В этом случае используется драйвер из коллекции библиотеки для основных, широко используемых контроллеров дисплеев:

 

Слой графических объектов библиотеки реализует виджеты, такие как кнопки, ползунки, окна и т.д. В дальнейшем виджеты будут именоваться объектами GOL(Graphics Object Layer). Для управления этими объектами, GOL имеет интерфейс сообщений, который принимает сообщения от приложения. Интерфейс сообщений поддерживает множество устройств ввода, таких как клавиатуры, кнопки, сенсорные экраны, мыши и т.д.

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

Слой дисплейного драйвера зависит от архитектуры устройства. Этот слой управляет непосредственно дисплейным контроллером. Для каждого контроллера дисплея, должен быть реализован отдельный драйвер. Библиотека предоставляет реализацию нескольких, широко используемых драйверов контроллера дисплея. Если контроллер дисплея отсутствует в списке драйверов, нужно модифицировать  наиболее близкий по аппаратной реализации драйвер дисплея или написать новый драйвер. Такая схема позволяет легко переносить код на другие дисплеи.
Обширный API предоставляет приложению доступ к любому слою библиотеки. Процесс рисования и поступающие сообщения обрабатываются в системе и являются прозрачными для приложения. Библиотека имеет  две конфигурации, блокирующую и не блокирующую, которые устанавливаются во время компиляции. Для блокирующей конфигурации функции рисования задерживают выполнения программы до окончания рисования. Для не блокирующей конфигурации функции рисования сразу передают управление программе без ожидания завершения рисования. Это позволяет эффективно использовать микроконтроллер для выполнения других задач.
Не блокирующая конфигурация имеет преимущество в системах с аппаратными графическими ускорителями и прямым доступом к памяти DMA. С точки зрения приложения, обе конфигурации являются прозрачными.

Виджеты GOL позволяют легко и быстро создать комплексную графику пользовательского интерфейса. Версия библиотеки V3.03 поддерживает следующие виджеты:
1 . Кнопка (Button)
2 . Ползунок (Slider)
3. Окно (Window)
4. Флажок           (Check Box)
5. Кнопки (Radio Button)
6. Поле ввода     (Edit Box)
7. Список           (List Box)
8. Группа (Group Box)
9 . Горизонтальные / вертикальные полосы прокрутки (Horizontal/Vertical Scroll Bars)
10 . Индикатор выполнения (Progress Bar)
11 . Статический текст (Static Text)
12 . Изображение (Picture)
13 . Вращающийся диск, имеющий вид ручки потенциометра (Dial)
14 . Цифровой измеритель (Meter)
15.  Диаграмма         (Chart)
16. Аналоговые часы

Библиотека постоянно развивается и пополняется новыми элементами, расширяет свои возможности.

[в начало]

Hosted by uCoz