В сети интернет есть много статей где описывается как помигать светодиодом на основе простейшего контроллера и небольшой программки к нему.
Сегодня мы будем делать почти то же самое но по взрослому. Будем мигать сразу аж восьмью светодиодами, используя за основу микросхему памяти, последовательный еепром 27с512 или 27с256 и им подобные.
Почему именно эту микросхему?
Во-первых, это почти классика электронного жанра. Даная серия отлично работает на низкой частоте. Она довольно распространена. Ее можно достать из старого ПК где она используется в качестве БИОС.
Также такие микросхемы стоят в старых игровых приставках, кассовых аппаратах, электронных весах, старых автомобилях и прочих раритетах электроники. То есть микросхема не дефицит и её не нужно выписывать почтой из соседнего города.
Второй важный момент в том что написать программу для этого устройства очень просто. Не нужно знать ни каких языков программирования и прочих премудростей и тонкостей в работе с программами.
Если вы ещё не написали своей программы то это не беда, можно взять БУ микросхему 27с512 с любым записанным содержимым и она будет работать.
Правда, переключения светодиодов будут не по плану, но всё же будут. Это хорошо так как сразу можно проверить устройство в работе. Ну и самое главное это практический урок по работе с параллельной епром.
Прежде чем приступить к описанию схемы, расскажу тем кто не знает что из себя представляет микросхема памяти 27с512. Я думаю что у многих радиолюбителей эти микросхемы пылятся в ожидании своего часа. Час пробил!
И так, внутри микросхемы расположены ячейки памяти, таких ячеек в микросхеме около 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 мА. Собрано устройство на макетной плате, соединения выполнены проводами от компьютерного шлейфа. Вот и готовое устройство:
Схема данного устройства:
Защита от помех и емкостные развязки по питанию не нужны, схема низкочастотная. Единственное неиспользуемые входы А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 в обоих схемах полностью взаимозаменяемы без изменения монтажа. Работают в схемах как новые электростираемые микросхемы так и старые микросхемы с окошком для УФ стирателя.
Питание микросхем 5 вольт: 74LS04 минус 7 нога плюс 14 нога. 74HC4040 плюс 16 нога минус 8 нога. 27c265 плюс 28 нога минус 14 нога. 74HC244 плюс 20 нога минус 10 нога.
Со схемой разобрались переходим к программированию:
Нам понадобится таблица перевода двоичного кода в десятичный, и любой hex редактор что бы создать программный код. И ещё нужно немного терпения, так как всё это делается не так быстро как бы хотелось.
Вот собственно схема перевода двоичного кода в шестнадцатеричный, с которой будем работать:
Что это такое? Что бы не морочить вам голову объясню по простому: У нас на принципиальной схеме находятся четыре светодиода вверху и четыре внизу.
С лева в колонках схемы перевода чисел у нас состояние светодиодов, а с права то что мы будем писать в HEX таблицу самой программы.
Допустим у нас все верхние светодиоды погашены 0000 пишем 0, а нижние светодиоды горят только по краям 1001 пишем 9. И того у нас получился код 09. Открываем файл программы для 27с512 в HEX редакторе и прописываем наш код 09 по адресу 000000, то есть в верхний левый угол.
Далее таким же образом пишем следующий код правее потом ещё и ещё, то что у нас получится должно выглядеть примерно так:
Первая цифра в клеточке состояние верхних светодиодов, вторая состояние нижних. Микросхема по очереди с лева на право будет выдавать то что прописано в клетках 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 на стареньком ПК в сокете БИОС. В интернет есть подробные инструкции к этому делу. Удачного конструирования.
Как вам статья?
Не подскажите, какой выходной ток у ППЗУ_шек? Нигде не могу найти инфу..((
Здраствуйте уважаемый .А скажите пожалуйсто как прога называется в которой программу писать можно на эти ппзу ?у вас ее фото здесь есть а названия ее нету.жду вашего ответа.за ранее спасибо .
Здраствуйте! В статье упоминается использование HEX редактора для программирования микросхемы, но конкретное название программы не указано. Для работы с ППЗУ (постоянным запоминающим устройством) можно использовать любой HEX редактор, который позволяет редактировать содержимое в шестнадцатеричном формате. В статье представлены скриншоты из такой программы, но без упоминания её названия. Вы можете выбрать HEX редактор на своё усмотрение, основываясь на совместимости с вашей операционной системой и личных предпочтениях.