SSブログ
English Version

超小型Z80マイコン(その1)USBシリアル対応とピンアサイン [Z80]

 「3チップ構成Pic24CPMマイコン(CP/M起動までの作業まとめ)」の記事で書いた Z80 ボードは PIC24 を使ってメモリをダイレクトアクセスすることで3チップ構成の Z80 ボードを実現しましたが、メモリ制御のために I/O 数の多い PIC が必要でした。
 また、「Z80GalCompactの制作(その2)部品実装」等の記事で書いた Z80GalCompact では Z80 を高速(20MHz)で動作させ、シリアル通信や SPI をソフトウェアで実現することで使用チップ数を減らし小型の Z80 ボードを目指しましたが、USB シリアル変換の IC を使う等したため、チップ数は多くなりました。

 今回はリセット直後のマシンコードのみを PIC から提供し(ROM 相当の機能)、起動後は Z80 からは PIC をシリアル通信と SD カード用インターフェースを有した単なる I/O チップとして認識させることで PIC 側の必要な I/O 数を削減し、更に USB 対応の PIC を使用することで USB シリアル変換用の IC も不要な小型の Z80 ボード( Z80PicCompact と命名)の実現を目指したいと思います。

  1. USB 対応
     PIC は USB 機能での使用例の多い PIC18F14K50 を使用したいを思います。
     始めは少し古い情報を基に USB 機能を試していたのですが、コンパイラが C30 の例だったので XC8 対応しようとごちょごちょやっていました。その後、下記の参考資料3項目の Web ページに MPLABX の XC8 コンパイラで 2018年11月版の Microchip Libraries for Applications(MLA)を使った情報があることを見つけ、割合すんなりとUSB のサンプルが動作しました^^

     しかし、PICKIT3 でディバッグモードに入ろうとすると下図のように debug header を要求されてしまいディバッグできませんorz

    ディバッグモードへ移行する際のエラー

     プロジェクトの設定内容を再確認してみると debug header を設定する項目があったので設定してみました(下図)。

    Debug Header の設定

     しかし、ディバッグモードに入ろうとすると debug header をロードできないというエラーが発生し、MPLAB X IDE や XC8 コンパイラを最新のものにバージョンアップ(それぞれ V6.00 と V2.40 )したりしても一向に変化がありません・・

     ネットで関連情報を調べてみて判りました・・・・ debug header とはソフトウェアでは無く、ハードウェアであるということが orz
     ここがマイクロチップ社の販売ページになります。マニュアルは「2006-2015 Microchip Technology Inc.DS50001292WProcessor Extension Pak (PEP)and Debug HeaderSpecification」です。

     そういうことであればディバッグモードは諦めるしかないですねw

    [参考資料]
    1. PIC18F/LF1XK50データシート
    2. はじめての PIC : 18F14K50
    3. 砂町技研 : PIC18F14K50 で USB CDC デバイスを作る
    4. PICの動かせ方入門 : 18F14K50覚書


  2. ピンアサインの検討
     今回使用予定の PIC18F14K50 は 20 ピンなので I/O 数がかなり少ないです。
     必然的に超ケチケチ設計にならざるを得ないのですが、かえってこの部分の検討が面白い所でもあります。
     処理中に入出力を切替えたり等してぎっちぎちに詰め込んだ結果が下表になります。

    Z80PicCompact ピンアサイン(案)
    ★追記 2023/02/08 RB6 に モニタ LED 駆動の説明を追記

     最後の最後に残ったのが Z80 への RESET/ 信号をどう出すか・・です。
     I/O は全て使い切り、しかもほとんどが 1bit で複数の信号を処理するようになっている・・
     まぁ何とかなるだろうと思ってはいましたが、SD カードとの SPI インターフェースの DI 信号は SD 側が 3.3V のレベルで出力してくるので、RESET/ 出力時は これを出力側に切替え、出力信号のレベル差を利用して RESET/ 信号を作り出すというアクロバティックなアイディアが浮かびましたw

    Z80 への RESET/ 信号の生成



[TOP] [ 前へ ] 連載記事一覧 [ 次へ ]

nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。