Проект устройства IPS дисплея

дипломная работа

· Блок взаимодействия с USB портом внешнего устройства.

· Блок отображения данных.

2.3 Описание основного микроконтроллера для устройства

Основной контроллер играет главную роль в работе схемы. С ним связаны все блоки. Рассмотрим основные характеристики выбранного микроконтроллера.

Микроконтроллер ATMega1281 фирмы Atmel.Как и все микроконтроллеры AVR фирмы Atmel, микроконтроллеры семейства Mega являются 8 разрядными микроконтроллерами, предназначенными для встраиваемых приложений. Они изготавливаются по мало потребляющей КМОП технологии, которая в сочетании с усовершенствованной RISC архитектурой позволяет достичь наилучшего соотношения быстродействия, энергопотребления. Микроконтроллеры описываемого семейства являются наиболее развитыми представителями микроконтроллеров AVR. В таблице 2.1 показаны основные микроконтроллеры Mega AVR и их параметры.

Таблица 2.1 Основные микроконтроллеры Mega AVR и их параметры

В ходе сравнения, а так же по желанию заказчика был выбран Микроконтроллер ATMega1281.Опишем параметры микросхемы подробнее. Тактовая частота до 16 МГц, 128 Кбайт Flash ПЗУ программ, 4 Кбайт ЭСППЗУ (EEPROM) данных, 4 Кбайт оперативной памяти (SRAM), возможность программирования через последовательные интерфейсы SPI и JTAG, возможность само программирования, два универсальных синхронный или асинхронных приемопередатчика USART, последовательный двухпроводный интерфейс TWI (аналог I2C), 53 программируемые линии ввода/вывода с уровнями ТТЛ; на эти линии выведена также поддержка периферийных функций, напряжения питания от 4,5 до 5.5 В. ATMega1281 имеет один тип корпуса размером 16 мм на 16 мм. Стоит такой микроконтроллер порядка 400 рублей[4].

2.4 Блок управления пользователем функциями устройства (кнопки)

Блок представляет собой набор кнопок, при нажатии на которые выполняются определённые действия. Действия определяются прошивкой микроконтроллера ATMega1281.

Рассмотрим некоторые способы подключения кнопок.

1. Подключение клавиатуры на сдвиговых регистрах. Часто возникает необходимость использования в своем проекте большого количества кнопок для различный целей. Максимальное количество кнопок ограничивается лишь максимально допустимым временем на сканирование клавиатуры. Помимо самих кнопок и идущих с ними резисторов, дополнительные элементы: сдвиговые регистры представленные микросхемой sn74198n. Сдвиговые регистры - вещь довольно удобная за счет своей дешевизны и универсальности. Их часто используют для подключения элементов по небольшому количеству выводов микроконтроллера. Рассмотрим пример подключения восьми кнопок на рисунке 2.2.

Рис. 2.2 Схема клавиатуры на сдвиговых регистрах[3].

Состоит такая схема из трёх блоков: блок клавиатуры, блок сдвиговых регистров и блок микроконтроллера. На таком сдвиговом регистре осуществляется последовательная и параллельная передача данных. Параллельной передачей данных называют метод передачи нескольких сигналов с данными одновременно по нескольким параллельным каналам, например порт целиком, сразу все восемь бит. При последовательной передачи данных биты пересылаются по одной линии связи, друг за другом, последовательно. Одним выводом кнопки подключены к входу сдвигового регистра. Одним выводом кнопки подключены к входу сдвигового регистра. Как только кнопка замыкается, на входе сдвигового регистра образуется логический ноль, так как он оказывается напрямую подключен к общему проводу. Такая схема не требует особых дополнительных затрат, так как подобный сдвиговый регистр стоит порядка 15 рублей, а размеры клавиатуры на плате зависят непосредственно от количества кнопок.

2. Клавиатура на резистивных делителях. Идея такого способа, так же как и предыдущего является экономия ножек контроллера, либо избавление от их нехватки. Один из таких вариантов - поставить цепочку резисторов и кнопками замыкать их на землю. Такой вариант представлен на рисунке 2.3.

Рис. 2.3 Схема клавиатуры на резистивных делителях 1[3].

Работает данная схема примерно так:

- Если не нажата ни одна кнопка, то выход Vout подтянут к Vref через резистор R1, соответственно Vout = Vref.

- Если нажата кнопка S1, то она тянет Vout к земле, и на выходе Vout=0.

- Если нажата кнопка S2, то схема преобразуется в резистивный делитель: верхнее плечо образует резистор R1, нижнее плечо - R2. Поскольку номиналы этих резисторов равны, то на выходе Vout = Vref / 2.

- Если нажата кнопка S3, то в нижнее плечо включается резисторы R2 и R3, и коэффициент деления стал 2/3.

Кнопка S1 - 0 значение АЦП, S2 - 128 значение АЦП, S3 - 170 значение АЦП, S4 - 191 значение АЦП, S5 - 204 значение АЦП, значение АЦП 255 - кнопки отжаты. При восьми битном АЦП, другими словами при Vout = Vref его значение 255, к десятой кнопке будет не возможно распознавать какая кнопка нажата. Но и на это случай есть своё решение рисунок 2.4.

Рис. 2.4 Схема клавиатуры на резистивных делителях 2[3].

Если посмотреть глобально, то принцип остался такой же - одно плечо делителя неизменно, другое формируется из комбинации резисторов в зависимости от нажатых кнопок. Весь интерес в том, что подобрав значения резисторов, можно расширить диапазон изменения напряжения Vout (например, в прошлой схеме напряжения меньше чем Vref/2 получить не удавалось). Посмотрим подробнее на комбинации резисторов. При нажатии кнопки в верхнее плечо делителя подключается от 0 до 3 резисторов Ra, Rb, Rc и от 0 до 3 резисторов Rd, Re, Rf. Для упрощения расчетов примем значения Ra = Rb = Rc = R1, Rd= Re = Rf = R2. Для того чтобы не перепутать кнопки, соотношение резисторов R1/R2 должно быть не менее 4, R1=10k, а R2=40k. Теперь значения АЦП выглядят так:

S(3,3)=54, S(3,2)=57, S(3,1)=60, S(3,0)=64;

S(2,3)=68, S(2,2)=73, S(2,1)=78, S(2,0)=85;

S(1,3)=93, S(1,2)=102, S(1,1)=113, S(1,0)=128;

S(0,3)=146, S(0,2)=170, S(0,1)=204, S(0,0)=255;

Данный способ, безусловно, экономит драгоценные ножки микроконтроллера и не требует количество резисторов такое же как например в предыдущем случае. Минусом является подборка резисторов и расчёт значений АЦП.

3. Реализация кнопок на ножках контроллера. Данный способ отличается от первых двух тем, что в нём совсем не экономятся ножки контроллера. Это может быть связанно либо с тем, что количество кнопок ограничивается тремя, четырьмя кнопками, либо с тем, что помимо всех устройств, соединённых с контроллером остаётся большое количество свободных ножек. В том и другом случае опрос кнопок происходит с помощью портов, на которые эти кнопки выведены.

Программа опрашивает последовательно выводы, на которых изначально значения единицы. При нажатии клавиши значение вывода изменяется на нуль и соответственно происходит действие, связанное с этим выводом.

Пример такой клавиатуры показан на рисунке 2.5.

Рис. 2.5 Схема соединения кнопка - ножка контроллера[11].

Естественно рассмотрены не все случаи подключения клавиатуры к микроконтроллеру. Учитывая специфику устройства и пожелания заказчика, стоит выбрать последний вариант ATMega1281, этот микроконтроллер имеет 53 ножки, которые могут служить входами или же выходами. Подключая, клавиатуру, состоящую из шестнадцати кнопок в последнюю очередь, будет вполне достаточно свободных ножек. Проблемы с ножками решена, а так же такой способ не составит сложности при написании прошивки контроллера, так как в нём не используется никаких дополнительных алгоритмов[14].

Делись добром ;)