[Из песочницы] «Аюша» — контроллер на процессоре 6502
Arduino, RaspberryPi, … Эти слова всё чаще встречаются в Сети в контексте создания управляющих контроллеров для всякого применения, от умного дома до мигания светодиодами. Несмотря на техническую навороченность, эти железки до ужаса скучные. Посудите сами: подал питание, загрузил программу, … и всё! А что делается внутри кремния, установленного на печатную плату — сие нам не ведомо. Или неинтересно? Поводом решения проблемы «неинтересности» стала любовь к процессору 6502, на котором собирались первояблоки и еще кое-кем помнимые «Агаты», а также кучка валяющихся без дела микросхем. Схем на этом процессоре в Интернете много, но тех, которые могли бы быть полезными в хозяйстве — практически нет. Результат работы — контроллер «Аюша», уже готовый захватывать управлять миром, помогать нам в любительской лаборатории, схемотехнику которого мы знаем, можем изменять по своим прихотям, и который в большинстве случаев применения заменяет *дуины и аналогичные борды.А почему именно 6502? Есть же 580ВМ80, Z80… ВМ80 не устраивает технически — три напряжения питания, второй претендент замороченно программируется… 6502 же очень прост в низкоуровневом программировании, хоть и имеет некоторые «непривычности», такие как страничная адресация памяти и отображение портов ввода/вывода на основную память. Однако при одинаковой тактовой частоте 6502 обгоняет Z80, а ВМ80 и подавно, имеет 258 регистров (да, 256 внешних, с упрощённой адресацией) и еще много кое-чего вкусного и интересного, в том числе и наработанного программного обеспечения.Итак, чем же опубликованные схемы нас не устроили? Самое главное — они все не имели портов ввода/вывода, через которые могли бы ощущать внешний мир и как-то им управлять. Значит добавляем в схему такой чип. Выбор широкий, но поскольку микропроцессорному комплекту 63хх/65хх/68хх как-то не повезло на 1/7 части суши, то останавливаемся на микросхеме 580ВВ55, имеющей три восьмибитных порта, к которым можно подключить практически любые датчики или управлять блоком реле либо иными коммутирующими схемами.Далее, в любительской лаборатории нужен звуковой и радиочастотный генератор. Для звуковых применений вспоминаем о трёхканальном таймере 580ВИ53. Теперь мы можем даже музицировать или использовать сформированные импульсы для синхронизации высокочастотного синтезатора.Поскольку нам до сих пор неизвестно, когда же закончится модернизация или её наполнение другими узлами, дополняем схему шинными буферами. Ах да, забыли о связи с хозяином, надо же как-то принимать от него команды и отвечать ему, что он где-то неправ. Для этого используем чип последовательного порта, в нашем случае под руками валялся 6850, но можно было использовать и 580ВВ51. По СОМ-порту контроллер может быть соединён с любым терминалом (хоть с телетайпным аппаратом) или управляться терминальной программой с любого компьютера (Hyperterminal с комплекта WindowsXP). Через последовательный порт контроллер воспринимает команды с клавиатуры внешнего устройства, кидает на внешний монитор свои сообщения, через него же заливаются программы для дальнейшего функционирования контроллера. А если использовать конвертер СОМ→Ethernet, то управлять «Аюшей» можно из любой части мира. Но это так, мечты…Всё! Со схемой определились, а поскольку нам пришлось очень много думать и нервничать, то надо успокоить нервы путём вязания МГТФом…
Вставляем готовый контроллер в корпус. Разумеется, что осталось место для дальнейшего расширения аппарата.
Основные коннекторы и ручки управления выносим на мордочку аппарата. Имеем три параллельных порта, два канала от таймера ВИ53, причём один канал может управляться другим, если это потребуется, СОМ-порт для терминала, выход питания терминала или внешних устройств, кнопка аппаратного сброса, индикатор питания и переключатель выбора прошивки ПЗУ.
Что у нас получилось по железу? Итак, процессор 6502, 1 МГц тактовой (планируется апгрейдить процессором 65С02 с тактовой частотой до 5 МГц — можно и больше, но, к сожалению, 580ВВ55 перестанет отвечать на раздражители), 47К ОЗУ, 64К ПЗУ, поделённое на 4 страницы по 16К. Всё это в небольшом корпусе и запитывается трёхамперным пятивольтовым адаптером от известной D-фирмы.
Хорошо, с железом мы определились, осталось оживить «Аюшу» с помощью встроенного программного обеспечения. Поскольку упомянутые в начале статьи *дуины используют диалект языка Си, то тут сам создатель велел, в честь пятидесятилетия, использовать язык программирования Бейсик. Поскольку в Сети есть ссылки, позволяющие создать свой диалект языка, используем их, и вот теперь «Аюша» общается с нами на нормальном староанглийском.
Вот и всё для начала, теперь мы можем «дёргать пинами» с помощью команды POKE, узнавать что случилось с помощью команды РЕЕК, сохранять результаты работы на «большого брата» и возложить какие-то функции на контроллер, упростив нашу жизнь.Следующим шагом проекта будет создание простого «железного» терминала (ведь как-то неинтересно для работы с малышом использовать мощный компьютер) с возможностью сохранения и загрузки программ на кассету/диктофон/сотовый телефон. Также этот терминал может быть полезен нам для работы с иными устройствами, программируемыми или общающимися с пользователями через последовательный порт. Но это будет уже другая история…
Ознакомиться с полным описанием «Аюши» можно на страничке проекта, www.qsl.net/rw6hrm/html/6502.htm. Там же будут выкладываться его модификации, новые узлы и программы, указаны источники информации для тех, кому нравится процессор 6502, откуда взять по нему начальную информацию. А если кто-то решить повторить схему, то прошу относится к ней как к сборнику идей, а не как к окончательному решению.