MOS 테크놀로지 6522
MOS Technology 65226522 Via(Versatile Interface Adapter)는 6502 시리즈 마이크로프로세서용 I/O 포트 컨트롤러로 MOS 테크놀로지에 의해 설계 및 제조된 집적회로입니다.2개의 양방향 8비트 병렬 I/O 포트, 2개의 16비트 타이머(이 중 하나는 이벤트 카운터로도 동작 가능), 시리얼 통신 또는 시리얼 형식과 패럴렐 형식 간의 데이터 변환을 위한 8비트 시프트 레지스터를 제공합니다.2개의 I/O 포트의 각 비트의 방향을 개별적으로 프로그래밍할 수 있습니다.6522는 MOS Technology에 의해 제조되었을 뿐만 아니라 Rockwell과 Synertek를 포함한 다른 회사들에 의해 두 번째로 공급되었습니다.
6522는 1980년대 컴퓨터,[1] 특히 코모도어의 기계에서 널리 사용되었으며, 애플 III, 오릭-1 및 오릭 애트모스, BBC 마이크로, 빅터 9000/시리우스 1 및 애플 매킨토시 디자인의 중심부이기도 했다.Vectrex와 같은 비디오 게임 플랫폼도 6522를 사용했고 1984년부터 1989년까지 콜벳 디지털 대시 클러스터도 마찬가지였습니다.고속 CMOS 버전인 W65C22는 Western Design Center(WDC)에서 생산됩니다.
입출력 포트
VIA에는 2개의 8비트 양방향 포트(또는 16개의 범용 I/O 라인)와 4개의 제어 라인(핸드쉐이크 및 인터럽트 생성용)으로 구성된 20개의 I/O 라인이 있습니다.16개의 모든 일반 회선(PA0-7, PB0-7)의 방향을 개별적으로 프로그래밍할 수 있습니다.제어 라인은 활성화 시 인터럽트를 생성하거나(4개 모두), 대응하는 I/O 포트(CA1 및 CB1)를 래치하거나, I/O 포트의 장치에 대한 핸드쉐이크 신호를 자동으로 생성하거나, 일반 프로그램 제어 출력(CA2 및 CB2)으로 작동하도록 프로그래밍할 수 있습니다.CB1 및 CB2는 시프트 레지스터의 클럭 입력 및 데이터 라인으로 사용되므로 시프트 레지스터가 활성화되어 있는 동안에는 다른 기능에 사용할 수 없습니다.
타이머
VIA는 2개의 16비트타이머/카운터를 제공합니다.각 타이머는 원샷(모노스터블) "인터벌 타이머" 모드에서 사용할 수 있습니다. 타이머 1은 타이머가 0에 도달하면 초기 카운트로 자동으로 새로고침되는 "프리런"(분할/스퀘어웨이브) 모드에서도 사용할 수 있습니다. 타이머 2는 타이머가 높음에서 낮음 상태로 전환되는 "펄스 카운트" 모드에서도 사용할 수 있습니다.핀 PB6(패럴렐 I/O포트 B의 7비트)원샷 모드에서는 각 타이머가 프리런을 계속하여 0에 도달한 이후의 시간을 확인할 수 있지만 타이머가 재부팅될 때까지 인터럽트는 더 이상 발행되지 않습니다.각 타이머는 제로에 이르면 인터럽트를 발생시킬 수 있습니다.타이머 1은 핀 PB7(포트 B의 8비트) 상에서 펄스(인터벌타이머 모드) 또는 사각파(프리런 모드)를 출력할 수도 있습니다.타이머 2를 사용하여 시프트 레지스터의 클럭 주파수를 제공할 수 있습니다.프리런 모드의 유용한 기능은 카운터를 새로고침하지 않고 16비트 카운터 래치를 새 카운트로 로드할 수 있기 때문에 현재 카운트가 0에 도달한 후에만 새 카운트를 로드하여 출력 주파수를 원활하게 변경할 수 있습니다.타이머 1의 이 기능을 핀 PB7로 출력할 수 있는 기능과 함께 사용하면 펄스 폭 변조 신호, 주파수 스위프 또는 바이페이즈 또는 FM 인코딩 시리얼 [2]비트 스트림과 같은 복잡한 파형을 생성할 수 있습니다.
시프트 레지스터
VIA의 시프트 레지스터는 쌍방향으로 폭이 8비트이며 타이머 생성 클럭(타이머 2부터), CPU 클럭 또는 라인 CB1의 외부 소스에서 실행할 수 있습니다.시리얼 입력/출력이 온라인 상태입니다.CB2, 및 CB1은 외부 클럭시리얼 디바이스의 비트클럭을 출력하도록 프로그래밍할 수도 있습니다.
IRQ 출력
NMOS 6522에는 유선 OR 인터럽트 회로에서 사용할 수 있는 개방 드레인 IRQ 출력이 있습니다.반면 WDC W65C22S에는 토템폴 IRQ 출력이 있어 W65C22S가 중단되지 않을 때 토템폴 출력이 IRQ 핀을 능동적으로 하이로 구동하기 때문에 숏키 다이오드에 의해 유선 OR 회로에서 분리해야 합니다.이 특정 문제는 개방 드레인 IRQ [3]출력이 장착된 WDC W65C22N에서 해결되었습니다.
버그
설계상의 결함으로 인해 CB1 상의 엣지가 µ2(위상-2) 클럭의 하강 에지의 수 나노초 이내에 있으면 CB1 엣지는 무시되어 비트 손실 및 후속 데이터에서의 프레이밍 오류가 발생합니다.회피책으로 외부 클럭 신호를 74AC74 플립플랍의 D 입력에 넣고 플랍의 Q 출력을 6522의 CB1 핀으로 실행하여 플립플랍을 0 또는 [4]2로 클럭합니다.시리얼 시프트 레지스터 버그는 California Micro Devices CMD G65SC22[citation needed], Western Design Center W65C22[citation needed] 및 MOS 6526에서 수정되었습니다.MOS 6526은 Commodore 64 이후부터 Commodore가 6522를 대신하여 사용한 디바이스입니다.
상기의 시프트 레지스터의 버그를 제외하고, 통상, Motorola 68000 등, 6502 이외의 버스 아키텍처를 가지는 마이크로 프로세서를 탑재한 6522 를 사용하는 시스템에서만 발생하는 잠재적인 레지스터 파손의 문제가 있었습니다.칩 셀렉트가 저(비액티브)일 때 어드레스 라인이 변경되어도 2클럭 입력이 고(액티브)일 경우 칩이 선택되지 않았음에도 레지스터 내용을 변경할 수 있다.이는 일부 CMOS 버전에서만 수정되었습니다.
레퍼런스
- ^ [Commodore] 1541 플로피 디스크 드라이브에는 MOS 6522 타입의 칩이 2개 있습니다.[데드링크]
- ^ 1982 MOS 테크놀로지 데이터 카탈로그, 페이지 2-54 및 2-55
- ^ W65C22 범용 인터페이스 어댑터(VIA)
- ^ 윌슨, 가스