МОП-технология 6522
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2024 г. ) |
Универсальный интерфейсный адаптер MOS Technology 6522 (VIA) — это интегральная схема , разработанная и изготовленная компанией MOS Technology в качестве контроллера портов ввода-вывода для 6502 микропроцессоров семейства . Он предоставляет два двунаправленных 8-битных параллельных порта ввода-вывода, два 16-битных таймера (один из которых также может работать как счетчик событий) и 8-битный сдвиговый регистр для последовательной связи или преобразования данных между последовательной и параллельной формами. Направление каждого бита двух портов ввода-вывода можно запрограммировать индивидуально. Помимо производства MOS Technology, 6522 был заказан другими компаниями, включая Rockwell и Synertek .
6522 широко использовался в компьютерах 1980-х годов, особенно Commodore . в машинах [1] а также был центральной частью проектов Apple III , Oric-1 и Oric Atmos , BBC Micro , Victor 9000/Sirius 1 и Apple Macintosh . Платформы видеоигр, такие как Vectrex, также использовали 6522, как и цифровая приборная панель Corvette 1984–1989 годов. Высокоскоростная версия CMOS , W65C22 , производится Western Design Center (WDC).
Порты ввода/вывода [ править ]
VIA содержит 20 линий ввода-вывода, которые организованы в два 8-битных двунаправленных порта (или 16 линий ввода-вывода общего назначения) и четыре линии управления (для установления связи и прерываний генерации ). Направления для всех 16 основных линий (PA0-7, PB0-7) можно запрограммировать независимо. Линии управления могут быть запрограммированы на генерацию прерывания при активации (все четыре), фиксацию соответствующего порта ввода-вывода (CA1 и CB1), автоматическую генерацию сигналов подтверждения связи для устройств на портах ввода-вывода или работу в режиме простого программного управления. выходы (CA2 и CB2). CB1 и CB2 также используются в качестве тактового входа и линии данных сдвигового регистра, что исключает их использование для других функций, пока сдвиговый регистр включен.
Таймеры [ править ]
VIA предоставляет два 16-битных таймера/счетчика. Каждый из них может использоваться в одноразовом ( моностабильном ) режиме «интервального таймера»; таймер 1 также может использоваться в «автономном» режиме (делитель/ меандр ), в котором таймер автоматически перезагружается с начальным счетом, когда он достигает нуля, а таймер 2 также может использоваться в режиме «подсчета импульсов», в котором таймер будет подсчитывать переходы между состояниями высокого и низкого уровня вывода PB6 (7-й бит параллельного порта ввода-вывода B). В однократном режиме каждый таймер продолжает работать в автономном режиме, так что можно определить время с момента достижения нуля, но дальнейшее прерывание не выдается до тех пор, пока таймер не будет перезапущен. Каждый таймер может генерировать прерывание при достижении нуля, а таймер 1 также может выводить импульсы (в режиме интервального таймера) или прямоугольные волны (в автономном режиме) на вывод PB7 (8-й бит порта B). Таймер 2 можно использовать для обеспечения тактовой частоты сдвигового регистра. Полезной особенностью автономного режима является то, что в 16-битный счетчик-защелку можно загрузить новый счетчик без перезагрузки счетчика, так что он загрузит новый счетчик только после того, как текущий счетчик достигнет нуля, плавно изменяя выходную частоту. . Эта функция таймера 1 в сочетании с его возможностью вывода на вывод PB7 может использоваться для генерации сигналов сложной формы, например сигналы широтно-импульсной модуляции , развертка частоты или двухфазные или FM -кодированные последовательные потоки битов. [2]
Регистр сдвига [ править ]
Сдвиговый регистр VIA является двунаправленным, имеет ширину 8 бит и может работать либо от тактового сигнала, генерируемого таймером (от таймера 2), тактового сигнала ЦП, или от внешнего источника на линии CB1. Последовательный ввод/вывод находится в режиме онлайн. CB2 и CB1 также можно запрограммировать для вывода тактовых импульсов для внешних синхронизируемых последовательных устройств.
Выход IRQ [ править ]
NMOS 6522 имеет выход IRQ с открытым стоком , который можно использовать в схемах прерываний по принципу «проводное ИЛИ» . WDC W65C22S, напротив, имеет выход IRQ тотемного полюса , который должен быть изолирован от проводной схемы «ИЛИ» диодом Шоттки , поскольку выход тотемного полюса активно подает высокий уровень на вывод IRQ, когда W65C22S не прерывает. Эта конкретная проблема решена на WDC W65C22N, который оснащен выходом IRQ с открытым стоком. [3]
Баги [ править ]
Из-за конструктивного дефекта, если край находится на CB1 попадает в пределах нескольких наносекунд от заднего фронта тактового сигнала φ2 (фаза-2), Фронт CB1 будет игнорироваться, что приведет к потере бита и ошибкам кадрирования последующих данных.
Обходной путь — поместить внешний тактовый сигнал в D вход триггера 74ACT74 , запустите флоп Выход Q на 6522 вывод CB1 и синхронизируйте триггер с помощью φ0 или φ2. [4]
Ошибка последовательного сдвигового регистра была исправлена в от California Micro Devices. CMD G65SC22 [ нужна ссылка ] и в MOS 6526 , последнем устройстве, которое Commodore использовал вместо 6522, начиная с Commodore 64 .
Помимо вышеупомянутой ошибки сдвигового регистра, существовала потенциальная проблема повреждения регистра, которая обычно возникала только в системах, использующих 6522 с микропроцессором, имеющим архитектуру шины , отличную от 6502, например Motorola 68000 . Если адресные строки изменились, когда выбор чипа был на низком уровне (неактивен), но вход тактового сигнала φ2 был на высоком уровне (активен), содержимое регистра могло быть изменено, несмотря на то, что чип не был выбран. Это было исправлено в некоторых, но не во всех версиях CMOS.
Ссылки [ править ]
- ^ Дисковод гибких дисков [Commodore] 1541 имеет две микросхемы типа MOS 6522... [ мертвая ссылка ]
- ^ Каталог данных МОП-технологий 1982 г., стр. 2-54 и 2-55
- ^ Универсальный интерфейсный адаптер W65C22 (VIA)
- ^ Уилсон, Гарт