Программа Сервисный Центр
0

Повышение эффективности использования цифровых линий ввода/вывода микроконтроллеров


Vasile Surducan и Emanoil SurducanМультиплексирование линий ввода/вывода микроконтроллеров и управление светодиодным индикаторомОчень часто разработчики устройств на микроконтроллерах или программируемых устройствах сталкиваются с проблемой нехватки цифровых линий ввода/вывода при подключении многоразрядных светодиодных индикаторов. Особенно острой становится проблема при необходимости реализации в устройстве кнопочной клавиатуры, наряду с индикаторами и другой периферией. С целью экономии портов микроконтроллера в таких случаях прибегают к использованию различной техники мультиплексирования линий ввода/вывода, которые имеют свои преимущества и недостатки.К таковым методам мультиплексирования цифровых линий ввода/вывода относится Charlieplexing (мультиплексирование «методом Чарли») или Gugaplexing.Чарли Аллен (Charlie Allen) разработал метод Charlieplexing, работая в компании Maxim, которая с тех пор выпускает микросхемы, реализующие алгоритм Чарли. Аллен использовал высокоимпендансное третье состояние выводов, реализованное во многих микропроцессорах, для выключения светодиодов в матрице, в то время как включение отдельных светодиодов производится путем подачи на соответствующие выводы микропроцессора сигналов высокого и низкого уровня.Gugaplexing – это новый метод мультиплексирования линий ввода/вывода, и, в сравнении с Charlieplexing, позволяет управлять вдвое большим числом светодиодов при добавлении в схему нескольких дополнительных компонентов.В общем случае они позволяют подключить 8-разрядный семисегментный светодиодный индикатор, используя всего 9 линий ввода/вывода. Однако, при разработке следует учитывать, что при таком мультиплексировании имеет место низкий коэффициент заполнения, и поэтому требуется наличие драйвера между микроконтроллером и индикатором для достижения высокой видимости символов на индикаторе.Схема на рисунке 1 использует 8+N/2 линий ввода/вывода для подключения N-разрядного семисегментного индикатора, наряду с восемью кнопками на этой же шине. Стоит заметить, что данная реализация не требует использования драйвера для индикатора и можно использовать ее с любыми программируемыми устройствами и микроконтроллерами, допускающими непосредственное подключение светодиодов к портам, например с микроконтроллерами Atmel или Microchip.
Повышение эффективности использования цифровых линий ввода/вывода микроконтроллеров

Кликните для увеличения
Рисунок 1. Индикатор с общим анодом, индикатор с общим катодом и кнопки могут быть подключены к одной шине.
На схеме резисторы R8 – это токоограничительные резисторы для индикатора IC1 (CA56-12HWA) с общим анодом и для индикатора IC2 (CA56-12SRWA) с общим катодом. Допускается любая комбинация стандартных и ультраярких индикаторов IC1/IC2, однако потребуется корректный выбор коэффициента заполнения в программном обеспечении. Резисторы R7 и импульсные диоды D1-D8 (1N4148) используются для исключения подсвечивания выключенных сегментов индикаторов (Antighostig). Появление такого эффекта (Ghosting) – слабое свечение выключенных сегментов – связано с переключением (мультиплексированием) и появлением кратковременных импульсных помех, или с несоответствующими уровнями напряжений на выводах управления, когда эти выводы находятся в высокоимпедансном состоянии (Z-состояние). Такой эффект – результат использования всех линий ввода/вывода: высокий, низкий и высокоимпедансный логический уровень выхода, переключение между ними в последовательности бесконечного цикла программы (см. Таблицу 1).
Повышение эффективности использования цифровых линий ввода/вывода микроконтроллеров
Рисунок 2. Без резисторов R7 видно подсвечивание выключенных сегментов индикатора (слева).
С резисторами R7 такого эффекта не наблюдается, даже при нажатии кнопок S1-S3
Нижеследующее выражение позволит вычислить значение резисторов R7:R7=(VSAFE – 0.6 В)/10IGHOST,где 0.6 В – падение напряжения на диодах D1-D8, измеренное при температуре 25 °С; IGHOST – пороговое значение статического тока утечки, при котором подсвечивание выключенных сегментов заметно, но минимально; VSAFE – потенциальное значение напряжения, которое может появиться на любом сегменте, когда сегмент не включен.Таблица 1. Последовательность переключений для индикаторов
Последова-
тельность
Включенный
символ на
индикаторе
Чтение
кнопок
Общие выводы, кнопки Шина сегментов
A, B, … Dp
AK1 AK2 AK3 AK4
1 IC1 – 1 Z Z Z Z выход
низкий уровень=данные
2 IC1 – 2 Z 1 Z Z
3 IC1 – 3 Z  Z 1 Z
4 IC1 – 4 Z  Z Z 1
5 Да 1  вход
6 IC2 – 5 0  Z  Z Z  
выход
высокий уровень=!данные
 
 
7 IC2 – 6 Z  0  Z  Z
8 IC2 – 7  Z  Z  0  Z
9 IC2 – 8  Z  Z  Z  0
 
Обозначение логических уровней в таблице: Z – высокоимпедансное состояние;
1 – высокий уровень;
0 – низкий уровень.
Пользователи могут найти значение IGHOST экспериментально при внешнем освещении менее 10 люкс, подав небольшой ток на отдельный сегмент индикатора и наблюдая за значением тока и падением напряжения на сегменте в момент, когда сегмент начинает светиться. Для ультраярких индикаторов значение IGHOST должно быть приблизительно 70 мкА. Ток IGHOST создает нежелательное падение напряжения VGHOST:VGHOST=1.54 В и VSAFE≤kVGHOST, где k – доверительный коэффициент в диапазоне 0.5 – 0.7, компенсирующий напряжение VGHOST дисперсии индикатора. В нашем примере значение VSAFE = 0.7 В для ультраяркого индикатора и 1 В для стандартного индикатора. Если будет использоваться комбинация из стандартного и ультраяркого индикатора, то необходимо выбрать меньшее значение VSAFE для вычисленного значения R7.Чтение кнопок представляет собой асинхронную процедуру, в отличие от цифрового мультиплексирования; таким образом любая комбинация нажатия кнопок не должна включать сегменты индикаторов. Резисторы R1, R2, R3 ограничивают ток через сегменты индикатора IC1 ниже IGHOST при включенном транзисторе Q1 и высоком уровне на выводе AK1. Резистор R6 удерживает транзистор закрытым, даже когда выход AK1 находится в высокоимпедансном состоянии. Резистор R4 ограничивает ток коллектора транзистора.Также следует отметить, что во время чтения кнопок должны быть включены внутренние подтягивающие резисторы микроконтроллера по линиям A, B и C.ЗагрузкиДемонстрационная программа для микроконтроллера PIC16F886 (исходный код, подключение индикаторов по схеме на рисунке 1) – скачатьНа английском языке: Increase efficiency in embedded digital-I/O linesПеревод: Vadim по заказу РадиоЛоцман

По материалам сайта www.rlocman.ru

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (7)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"