Светодиодная гирлянда на микросхеме 27с512

В сети интернет есть много статей где описывается как помигать светодиодом на основе простейшего контроллера и небольшой программки к нему.

Сегодня мы будем делать почти то же самое но по взрослому. Будем мигать сразу аж восьмью светодиодами, используя за основу микросхему памяти, последовательный еепром 27с512 или 27с256 и им подобные.

Почему именно эту микросхему?

Во-первых, это почти классика электронного жанра. Даная серия отлично работает на низкой частоте. Она довольно распространена. Ее можно достать из старого ПК где она используется в качестве БИОС.

Также такие микросхемы стоят в старых игровых приставках, кассовых аппаратах, электронных весах, старых автомобилях и прочих раритетах электроники. То есть микросхема не дефицит и её не нужно выписывать почтой из соседнего города.

Второй важный момент в том что написать программу для этого устройства очень просто. Не нужно знать ни каких языков программирования и прочих премудростей и тонкостей в работе с программами.

Если вы ещё не написали своей программы то это не беда, можно взять БУ микросхему 27с512 с любым записанным содержимым и она будет работать.

Правда, переключения светодиодов будут не по плану, но всё же будут. Это хорошо так как сразу можно проверить устройство в работе. Ну и самое главное это практический урок по работе с параллельной епром.

Прежде чем приступить к описанию схемы, расскажу тем кто не знает что из себя представляет микросхема памяти 27с512. Я думаю что у многих радиолюбителей эти микросхемы пылятся в ожидании своего часа. Час пробил!

i0013rp 2510295

И так, внутри микросхемы расположены ячейки памяти, таких ячеек в микросхеме около 70 тысяч , мы используем половину из возможного. В нашем случае они будут по очереди переключатся от одной к другой, в каждой ячейке прописано число от 0 до 255.

Одно такое число появляется по команде на 8 выходах микросхемы в виде обычного двоичного сигнала примерно такого вида: 11010110 . Ноль это выключено а единица включено, 0 — светодиод погашен, 1 — горит.

Проще говоря мы поочерёдно будем задавать состояние на 8 выходах микросхемы к которым подключены 8 светодиодов.

Что нам нужно из железа: Светодиоды, микросхема таймер NE555 или любой аналог, что бы на ее базе сделать генератор импульсов 5-10 герц. Как альтернативу возможно использовать генератор на микросхемах отечественной и зарубежной стандартной логики 155, 174, 555, 74HC, CD400.

Микросхема двоичный счётчик CD4020 что бы переключать кодом ячейки в 27с512.

Тут как замена может быть любой аналогичный двоичный счетчик с переключением по входному импульсу типа К561ИЕ16 или 74HC4040(CD4040). Сама память 27с512, можно взять и 27с256 с чуть меньшим объёмом памяти так как в реалии мы всё равно не используем полную ёмкость микросхемы.

Микросхема токовых ключей ULN2803 для развязки, мы не можем напрямую зацепить светодиоды к 27с512 и за слабого выходного тока этой микросхемы. ULN2803 применяются в стиральных машинах, автосигнализациях и другой технике.

Возможно использовать распространённую на старых материнских платах 74F244 (74HC244). Выходной ток этой микросхемы правда по меньше чем у 2803 но нам хватит. Для токового ограничения последовательно на каждый светодиод нам понадобятся 8 резисторов по 100 Ом. Это для светодиодов с током в 30 миллиампер Я нашел две резисторные сборки 4 резистора по 74 Ома стояли на старой материнке и добавил один общий резистор на 30 Ом.

Питается весь девайс от 5 вольт, в качестве источника питания я применил адаптер зарядки от старого телефона Самсунг. Устройство потребляет около 100 мА. Собрано устройство на макетной плате, соединения выполнены проводами от компьютерного шлейфа. Вот и готовое устройство:

i0022rp 5625101

i0038rp 1 3533910

Схема данного устройства:

i0035rp 3617634

Защита от помех и емкостные развязки по питанию не нужны, схема низкочастотная. Единственное неиспользуемые входы А11-А15 на 27С512 нужно заземлить как на схеме, иначе микросхема будет фонить. Резистором RV1 устанавливается частота переключений.

Не забываем подать питание 5 вольт на микросхемы U2, U3 На схеме не обозначено. Токовые ключи 2803 берут только минус питания на 9 ногу. 27с512 — плюс 28 нога, минус 14 нога. Счетчик 4020 — плюс 16 нога, минус 8 нога.

Ещё один вариант схемы на других элементах, применены 74LS04; 74HC4040; 27C265; 74HC244. Схему можно комбинировать в любых вариациях. Допустим взять основу из первой схемы и добавить выходную микросхему 74HC244 из второй.

Внимание: микросхемы 27с512 и 27с256 в обоих схемах полностью взаимозаменяемы без изменения монтажа. Работают в схемах как новые электростираемые микросхемы так и старые микросхемы с окошком для УФ стирателя.

i0029rp 1 5359787

Питание микросхем 5 вольт: 74LS04 минус 7 нога плюс 14 нога. 74HC4040 плюс 16 нога минус 8 нога. 27c265 плюс 28 нога минус 14 нога. 74HC244 плюс 20 нога минус 10 нога.

Со схемой разобрались переходим к программированию:

Нам понадобится таблица перевода двоичного кода в десятичный, и любой hex редактор что бы создать программный код. И ещё нужно немного терпения, так как всё это делается не так быстро как бы хотелось.

Вот собственно схема перевода двоичного кода в шестнадцатеричный, с которой будем работать:

i0030rp 4581386

Что это такое? Что бы не морочить вам голову объясню по простому: У нас на принципиальной схеме находятся четыре светодиода вверху и четыре внизу.
С лева в колонках схемы перевода чисел у нас состояние светодиодов, а с права то что мы будем писать в HEX таблицу самой программы.

Допустим у нас все верхние светодиоды погашены 0000 пишем 0, а нижние светодиоды горят только по краям 1001 пишем 9. И того у нас получился код 09. Открываем файл программы для 27с512 в HEX редакторе и прописываем наш код 09 по адресу 000000, то есть в верхний левый угол.

Далее таким же образом пишем следующий код правее потом ещё и ещё, то что у нас получится должно выглядеть примерно так:

i0033rp 3721837

Первая цифра в клеточке состояние верхних светодиодов, вторая состояние нижних. Микросхема по очереди с лева на право будет выдавать то что прописано в клетках HEX таблицы на свои выходы, и зажигать нам светодиоды в соответствующих записям комбинациях.

Как задать изменение скорости?

Очень просто, если хотим удлинить время свечения одной из комбинаций то повторяем тот же код в следующих клетках HEX таблицы.
В приведённой таблице дан пример двух скоростей переключения.

Левый верхний угол: FF FF — Все светодиоды горят, время продлено на одну ячейку. 99 99 — горят угловые светодиоды. 66 66 — горят светодиоды в центре. Далее повтор комбинации. 99 99 66 66, затем гашение всех светодиодов код 00.

Потом:10 20 40 80….. — бегущая точка, время свечения сократилось до одной ячейки.

Чтобы вам не искать долго файл для открытия в HEX Редакторе, Наберите в поисковике «прошивка 27с512». Ищите файл в формате HEX и открывайте его в HEX редакторе.

Когда вы прописали все 30000 клеточек (на самом деле это очень долго, по этому пишите сколько сможете а потом делайте повтор кода и заполняйте так всю таблицу), вам нужно сохранить вашу работу в файле то же в формате HEX.

Далее нужно все это дело влить программатором в микросхему памяти 27с512.

Если у вас нет такого программатора это поправимо, одевайте шорты, завязывайте на шею пионерский галстук, берёте микросхему, файл прошивки и выдвигайтесь в соседнюю контору по ремонту кассовых аппаратов или другой электронной техники. Даже на авторемонте сегодня есть подобные программаторы.

Особо талантливые могут записать микросхему 27С512 на стареньком ПК в сокете БИОС. В интернет есть подробные инструкции к этому делу. Удачного конструирования.

Как вам статья?

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Записки радиолюбителя
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: