ハード的にマイコンとの通信が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となります。

これらをもとに、通信チェックプログラムを次に作成したいと思います。

おすすめの記事