ハード的にマイコンとの通信がUSB経由でできるようになりましたので、Z80側に通信用確認プログラムを作成して、ちゃんと通信できるか確認したいと思います。まずは、通信用レジスターの確認からです。
Z8S180の通信関係の内部レジスター(チャンネル0)は次のようなものがあります。
1、Transmit Data Register (チャンネル0) TDR0 アドレス 06H
送信データ
2、Receive Data Register (チャンネル0) RDR0 アドレス 08H
受信データ
3、Status Register (チャンネル0) STAT0 アドレス 04H
ステータスレジスター
Bit7:Receive Data Register Full
bit6:Overrun Error
bit5:Parity Error
bit4:Framing Error
bit3:Receive Interrupt Enable
bit2:Data Carrier Detect
bit1:Transmit Data Register Empty
bit0:Transmit Interrupt Enable
今回はポーリング方式(常にデータがないか読みに行く方式)でデータを読み書きするので
使うレジスターbitは、bit7と、bit1を使用します。
4、Control Register A0 (チャンネル0) CNTLA0 アドレス 00H
コントロールレジスターA
Bit7:Multi-Processor Mode Enable
bit6:Receiver Enable
bit5:Transmitter Enable
bit4:Request to Send Channel 0
bit3:Multiprocessor Bit Receive/Error Flag Reset
bit2ーbito:ASCI Data Format Mode 2, 1, 0
bit2:MOD2 0:7bit
1:8bit
bit1:MOD1 0:パリティーなし
1:パリティーあり
bit0:MOD0 0:1ストップビット
1:2ストップビット
コントローレジスターAの設定で必要なものは、シリアル設定のデータ長、パリティー有無、ストップビット長です
通常は、8n1(8ビット、パリティーなし、ストップビット1ビット)です。
したがって bit2-bito0は 100となります
5、Control Register B0 (チャンネル0) CNTLA0 アドレス 02H
コントロールレジスターB
Bit7:Multiprocessor Bit Transmit
bit6:Multiprocessor Mode
bit5:Clear to Send/Prescale
bit4:Parity Even Odd
bit3:Divide Ratio
分周比を指定します。
0:1/16
1:1/64
bit2-bit0:Source/Speed Select
スピードを設定します。(詳しくはユーザーマニュアルを参照してください)
今回のハードは、専用クロックですので、Bit2-Bit0は 111となります。
これらをもとに、通信チェックプログラムを次に作成したいと思います。