Окончание
Начало читайте здесь:
Часть 1 – Принципиальная схема
Одинец Александр Леонидович, г. Минск, Беларусь
E-mail: [email protected]
Принцип работы
При включении питания запускается НЧ-генератор, собранный на элементах DD1.1, DD1.2, с частотой около 10 Гц и далее все время работает непрерывно. Положительный перепад каждого выходного импульса этого генератора через дифференцирующую цепочку C2R3 воздействует на вход элемента DD2.3 и, после инвертирования, в виде коротких отрицательных импульсов – на вход RS-триггера (вывод 9), собранного на элементах DD2.1, DD2.2, устанавливая его в условное единичное состояние. Высокий уровень с выхода (вывод 8 элемента DD2.1 – условно назовем его «прямым») этого триггера разрешает работу ВЧ-генератора, собранного на элементах DD1.3, DD1.4, который формирует пачку из 64-ти импульсов, соответствующую выдаче в линию данных последовательного интерфейса 16 бит информации. Кодовые комбинации с выхода счетчика DD4.2 опрашивают адресные входы мультиплексора DD7 и вызывают прохождение с выходов D0-D7 РПЗУ DD5 на выход DD7 информации, записанной по адресам, задаваемым на выходах адресного счетчика DD3.
В момент включения питающего напряжения счетчики DD3, DD4.1, DD4.2 устанавливаются в нулевое состояние, благодаря короткому положительному импульсу, формирующемуся на выходе буферного элемента DD2.4. RS-триггер (DD2.1-DD2.2) при этом может установиться с равной вероятностью, как в единичное, так и в нулевое состояние. Поскольку частота ВЧ-генератора многократно превосходит частоту НЧ-генератора, то в случае возможной установки RS-триггера в единичное состояние произойдет «несанкционированный» запуск первого генератора и выдача 64 импульсов до момента формирования первого короткого отрицательного импульса на выходе элемента DD2.3 (считая с момента включения питания). Но последовательность считывания слов данных, в этом случае, не нарушится, поскольку, благодаря счетчикам DD4.1 и DD4.2 в регистры будет передано именно 16 бит данных, соответствующих первому и второму словам РПЗУ, записанным по «нулевому» (0000h) и «первому» (0001h) адресам соответственно. Затем, уже по отрицательному перепаду действительного (правильного) отрицательного импульса с выхода элемента DD2.3, санкционирующего запуск ВЧ-генератора, будут считаны и переданы в регистры третье (0002h) и четвертое (0003h), потом пятое (0004h) и шестое (0005h) слова данных и так далее. В случае установки RS-триггера (при включении питания) в нулевое состояние (на прямом выходе (вывод 8) уровень нуля) работа ВЧ-генератора будет запрещена и на его выходе (вывод 8 элемента DD1.4) установится уровень нуля. Первым отрицательным перепадом с выхода элемента DD2.3 RS-триггер будет установлен в единичное состояние и работа ВЧ-генератора будет разрешена.
Поскольку на входах A1-A3 мультиплексора DD7 в начальный момент времени установлены уровни «нулей», то на его выход пройдет бит данных с входа D0 (вывод 4). По завершению отрицательного импульса на выходе DD6.2 (вывод 6) этот бит будет записан в первую ячейку регистров DD9, DD12 положительным перепадом на их входах синхронизации «C» (выводы 12). Так как регистры DD9, DD10, DD12, DD14 работают в режиме параллельного сдвига информации вправо, то синхронно с записью бита данных в первый разряд DD9, DD12 произойдет сдвиг содержимого всех разрядов регистров DD9, DD10, DD12, DD14 в направлении возрастания номеров их выходов.
Одновременно, уровень логической единицы, установленный на условно прямом выходе RS-триггера DD2.1-DD2.2 (вывод 8 – DD2.1), приведет к выключению выходов регистров DD9, DD10, а после инвертирования элементами DD8.5, DD8.6, DD11.3, DD13.3, – и выходов регистров DD12, DD14 на время загрузки текущей светодинамической комбинации. Это необходимо для предотвращения эффекта мерцания даже малоинерционных светодиодов.
Спад первого положительного импульса с выхода ВЧ-генератора DD1.3, DD1.4 приведет к увеличению состояния счетчика DD4.1 на единицу. Третий отрицательный перепад с выхода ВЧ-генератора приведет к записи в регистры DD9, DD12 первого бита информации с одновременным сдвигом содержимого разрядов всех регистров в направлении их возрастания. По спаду четвертого импульса произойдет переключение входов D0-D7 мультиплексора DD7 и смена информации на линии данных, благодаря увеличению состояния счетчика DD4.2 на единицу. По спаду 32-го положительного импульса ВЧ-генератора, счетчик DD4.2 перейдет в восьмое состояние и на выходе его третьего разряда (вывод 13) будет сформирован отрицательный перепад, означающий завершение формирования очередного положительного импульса на этом выходе счетчика. Этот перепад приведет к увеличению состояния счетчика DD3 на единицу и началу считывания второго байта (второй серии из 8-ми бит) информации с выходов D0-D7 РПЗУ DD5. По спаду 64-го положительного импульса ВЧ-генератора, завершится загрузка текущей светодинамической комбинации в регистры DD9, DD10 и DD12, DD14. Одновременно, спад 64-го импульса с выхода ВЧ-генератора приведет к появлению отрицательного перепада на четвертом выходе счетчика DD4.2 (вывод 14) и установке RS-триггера в исходное нулевое состояние. На его прямом выходе (вывод 8 – DD2.1) будет установлен уровень логического нуля, который запретит работу ВЧ-генератора. Этот же низкий уровень приведет к переключению выходов регистров в активное состояние, и текущая светодинамическая комбинация будет отображаться до момента очередного отрицательного перепада на выходе элемента DD2.3. В результате многократного повторения описанной выше процедуры происходит последовательная передача 16-битных пакетов по линии данных последовательного интерфейса и воспроизведение светодинамических комбинаций, записанных в ИМС РПЗУ по двум последовательным адресам. Поскольку время загрузки светодинамических комбинаций в регистры очень мало (всего 0.64 мс при частоте ВЧ-генератора 100 кГц, что выше частоты синхроимпульсов в 4 раза, поскольку на каждый из них приходится 4 импульса ВЧ-генератора), то смена комбинаций происходит визуально незаметно, а кратковременное переключение выходов регистров в третье состояние, как отмечалось ранее, полностью исключает эффект мерцания даже малоинерционных светодиодов.
Для формирования импульсов синхронизации регистра использован дешифратор на элементе ИСКЛЮЧАЮЩЕЕ ИЛИ DD6.1. Это позволило «привязать» длительность импульсов к частоте ВЧ-генератора и легко изменять ее резистором R8. Необходимость в этой регулировке возникает при работе контроллера на очень длинные линии связи в условиях повышенного уровня шумов. (С увеличением длины соединительной линии возрастает амплитуда помехи, наводимой смежными проводниками.) При длине линии до 10 м частота импульсов ВЧ-генератора соответствует максимальному значению (100 кГц) и движок резистора R8 устанавливается в положение соответствующее минимальному сопротивлению. Следует особо подчеркнуть, что моменты изменения логических уровней на линии синхронизации равноудалены друг от друга (см. временную диаграмму на Рис. 2), что соответствует скважности синхроимпульсов равной двум (меандр). Это необходимо для полного завершения переходных процессов в линии связи к моменту записи данных и исключения ложного срабатывания регистров. Применение мощных буферных элементов на основной плате контроллера типа КР1554ТЛ2 (74AC14) обеспечивает быструю перезарядку паразитных емкостей линии, что увеличивает крутизну фронтов импульсов, передаваемых по линии связи, и повышает помехоустойчивость при работе на длинные несогласованные линии.
![]() |
|
Рисунок 2. | Временная диаграмма формирования импульсов синхронизации |
Конструкция и детали
Контроллер собран на печатной плате из двухстороннего стеклотекстолита размерами 80×130 мм и толщиной 1.5 мм (Рис. 3), а выходные регистры – 25 × 80 мм (Рис. 5). Схема электрическая принципиальная одного выходного регистра показана на Рис. 4. В устройстве применены постоянные резисторы типа МЛТ-0,125, подстроечные – СП3-38б в горизонтальном исполнении, конденсаторы неполярные (С1-С5) типа К10-17, оксидные (С6-С11) – К50-35. На основной плате контроллера установлены светодиоды типа АЛ307 стандартной яркости, а в выносной гирлянде – сверхъяркие четырех цветов КИПМ15 диаметром 10 мм, размещенные в чередующейся последовательности. Учитывая различие в падении напряжения на прямо смещенных светодиодах (для красного и желтого это значение составляет 2.1 В, а для синего и зеленого – 3.0 В), необходимо включать соответствующие ограничительные резисторы: 220 и 150 Ом. Для управления мощной нагрузкой выходные регистры нужно дополнить транзисторными или симисторными ключами. РПЗУ КР573РФ5 заменима КР573РФ2. Возможно применение непосредственно на месте РПЗУ микросхемы памяти с электрическим стиранием (ЭСППЗУ) типа AT28C16-15PI без изменения рисунка печатной платы. Счетчик КР1564ИЕ20 (74HC4040N) можно заменить КР1561ИЕ20 (CD4040BN), но при этом токоограничительные резисторы R9…R12 нужно увеличить в три-четыре раза. Мультиплексор DD7 КР1564КП7 (74HC151) заменим КР1564КП15 (74HC251). Регистры DD9, DD10 типа КР1564ИР24 (74HС299), используемые на основной плате контроллера, можно заменить КР1554ИР24 (74AC299), а также КР1533ИР24. Поскольку микросхемы ТТЛШ-структуры КР1533ИР24 (SN74ALS299) потребляют достаточно большой ток даже в статическом режиме (около 35 мА), в удаленных (выходных) регистрах рекомендуется использовать регистры КМОП-структуры типа КР1554ИР24 (74AC299). Соединительная линия при длине до 10 м выполняется жгутом из 4 многожильных проводников сечением 0.35 мм2 (для сигнальных линий) и 1 мм2 («общий» провод) в изоляции и заканчивается 9-контактной вилкой типа DB-9. На печатной плате установлен ответный разъем XN1 (на схеме не показан).
![]() |
|
Рисунок 3. | Топология печатной платы |
![]() |
|
Рисунок 4. | Схема электрическая принципиальная выходного регистра |
|
|
Рисунок 5. | Топология печатной платы выходного регистра |
Количество элементов гирлянды может достигать нескольких десятков (их удобно увеличивать кратно восьми) без существенного изменения протокола последовательного интерфейса. Необходимо лишь установить требуемое количество регистров и соответственно изменить число тактовых импульсов синхронизации. Естественно нужно учитывать изменение диапазона адресов РПЗУ, соответствующего одной светодинамической комбинации. Если нужно управлять гирляндой, число элементов которой превышает сотню, придется использовать дополнительные буферные регистры. При этом передача данных в буферные регистры будет производиться с более низкой тактовой частотой, а в выходные регистры, подключенные к их выходам, данные будут переписываться после завершения цикла передачи данных в буферные. Естественно, при этом потребуется некоторое усложнение протокола.
Подготовка устройства к работе заключается в написании управляющего кода светодинамических эффектов с использованием Табл. 1 по приведенной ниже методике и занесении его в РПЗУ с помощью стандартного программатора.
Таблица 1.
BIN
|
HEX
|
|
BIN
|
HEX
|
0000 0000
|
00
|
|
0000 0000
|
00
|
0000 0001
|
01
|
|
0001 0000
|
10
|
0000 0010
|
02
|
|
0010 0000
|
20
|
0000 0011
|
03
|
|
0011 0000
|
30
|
0000 0100
|
04
|
|
0100 0000
|
40
|
0000 0101
|
05
|
|
0101 0000
|
50
|
0000 0110
|
06
|
|
0110 0000
|
60
|
0000 0111
|
07
|
|
0111 0000
|
70
|
0000 1000
|
08
|
|
1000 0000
|
80
|
0000 1001
|
09
|
|
1001 0000
|
90
|
0000 1010
|
0A
|
|
1010 0000
|
A0
|
0000 1011
|
0B
|
|
1011 0000
|
B0
|
0000 1100
|
0C
|
|
1100 0000
|
C0
|
0000 1101
|
0D
|
|
1101 0000
|
D0
|
0000 1110
|
0E
|
|
1110 0000
|
E0
|
0000 1111
|
0F
|
|
1111 0000
|
F0
|
В связи с тем, что длина светодинамической комбинации составляет 16 бит, каждой комбинации соответствуют два байта информации в шестнадцатеричном коде.
Из таблицы видно, что одновременному включению всех светодиодов соответствуют две двоичные комбинации «00000000», или две шестнадцатеричные комбинации «00», считанные по двум последовательным адресам РПЗУ. Соответственно, одновременному выключению всех светодиодов отвечают две загруженные в регистры комбинации «11111111» в двоичном коде или две комбинации «FF» в шестнадцатеричном.
Для примера в Табл. 2, приведен фрагмент кода, соответствующий эффекту «Бегущий огонь».
Таблица 2.
Адрес ячейки
РПЗУ: A10-A0 |
BIN-код
на D7-D0 |
HEX-код
|
Адрес ячейки
РПЗУ: A10-A0 |
BIN-код
на D7-D0 |
HEX-код
|
|
000000 00000
|
1111 1111
|
FF
|
000000 10000
|
0111 1111
|
7F
|
|
000000 00001
|
0111 1111
|
7F
|
000000 10001
|
1111 1111
|
FF
|
|
000000 00010
|
1111 1111
|
FF
|
000000 10010
|
1011 1111
|
BF
|
|
000000 00011
|
1011 1111
|
BF
|
000000 10011
|
1111 1111
|
FF
|
|
000000 00100
|
1111 1111
|
FF
|
000000 10100
|
1101 1111
|
DF
|
|
000000 00101
|
1101 1111
|
DF
|
000000 10101
|
1111 1111
|
FF
|
|
000000 00110
|
1111 1111
|
FF
|
000000 10110
|
1110 1111
|
EF
|
|
000000 00111
|
1110 1111
|
EF
|
000000 10111
|
1111 1111
|
FF
|
|
000000 01000
|
1111 1111
|
FF
|
000000 11000
|
1111 0111
|
F7
|
|
000000 01001
|
1111 0111
|
F7
|
000000 11001
|
1111 1111
|
FF
|
|
000000 01010
|
1111 1111
|
FF
|
000000 11010
|
1111 1011
|
FB
|
|
000000 01011
|
1111 1011
|
FB
|
000000 11011
|
1111 1111
|
FF
|
|
000000 01100
|
1111 1111
|
FF
|
000000 11100
|
1111 1101
|
FD
|
|
000000 01101
|
1111 1101
|
FD
|
000000 11101
|
1111 1111
|
FF
|
|
000000 01110
|
1111 1111
|
FF
|
000000 11110
|
1111 1110
|
FE
|
|
000000 01111
|
1111 1110
|
FE
|
000000 11111
|
1111 1111
|
FF
|
Таким образом, последовательность, соответствующая одному эффекту «Бегущий огонь», в шестнадцатеричном коде будет выглядеть следующим образом:
«FF 7F FF BF FF DF FF EF FF F7 FF FB FF FD FF FE 7F FF BF FF DF FF EF FF F7 FF FB FF FD FF FE FF».
Пример кода управляющей программы, написанный по данной методике, приведен в Табл. 3. К примеру, здесь по адресам: 0000h-001Fh (первые две строки) расположен эффект «Бегущий огонь». Также эта «прошивка» в виде готового к программированию РПЗУ двоичного файла доступна по ссылке [2].
Прежде чем запрограммировать микросхему РПЗУ, текстовый файл программы необходимо конвертировать в двоичный формат с помощью соответствующего программного обеспечения [3]. Естественно, при написании программного кода по приведенной методике не исключены ошибки, которые могут быть связаны, например, с невнимательностью разработчика. Как упоминалось выше, с целью гарантировать от записи неправильного кода в РПЗУ, в среде Delphi 7.0 разработана специальная программа Виртуального симулятора («Light Effects Reader»), позволяющая «просмотреть» сформированный бинарный файл перед записью в РПЗУ, т.е. эмулировать работу устройства на экране компьютера. Это позволит избежать возможных ошибок, которые могут быть допущены при разработке программного кода. Данная программа также доступна по ссылке [2].
Литература и ссылки на ресурсы Интернет
- Зельдин Е. А. Цифровые интегральные микросхемы в информационно-измерительной аппаратуре. – Ленинград. Энергоатомиздат, 1986, с.76-77.
- http://dynamic-lights.narod.ru/LightEffectsReader.rar
- http://www.winhex.com