16ビットマイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第15回]
●I/O端子の設定(4)
前回からの続きです。
前回も書きましたようにI/O回路のセレクト端子としてPCS0を使います。
前回はそのPCS0を利用可能にするためにPIO Direction1 Register(FF78)を設定しました。
しかしそれだけではPCS0はアクティブにすることができません。
次はアドレスFFA8のレジスタを設定します。
[00060] F00E BA78FF MOV DX,FF78;pdir1 [00061] F011 B8FEFF MOV AX,FFFE;pcs0 active [00062] F014 EF OUT DX,AX [00063] F015 BAA8FF MOV DX,FFA8;mpcs [00064] F018 B8B880 MOV AX,80BF [00065] F01B EF OUT DX,AX [00066] F01C BAA4FF MOV DX,FFA4;pacs [00067] F01F B87608 MOV AX,0876;i/o base address=8000 [00068] F022 EF OUT DX,AX [00069] F023 BA8380 MOV DX,8083;**** 82c55 [00070] F026 B080 MOV AL,80;**** all port out [00071] F028 EE OUT DX,AL;**** [00072] F029 8CC8 MOV AX,CS;***** [00073] F02B BA8080 MOV DX,8080;***** [00074] F02E EF OUT DX,AX;***** |
前回お見せしましたリストではFFA8に80B8を書き込んでいましたが、この記事を書くためにもう一度Manualを読み直してみましたら、意味の無いことをやっているように思えましたので、そこのところをはっきりさせるために、80B8ではなくて80BFを書き込むように変更しました(この場合にはどちらでも構いません)。
アドレスFFA8は PCS and MCS Auxiliary Register (MPCS register)です。
PCSとMCSの補助レジスタとでも訳すのでしょうか。
下の引用文を見ますと前に説明しましたUMCSやLMCSと同様にチップセレクト端子を設定するレジスタ群の1つのようです。
[出典]Advanced Micro Devices,Inc. Am186EM and Am188EM Microcontrollers User’s Manual
Table5−1を見ますと今回説明するMPCSのほかに、その後で説明する予定のPACS(オフセットアドレスA4)があります。
どちらもAffected PinsのところにPCS0がありますので、いずれもPCS0を使うためには設定が必要であることがわかります。
下はPCS and MCS Auxiliary Register (MPCS register)の説明です。
[出典]Advanced Micro Devices,Inc. Am186EM and Am188EM Microcontrollers User’s Manual
なんだかごちゃごちゃ書いてありますが、実際のところPCS0を使うために必要な設定はBit6のみです。
Bit6を1にするとPCS端子はMemory mapped I/Oとして働き、0にするとI/O mappedになります。
当然I/O mappedで使いますから、Bit6は0にします。
他のビットは今のところはどうでもよい設定ですから、M6−M0はオール0にするのと、ビット6を0にするほかは1にしておきます。
Table5−4にはM6−M0を0000000にする選択肢はないようですが、MCSは使う予定がありませんから、0000000にしておきます。
2ビット以上を1にするとMCS端子に予測できないこと(unpredictable operation)がおきる、と書いてあります。
まあMCS端子は使いませんから、どのみち影響はないのかも知れませんが。
そんなわけで、PCS and MCS Auxiliary Register (MPCS)(FFA8)に80BFを書き込んでいます。
[00063] F015 BAA8FF MOV DX,FFA8;mpcs [00064] F018 B8B880 MOV AX,80BF [00065] F01B EF OUT DX,AX |
このあとまだPACS registerの設定が必要です(本当に面倒なことです)。
次回に続きます。
16ビットマイコンボードの製作[第15回]
2017.1.20upload
前へ
次へ
ホームページトップへ戻る