Оглавление:
- Запасы
- Шаг 1: монтажная плата
- Шаг 2: теория программирования
- Шаг 3: программа и вывод Arduino
- Шаг 4: Заключение
Видео: Минимальный компьютер 6502 и 6522 (с Arduino MEGA), часть 2: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Следуя моему предыдущему Instructable, я теперь поместил 6502 на стрип-плату и добавил универсальный интерфейсный адаптер 6522 (VIA). Опять же, я использую версию 6522 для WDC, так как она идеально подходит для их 6502. Эти новые чипы не только потребляют гораздо меньше энергии, чем исходные версии MOS, но и могут работать на более медленных скоростях или даже в пошаговом режиме. прога без проблем.
Программа Arduino была изначально написана Беном Етером (у которого есть много видео на YouTube) и была изменена мной для достижения этого результата.
Запасы
1 x WDC W65C02 процессор
Универсальный интерфейсный адаптер WDC W65C22 - 1 шт.
1 x 74HC00N IC (четырехканальный логический элемент NAND с 2 входами) или аналогичный
1 х 10 см шириной (35 линий) полосовая доска
2 x 40-контактных разъема DIL
1 x 14-контактное гнездо DIL
Контакты заголовка печатной платы 2,54 мм
Гнезда для печатных плат 2,54 мм
1 x 12 мм мгновенный тактильный кнопочный переключатель, установленный на печатной плате SPST или аналогичный
1 резистор 1 кОм
1 резистор 3 кОм
2 керамических конденсатора по 0,1 мкФ
1 x 8-полосный водяной светильник 5 мм, красный светодиод
Разноцветный провод для подключения
8 проводов папа - папа
Шаг 1: монтажная плата
Печатная плата довольно компактна, и ее нижняя часть подключается непосредственно к Arduino MEGA. Для этого штыри вставляются как можно глубже в пластиковые держатели перед тем, как припаять их к нижней стороне платы. Для этого можно было бы использовать более длинные штыри, но стандартные штифты означают, что плата надежно опирается на MEGA.
Я выстроил микросхемы 6502 и 6522 так, чтобы они использовали дорожки на плате для подключения к MEGA. Есть также некоторые соединения для 6502, скрытые под IC. При изготовлении платы первое, что нужно было сделать, - это разрезать 16 полосок, которые будут подключаться к двойному ряду разъемов Arduino. Внешние 2 не нужно обрезать, так как 5v и Gnd находятся с обеих сторон. Затем припаяйте 2 ряда по 18 контактов на нижней стороне и 2 ряда по 18 гнезд на верхней стороне.
После этого припаивались гнезда DIL и между ними прорезались дорожки. Я мог бы сохранить соединение, разместив контакт 14 74HC00 на той же дорожке, что и 5v. Дорожки я вырезал только тогда, когда был уверен, что они нужны, пока паял соединительные провода. Однако не всегда все идет по плану, я изначально проектировал стрип-плату из предыдущего макета, используя контакты 2, 3 и 7 Arduino, но они не совпадают с отверстиями в стрип-плате, поэтому пришлось использовать контакты 18, 31 и 37. Отсюда ссылки на моей плате 31 и 37. Вы можете задаться вопросом, почему я не использовал один из неиспользуемых контактов (23, 24 и т. д.) для часов, потому что они не поддерживают прерывания, поэтому пришлось использовать контакты 18, 19, 20 или 21, которые работают. К счастью, эти 4 контакта совпадают с отверстиями на плате и сохраняют компактность. Контакт 18 также находится дальше всего от всех остальных проводов.
Вы также можете заметить, что моя готовая доска не совсем такая же, как моя диаграмма. Это потому, что я следовал чьей-то диаграмме. Отсюда и подключения к 74HC00. Я также добавил светодиод питания и дополнительные 2 ряда розеток для Gnd и 5 В, а также еще пару конденсаторов.
Я мог бы подключить 2 разъема для передачи данных, но это означало бы, что через плату будет пересекать намного больше проводов. Я выбрал 8-канальные провода, чтобы сделать это в качестве временной меры.
У портов 6522 A и B есть гнезда, припаянные к их дорожкам, так что светодиоды могут быть легко вставлены.
Проводов теперь намного меньше, чем было на макетной версии.
Шаг 2: теория программирования
6522 имеет два порта ввода / вывода, а также множество других функций, но порты A и B легко доступны. Для вывода данных на порт необходимо соответствующим образом настроить регистр направления данных (DDR) и отправить данные на сам порт.
С вышеупомянутой настройкой 6522 стоит E000 $.
Для вывода данных на порт B DDR по адресу $ E002 устанавливается в $ FF (255 - все выходы), и данные отправляются в $ E000.
Для вывода данных на порт A DDR на $ E003 устанавливается в $ FF (255 - все выходы), и данные отправляются на $ E001.
Приведенный ниже код загружает $ FF в регистр 6502 A и записывает его в DDR B по адресу $ E002. Затем он загружает 55 долларов и записывает их в ORB. Код поворачивается (дает $ AA) и записывается в ORB. Программа возвращается на 1005 долларов и повторяется бесконечно. ПРИМЕЧАНИЕ: DDR необходимо инициализировать только один раз.
Адрес Hexdump Dissassembly
$ 1000 a9 ff LDA # $ ff $ 1002 8d 02 e0 STA $ e002 $ 1005 a9 55 LDA # 55 $ 1007 8d 00 e0 STA $ e000 $ 100a 6a ROR A $ 100 млрд 8d 00 e0 STA $ e000 $ 100e 4c 05 10 JMP 1005 долларов США
$ 55 в двоичном формате - это 010101010, а $ AA - 10101010, что приводит к тому, что светодиоды чередуются: 4 горит и 4 гаснут.
Быстрое и грязное исправление:
Замените 74HC00 (Quad 2 input NAND Gate) на 74HC08 (Quad 2 input AND Gate), и 6522 теперь стоит 6000 долларов вместо E000. Это перемещает его из верхних 32K в нижние 32K адресуемой памяти 6502.
Шаг 3: программа и вывод Arduino
Поскольку у 6502 нет ОЗУ для чтения, Arduino предоставляет программу для чтения. Когда тактовый импульс обнаружен на выводе 18, Arduino передает программные данные на шину данных (выводы Arduino 39, 41, 43, 45, 47, 49, 51 и 53). 6502 генерирует свои собственные адреса, которые контролируются Arduino только на четных выводах с 22 по 52. Arduino также подает тактовый импульс на вывод 37. Линия чтения / записи 6502 контролируется на выводе 31.
Поскольку Arduino предоставляет данные, до сих пор не удалось заставить 6502 вводить данные из VIA (если вы не знаете лучше).
Программа Arduino находится ниже, а пример вывода последовательного монитора - выше.
Шаг 4: Заключение
Я снова попытался показать, как настроить минимальный "компьютер 6502".
На этом этапе 6502 все еще полагается на Arduino, чтобы предоставить ему программу и тактовый импульс для его работы.
Это на шаг дальше, чем когда я устанавливал его на макетной плате.
В этот раз я не использовал 74HC373, а более сложный 6522 для фиксации выходных данных. Также 6522 имеет два порта ввода / вывода.
Я намерен продолжить этот проект, установив SRAM или EEPROM.
Рекомендуемые:
Arduino-tomation, часть 5: LE TUNNEL DE CHAUFFE: 4 шага
Arduino-tomation, часть 5: LE TUNNEL DE CHAUFFE: Два месяца назад я решил модернизировать небольшую забытую систему, хранившуюся на складе в том месте, где я работаю. Эта система была создана для нагрева и нагрева электронных устройств или чего-то еще, что подвергалось особой высокой температуре. сопротивляться конвейерной ленте. Поэтому я создал
6502 Minimal Computer (с Arduino MEGA), часть 3: 7 шагов
6502 Minimal Computer (с Arduino MEGA) Часть 3: Двигаясь дальше, я добавил восьмеричную защелку, 8 прямоугольных светодиодов и матрицу резисторов 220 Ом на основную плату. Также имеется перемычка между общим выводом массива и землей, чтобы светодиоды можно было выключить. Гейт 74HC00 NAND h
6502 Minimal Computer (с Arduino MEGA), часть 1: 7 шагов
Минимальный компьютер 6502 (с Arduino MEGA). Часть 1: Микропроцессор 6502 впервые появился в 1975 году и был разработан небольшой командой под руководством Чака Педдла для MOS Technology. Тогда он использовался в видеоприставках и домашних компьютерах, включая Atari, Apple II, Nintendo Entertainment System, BBC Micr
Компьютер для RE Systems (Часть 1 из 2) (Аппаратное обеспечение): 5 шагов
Компьютер для RE Systems (Часть 1 из 2) (Аппаратное обеспечение): Здесь я покажу вам, как я сделал полностью рабочий мини-настольный компьютер для небольших систем возобновляемой энергии. Система RE, которую я планирую использовать, будет в основном 12-вольтовой системой. с 6 или 8 батареями Golf Cart, и у меня будет инвертор мощностью 700 Вт
Компьютер для RE Systems (часть 2 из 2) (программное обеспечение): 6 шагов
Компьютер для RE Systems (часть 2 из 2) (программное обеспечение): в первой части данного руководства, расположенного здесь https://www.instructables.com/id/Computer-for-RE-Systems-Part-1-of-2 -Hardware /, я добавил все оборудование, которое я хотел получить для хорошей настольной системы. Теперь для программного обеспечения, но до программного обеспечения