Индикация LED через сдвиговые регистры
Индикация LED через сдвиговые регистры
Интересует информация о принципе работы микросхем логики для 7-сегментных индикаторов, что как, примерчик исполнения. Т.е. как по 2-3 проводам с контроллера упавлять цифрой. Также совет-наставление какую микросхемку применить.
Последний раз редактировалось slesar Пн мар 29, 2010 12:38:11, всего редактировалось 1 раз.
Канифоли много не бывает!
Re: Снова индикация
применить можно регистры сдвига и управлять по 3 проводам.
Зайди на сайт ДиХалт-а, там есть статейка, как подключить индикаторы по 1 проводу.
Зайди на сайт ДиХалт-а, там есть статейка, как подключить индикаторы по 1 проводу.
Не умеешь - не берись, но не взявшись не научишься...
- MTF
- Нашел транзистор. Понюхал.
- Сообщения: 179
- Зарегистрирован: Чт янв 07, 2010 11:25:12
- Откуда: Москва
Re: Снова индикация
Есть такая микруха 74LS164 для управления 7 сегментного индикатора по 2 проводам !!!!!!
Re: Снова индикация
сто раз писано и разжевано, но все же.
само удобно выводить с помощью 74нс595 или 4094 регистров. я бы рекомендовал STPIC6C595MTR, это 595 регистр с мощным высоковольтным выходом, стоит всего 0,7уе, и можно прямо к нему цеплять индикаторы любого типа, без всяких транзисторных ключей. Одним словом красота, контроллер-STPIC6C595MTR-индикатор.
само удобно выводить с помощью 74нс595 или 4094 регистров. я бы рекомендовал STPIC6C595MTR, это 595 регистр с мощным высоковольтным выходом, стоит всего 0,7уе, и можно прямо к нему цеплять индикаторы любого типа, без всяких транзисторных ключей. Одним словом красота, контроллер-STPIC6C595MTR-индикатор.
Re: Снова индикация
тематические ответы только в форуме, в приват не пишите
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: Снова индикация
Отмечусь в теме и я.
Вопрос какой максимальный ток через выводы Vcc/GND для 74hc595? Отвечаю - +-70мА, или 10мА/сегмент это максимум при статике, при динамической индикации - соответсвенно
А теперь смотрим 74ALS164 Io (т.е. через вывод GND) - -112мА что на 60% больше.
Отсюда вывод: для индикаторов с ОА 74ALS164 предподчительнее.
Вопрос какой максимальный ток через выводы Vcc/GND для 74hc595? Отвечаю - +-70мА, или 10мА/сегмент это максимум при статике, при динамической индикации - соответсвенно
А теперь смотрим 74ALS164 Io (т.е. через вывод GND) - -112мА что на 60% больше.
Отсюда вывод: для индикаторов с ОА 74ALS164 предподчительнее.
Re: Индикация LED через сдвиговые регистры
Почему-то радио любители практически не используют (встречал несколько попыток) м/с драйверы 7-сегментных LED индикаторов (самых разных цветов и разрядов), применяемых в DVD плеерах, видеомагнитофонах и другой аппаратуре. Умногих DVD плеера валяются неисправные из-за нецелесообразности ремонта и их отдают на запчасти даром или по символической цене.
Эти драйвера насколько я понял несколько упрощённые и значительно более дешёвые аналоги MAX7219, MAX7221. Например AP6928, AS1628B,CS1664EQ,PT6961,PT6964 и т.п..
Управляются они по SPI интерфейсу. Это всего 3 провода и широкие возможности вывода цифровой и некоторой текстовой информации в разнообразных режимах, регулировка яркости.
Допускается каскадное (также как и при использовании регистров 74HC595) соединение драйверов для увеличения разрядности индикаторов. Можно подключить и клавиатуру с достаточным колличеством кнопок.
На плате с индикатором уже припаяна мс драйвера, кнопки и фотоприемник, распаян разъём или кабель да ещё с маркировкой контактов. Т.е. это готовая к применению конструкция и не надо тратить время на изготовление платы для отладки и проверки своих программ.
Есть и вакумно-люминисцентные индикаторы разных размеров с большим колличеством сегментов и самых разных цветов.
В этом случае микроконтроллер освобождается от рутиной и занимающей довольно много памяти функции вывода информации.
Эти драйвера насколько я понял несколько упрощённые и значительно более дешёвые аналоги MAX7219, MAX7221. Например AP6928, AS1628B,CS1664EQ,PT6961,PT6964 и т.п..
Управляются они по SPI интерфейсу. Это всего 3 провода и широкие возможности вывода цифровой и некоторой текстовой информации в разнообразных режимах, регулировка яркости.
Допускается каскадное (также как и при использовании регистров 74HC595) соединение драйверов для увеличения разрядности индикаторов. Можно подключить и клавиатуру с достаточным колличеством кнопок.
На плате с индикатором уже припаяна мс драйвера, кнопки и фотоприемник, распаян разъём или кабель да ещё с маркировкой контактов. Т.е. это готовая к применению конструкция и не надо тратить время на изготовление платы для отладки и проверки своих программ.
Есть и вакумно-люминисцентные индикаторы разных размеров с большим колличеством сегментов и самых разных цветов.
В этом случае микроконтроллер освобождается от рутиной и занимающей довольно много памяти функции вывода информации.
- Вложения
-
- indikator.JPG
- Небольшая кучка.
- (184.62 КБ) 2284 скачивания
Re: Индикация LED через сдвиговые регистры
Вариант интересен только в случае, когда есть стабильный источник требуемых ИС. Изучать каждый раз по-новой систему комманд контроллера и протокол работы - не у всех и не всегда есть возможность.
misterdi<@>i.ua
Re: Индикация LED через сдвиговые регистры
В том то и дело, что благодаря нашим братьям теперь не меньшим, источник практически не ограничен. В разных изделиях используются практически однотипные драйвера с однотипной системой команд + яркие бесплатные индикаторы в комплекте.
В ремонтных мастерских этих плат скапливается уже в достаточном колличестве и всё это идёт на выброс.
В ремонтных мастерских этих плат скапливается уже в достаточном колличестве и всё это идёт на выброс.
- andrewtitoff
- Первый раз сказал Мяу!
- Сообщения: 36
- Зарегистрирован: Вс май 02, 2010 19:44:22
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
2 pcb432
Угу, только не всегда они подписаны, а даташит например на AP6928 ненайти... =(((
Угу, только не всегда они подписаны, а даташит например на AP6928 ненайти... =(((
С уважением, А.С. Титов
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
- andrewtitoff
- Первый раз сказал Мяу!
- Сообщения: 36
- Зарегистрирован: Вс май 02, 2010 19:44:22
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
Млин, чегото никак не могу разобраться как подключить AP6928 к LPT... =(((
Прочитал статейку http://kazus.ru/articles/345.html , посмотрел схему DVD от которого эта плата(схему прилагаю), но ничего не получается..., сравнив схемы я так понял что вся обвязка на плате уже есть, соединил DI/O, CS, CLC с LPT, 5в взял от USB, землю на всякий случай соединил LPT и USB ну и естенственно с платой, в итоге напряжения приходят, т.к. подключал паралельно LPT-тестеру - видно что что то ппосылается, покрайне мере при отправке светодиод на тестере один раз мигает, но дисплей молчит... =((((
Прочитал статейку http://kazus.ru/articles/345.html , посмотрел схему DVD от которого эта плата(схему прилагаю), но ничего не получается..., сравнив схемы я так понял что вся обвязка на плате уже есть, соединил DI/O, CS, CLC с LPT, 5в взял от USB, землю на всякий случай соединил LPT и USB ну и естенственно с платой, в итоге напряжения приходят, т.к. подключал паралельно LPT-тестеру - видно что что то ппосылается, покрайне мере при отправке светодиод на тестере один раз мигает, но дисплей молчит... =((((
- Вложения
-
- AP6928 копия.jpg
- (167.62 КБ) 1817 скачиваний
С уважением, А.С. Титов
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Бесплатный вывоз и утилизация компьютерной техники.
т. 716-90-60 http://recycling.spb.ru/
Re: Индикация LED через сдвиговые регистры
В статье описаны драйверы LED фирмы MAXIM. У них в отличии от драйвера типа AP6928, TM1628 и т.п. команды разные и отправляются начиная со старшего бита. Более точная информация в даташитах.
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
Что-ж, отмечусь и я...
Последнее время производим 7-сегментные инликаторы на регистре TPIC6B595, стоимость микросхемы 19руб, ток выхода более 500мА.
Пример схемы сегмента:
Произведено более 1000 экземпляров, нареканий пока не было.
Распиновка разъема:
1 - Сигнал PWM (управлению яркостью). Не стоит забывать, что при единице выходы переходят в высокоимпедансное состояние.
2 - Вход данных (DATA) (Либо выход на втором разъеме).
6 - Вход стробирования (CLK).
10 - Вход защелки (Latch, #LE).
3,5,7,9 - Общий.
В целом протокол представляет из себя однонаправленную шину SPI, следовательно, можно использовать аппаратный SPI контроллера.
Из меги (IDE - CodeVisionAVR) управляется так:
Исходники старые, код малость бредовый, зато суть показывает хорошо. Новых исходников не дам из-за NDA.
NOPы можно поудалять, без них нормально работает.
Резисторы R1..R3 имеет смысл ставить на каждую 4ю плату, начиная с первой. Нужны они для подавления помех, улавливаемых шлейфом.
Если нужна печатка в протеусе или готовый гербер на высоту цифры 150мм - могу предоставить при условии неразглашения и для некоммерческого использования - в аську 305224880, в рабочее время (в другое антиспам не пустит).
PS: Максимальная цепочка, которую испытывали - 48 цифр. Рядом с работающими силовыми установками в композитном корпусе проблем не было.
Последнее время производим 7-сегментные инликаторы на регистре TPIC6B595, стоимость микросхемы 19руб, ток выхода более 500мА.
Пример схемы сегмента:
Произведено более 1000 экземпляров, нареканий пока не было.
Распиновка разъема:
1 - Сигнал PWM (управлению яркостью). Не стоит забывать, что при единице выходы переходят в высокоимпедансное состояние.
2 - Вход данных (DATA) (Либо выход на втором разъеме).
6 - Вход стробирования (CLK).
10 - Вход защелки (Latch, #LE).
3,5,7,9 - Общий.
В целом протокол представляет из себя однонаправленную шину SPI, следовательно, можно использовать аппаратный SPI контроллера.
Из меги (IDE - CodeVisionAVR) управляется так:
Код: Выделить всё
unsigned char dig_font[16] = {
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b10111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
0b00000010, // Minus (10)
0b00000001, // Pset (11)
0b00000000, // None (12)
0b10011110, // E (13)
0b00001010, // r (14)
0b00010000, // _ (downshift) (15)
};
// Font defines
#define FONT_MINUS 10
#define FONT_PSET 11
#define FONT_NONE 12
#define FONT_E 13
#define FONT_r 14
#define DONT_DOWNSHIFT 15
//LED display
#define HC595_PORT PORTD
#define HC595_DATA_PIN 7
#define HC595_SCK_PIN 6
#define HC595_RCK_PIN 5
#define HC595_PWM_PIN 4
unsigned char led_bufer[LED_BUFFER_LEN];
unsigned char led_last_position = 0;
void clearBuffer(){
unsigned char i;
for(i=0;i<LED_BUFFER_LEN;i++){
led_bufer[i] = 0x00;
}
}
void HC595_shiftDigits(unsigned char length){
unsigned char i;
// Поиграем клоками, чтобы сдвинуть данные. В освободившемся месте - 0x00.
BIT_CLR(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
for (i=0;i==length*8-1;i++){
BIT_CLR(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
}
}
void HC595_putBuffer(){
unsigned char x,i;
// Выводим очередной буффер.
for(i=0;i<LED_BUFFER_LEN;i++){
x=1;
while (x){
BIT_CLR(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
if(led_bufer[i]&x)
BIT_SET(HC595_PORT,HC595_DATA_PIN);
#asm("nop");
BIT_CLR(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_SCK_PIN);
#asm("nop");
x<<=1;
}
led_last_position++;
}
}
void HC595_Latch(){
BIT_CLR(HC595_PORT,HC595_RCK_PIN);
#asm("nop");
BIT_SET(HC595_PORT,HC595_RCK_PIN);
#asm("nop");
led_last_position = 0;
}
void putDigitIntoBuffer(unsigned char position,unsigned char number){
led_bufer[position] = dig_font[number];
}
void putNumberIntoBuffer(unsigned char offset, signed int number, unsigned char length, unsigned char removeZeros){
unsigned char pos=offset, dig, isMinus=number<0, isMinusShowed = 0;
number = abs(number);
while (pos<offset+length){
dig = number%10;
if((removeZeros>0)&(dig==0)&(number<10)){
if((isMinus>0)&(isMinusShowed==0)){
dig = FONT_MINUS;
isMinusShowed = 1;
}else{
dig = FONT_NONE;
}
}
number /= 10;
putDigitIntoBuffer(pos, dig);
pos++;
}
}
Исходники старые, код малость бредовый, зато суть показывает хорошо. Новых исходников не дам из-за NDA.
NOPы можно поудалять, без них нормально работает.
Резисторы R1..R3 имеет смысл ставить на каждую 4ю плату, начиная с первой. Нужны они для подавления помех, улавливаемых шлейфом.
Если нужна печатка в протеусе или готовый гербер на высоту цифры 150мм - могу предоставить при условии неразглашения и для некоммерческого использования - в аську 305224880, в рабочее время (в другое антиспам не пустит).
PS: Максимальная цепочка, которую испытывали - 48 цифр. Рядом с работающими силовыми установками в композитном корпусе проблем не было.
Последний раз редактировалось Johnson Пт май 17, 2013 10:24:53, всего редактировалось 3 раза.
Re: Индикация LED через сдвиговые регистры
Полярность светодиодов на схеме правильно показана?
Выходной драйвер у AVR'ок уже давно симметричный. Не вводите в заблуждение.Johnson писал(а):мега лучше коммутирует порты на общий провод, чем на плюсовой, ей так проще.
Each output buffer has symmetrical drive characteristics with both high sink and source capability.
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
Полярность светодиодов на схеме правильно показана?
Да, конечно. По этой схеме налажено производство. Драйверы в TPIC коммутируют на общий (инвертированные).
Про симметричность меги не знал, спасибо, изучу.
Добавлено: Ой, схема не та... Разумеется, полярность неправильная.
Последний раз редактировалось Johnson Пт май 17, 2013 10:10:32, всего редактировалось 1 раз.
Re: Индикация LED через сдвиговые регистры
Да, и подключают аноды к общему проводу, в то время как катоды подключены к +Vin. Не убедили.Johnson писал(а):Драйверы в TPIC коммутируют на общий (инвертированные).
-
Johnson
- Встал на лапы
- Сообщения: 93
- Зарегистрирован: Чт мар 05, 2009 08:15:25
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
Выше подправил пост. Да, схему не ту отправил. Разумеется, Вы правы, полярность перепутана.
Хороший повод перетряхнуть всю документацию на наличие таких вот промежуточных ляпов...
Исправил ошибку в посте.
Хороший повод перетряхнуть всю документацию на наличие таких вот промежуточных ляпов...
Исправил ошибку в посте.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Индикация LED через сдвиговые регистры
на e-bay некогда были популярны 8-ми и 16-битные регистры специально для светодиодов - питание 3.3В, выход - источник входящего тока, его величина управляется для всех выводов одним резистором - от 0 до 80ма на вывод! Распиновка довольно удобная - все сигналы управления и питание с одной стороны микросхемы, а выходы в другой. сейчас чего-то их давно не видать...
Re: Индикация LED через сдвиговые регистры
Я ставил 595 регистры и цеплял их на SPI микроконтроллера - данные выдаются по стандартному протоколу SPI, не надо городить библиотеки. Реализовано на 3DLed cube, так что скорости хватает.
