Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #45, АВГУСТ 2004 г.

Паяльник

Ne01eX (Ne01eX@rambler.ru)

Спецвыпуск Xakep, номер #045, стр. 045-098-1


http://www.alexhak.narod.ru

Рулезный бипер

Меня всегда раздражали обыкновенные дверные звонки. Ну что прикольного в простом звоне? Гораздо круче, когда звонок может приветствовать гостя или, наоборот, посылать его :).

Собственно набор звуков, равно как и применение сего девайса, ограничивается только твоей фантазией. Посмотри на схему, что на рис. 1. Испугался? Зря. Несмотря на порядочное количество компонентов, эта схема не сложнее схемы трубопровода в клозете, и сейчас я это тебе докажу. Обрати внимание, что она разбита на два узла – так ее и собирать проще, и отлаживать.

Итак, узел первый – цифровой (хотя правильнее было бы его назвать цифро-аналоговым). Обо все по порядку. А по порядку для порядка расположена микросхема DD1 и окружение из дискретных элементов. Если тебе интересно ее внутреннее устройство, взгляни на рис. 2.

В принципе, ничего сложного: четыре элемента 2И-НЕ, объединенных на одну подложку, из которых используются только два. На элементах DD1.1 и DD1.2 (а также R1, R2 и C1) собран тактовый генератор. Причем частоту на выходе (выв. 11) можно регулировать (резистором R2) в некоторых пределах, соответственно изменяя скорость воспроизведения звуков. Помимо скорости меняется и тональность. Вполне реально заставить бипер говорить как голосом Буратино, так и голосом Карабаса-Барабаса. Генерируемый генератором сигнал поступает через переключатель SA2 на один из входов счетчика DD2 (выв. 10). Вход называется «С» – сокращение от буржуйского слова «clock» (счет). Названия всех остальных выводов приведены на рис. 3.

Другим немаловажным входом является R (сокращение от слова «reset» – сброс) (выв. 11). Сигнал сброса формируется автоматически при подаче питания. И как результат симбиоза сигналов clock и reset – поочередное появление лог. 1 на выв. Q1-Q12 (сокращение от слова «quit» – выход). Это нужно для перебора адресов (А0-А11) программируемой микросхемы памяти DS1. Всех, кроме самого старшего. В нашем случае старшим адресом микросхемы является A12. Это сделано специально для того, чтобы ты мог оперативно выбрать (кнопкой SA1) воспроизводимый фрагмент. Скажем, если ты дома – звонок всех приветствует, ушел – всех посылает...

Но прежде чем что-либо программировать, давай сначала попытаемся понять, как устроено ПЗУ и как, собственно, происходит процесс записи/считывания. Нам, в принципе, не важно, что находится внутри ПЗУшки (ничего интересного – куча полевых транзисторов с плавающим затвором :-)), главное, что ее выводы делятся на четыре группы. Первая группа – питание микросхемы. В нее помимо +Ucc и GND входит напряжение программирования Upp. Напряжение программирования у разных микросхем различно, но всегда пишется на корпусе вместе с маркировкой (в нашем случае +12,5 В). Естественно, что без подачи этого напряжения ни о какой записи не может быть и речи.

Во вторую группу входят управляющие сигналы. Они представлены в табл. 1.

Uwp (иначе PGM – разрешение программирования) – при подаче лог. 1 на данный вывод происходит блокировка записи. Соответственно, для разрешения программирования необходимо соединить этот вывод с общим проводом.

Содержание  Вперед на стр. 045-098-2