Информация к новости
  • Просмотров: 19283
  • Добавил: Kail
  • Дата: 21 сентября 2010
21 сентября 2010

Сдвиговый регистр

Категория: Схемы » Световые устройства

Иногда требуется ОЧЕНЬ много выходных портов. Особенно если хотим сделать что нибудь на светодиодах. Гирлянду какую-нибудь навороченную. Что делать? Брать под это дело ATMega128 с ее полусотней выводов? Избыточно — для ламеров. Ставить i2с расширитель портов? Дорого. Для мажоров. Тут на помощь из вековых глубин выплывает старая добрая дискретная логика. На этот раз нас выручит грошовый сдвиговый регистр. Возьму, для примера, 74HC164 он же, для любителей совковых трешевых микросхем в неубиваемом каменном корпусе, наш КM555ИР8 .

Сдвиговый регистр


У него есть 8 выходов и четыре входа. R-сброс, С-тактовый, А1 и А2 вход. На самом деле, внутри они заведены через логический элемент 2И-НЕ и идут на D триггеры. D — это такой тип триггера, который по тактовому импульсу схватывает и отправляет на выход то, что у него на входе. Как видишь, тут они цепью стоят ,передавая бит от одного к другому и нет принципиальной разницы сколько их тут будет, восемь штук или восемь миллиардов. Но чем больше, тем дольше по этой эстафете гнать данные до конца. Поэтому мы смело можем эти регистры соединять последовательно.


Получается вот такая схема:

Сдвиговый регистр


От МК, как видно, требуется только четыре выхода. Одним (RESET) мы сбрасываем состояние регистра. Из второго (Data) побитно вылазит байтик, а тактовый CLC обеспечивает продвижение битов по регистру. Самих регистров тут три. Они сцеплены паровозом. Когда переполняется первый, то биты из него вылазят во второй, потом в третий. Итого, 24 вывода.
Катоды диодов подключены все вместе через транзистор и как только будет слово мы подаем сигнал Ready и зажигаем всю эту ботву.

Наполнять регистр просто:
1) Поднимаем и держим RESET в 1
2) Выдаем 1-й (старший) бит на Data.
3) Опускаем в 0 и поднимаем в 1 тактовый выход. На восходящем фронте происходит занос в регистр и сдвиг всей цепочки на один шаг.
4) Повторить со второго пункта пока все биты не выдадим.

А для сброса достаточно уронить Reset в ноль на пару микросекунд.
Все очень просто :)

PS
Кружок на входе регистра означает, что вход инверсный. Т.е. подал ноль - сработало
Треугольник на входе показывает по какому фронту произойдет срабатывание. Запомнить просто: _/ \_ — это, типа, импульс. А треугольник, как стрелочка, указывает на нужный фронт. ->_/ \_ передний (восходящий фронт) и _/ \_<- задний (нисходящий фронт)


Ну и даташитик напоследок - [attachment=168]

А еще протеусовская модель - [attachment=169] где можно вручную переключателем поперетыкать уровень на входе и потыкать кнопку тактового входа. Правда я там поленился на диоды питание заводить — там по квадратикам логических уровней итак все видно хорошо :)




Вот решил продемоснтрировать то как ведет себя Hi-Z вход в отстутствии сигнала. Схема точь в точь из поста про регистр. В схеме тут три сдвиговых регистра цепью, на выходе у них светодиоды. С микроконтроллера идет только тактовый сигнал, а вот Data сигнал висит в воздухе. Получается следующий эффект — случайная наводка возникает на входе, иногда возникают единица, а тактовый импульс проталкивает ее по регистрам. Как результат — диоды мерцают. Сама наводка очень сильно зависит от окружающих предметов. Подошел — горит, отошел — не горит.



Именно поэтому не следует оставлять висеть просто так выводы микроконтроллеров. Их нужно либо изнутри (конфигурацией DDR или аналогов) либо снаружи подтягивать до единицы или до нуля. Чтобы не болтались. Да, надо еще добавить, что вот так вот хаотично болтаясь, вывод генерирует множественные переключения внутренних ключей, а значит, потребляет больше энергии, создает микроброски напряжения в цепи питания. Как следствие хаотичного снижения и повышения энергопотребления. Про самопроизвольную генерацию всяких событий вроде прерываний (если они не выключены) я и не говорю. Также такое вихляние напряжения на выводе при включении может стать причиной так называемой тиристорной защелки. Когда транзисторы на выходе заклинивает в открытом состоянии, образуется внутрикристальное короткое замыкание. При этом микросхема начинает греться как утюг и чаще всего сгорает. Из защелки выход только один - вырубить питание.

Источник: easyelectronics.ru



Добавление комментария

Имя:*
E-Mail:*
Введите два слова, показанных на изображении: *

Друзья и партнеры:

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

Декабрь 2016 (4)
Ноябрь 2016 (1)
Сентябрь 2016 (3)
Июнь 2016 (1)
Май 2016 (1)
Апрель 2016 (1)
^
 
-->