MOS 6522
MOS 6522 多用途インタフェースアダプタ (Versatile Interface Adapter, VIA)は、モステクノロジー(MOS Technology, Inc.)が製造した集積回路であり、ロックウェル・インターナショナルやSynertek等のセカンドソースも存在した。6522は、6502シリーズマイクロプロセッサのI/Oポートコントローラとして使用され、シリアル通信のためのタイマやシフトレジスタだけでなく、PIAによるパラレルポート入出力を提供した。6522は、1980年代に人気のあったコンピュータ、特にコモドールのコンピュータで使用され、Apple III、BBC Micro、Macintoshでも主要な部品として使用された。
入出力ポート
[編集]6522VIAには20本のI/O信号線があり、2つの8ビット双方向ポート(または16本の汎用入出力)と、4本の制御信号線(ハンドシェイクと割り込み生成に使用)として使用された。16本の汎用ピン(PA0-7, PB0-7)の入出力方向は、独立に設定することができた。制御信号線は、活性化されたときの割り込み生成、対応するI/Oポート(CA1とCB1)のラッチ、I/Oポートに接続したデバイスに対するハンドシェイク信号の自動生成、または単純なハイ/ロー信号の出力に設定することができた。
タイマ
[編集]6522VIAは、ワンショットモード/フリーランモードと、各I/Oポート7番目のビット(PA6またはPB6)を監視し何回の状態変化が発生したかを計測するパルスカウントモードへの設定が可能な、2つの16ビットタイマ/カウンタを提供する。各タイマはゼロと一致したときに割り込みを生成することや、各I/Oポートの8番目のビット(PA7またはPB7)に矩形波を出力することもできた。
シフトレジスタ
[編集]6522VIAのシフトレジスタは、双方向、8ビット幅であり、タイマーが生成したクロック(タイマ2が使用される)、CPUクロック、またはCB1信号線からの外部クロックソースで動作することができた。シリアル入出力はCB2を使用し、CB1は外部デバイスに対するクロック出力として設定することもできた。評判の悪いシフトレジスタのバグはCMD G65SC22で修正された。
バグ
[編集]6522には前述のシフトレジスタのバグ以外に、MC68000のような6502形式ではないバスに接続したときだけに生じる、レジスタ化けの潜在的な問題があった。チップセレクトが非アクティブであるが、第2相のクロックがアクティブの状態でアドレス線が変化したとき、チップセレクトが非アクティブであるにもかかわらずレジスタの内容が変化する可能性がある。このバグはCMOS版のいくつかのバージョンで修正された。