SSブログ
English Version

SuperSimpleController(その13)モニタの制作 [OriginalCPU]

 前回の記事で書いたように自作CPUのプリント基板(下の写真)ができたので今回はモニタの制作について少し書いてみます。

プリント基板化したSimple8Z



 始めにシリアル通信ができるように手持ちの調歩同期シリアル通信用IC(MC68B50)を載せたシリアルアダプタを汎用基板(秋月さんの両面スルホールCタイプ)を使って作成しました。
 Simple8Zの拡張用コネクタからはI/Oアクセス時にアクティブ(lowアクティブ)になるIOR/信号を出していますが、MC68C50のE信号(イネーブル信号)はhighアクティブなのでトランジスタを使ってIOR/を反転して接続しています。
 また、PIC12F683でシリアル通信用クロック(9600x16)を生成しています。
 具体的な回路図は「SuperSimpleController(その10)I/O命令追加」の記事を参照してください。

シリアルアダプタ(部品面)



シリアルアダプタ(半田面)



 下の写真はSimple8Z本体に今回作成したシリアルアダプタを接続した状態のものです。
 マシン語のディバッグもさることながら、今回の様にある程度まとまった処理を実行すると以前の1パス試験では出現しなかった問題が発生するのでマイクロコードも修正しつつの作業になります。
 ICソケットを痛めないようにuCODE用のROMにもゼロプレッシャーソケットを付けました。

Simple8Z with serial adapter



 まだ作成途中で部分的にしかコマンドを実装していませんが、Hexローダーでモニタをロードし、動かしているサンプル画面が下図になります。ディバッグのために1MHzの外部クロックで動かしています。

 もうどこから見てもCPUそのものではありませんか?

モニタロードと操作のサンプル画面



 モニタ内のHexロード機能('R'コマンド)、ダンプ及び実行コマンドの試験のために作成したHello表示とエコーバックを行う試験用プログラムのソースも貼っておきます。

モニタ試験用Hello&Echo back試験プログラム(Simple8Z用アセンブリ言語)
;++++++++++++++++++++++++++++++++++++++++ ; Simle8Z Hello & echo back test ; by skyriver ; V0.01 2021/04/08 ;++++++++++++++++++++++++++++++++++++++++ .xlist include machine.inc .list START EQU 0A000H ; program start address SIO_CMD EQU 0C0H SIO_DAT EQU SIO_CMD + 1 ASEG ORG START LD_R0 <(LOW MSG) - 1> WR_R0 saveR0 LOOP: RD_R0 saveR0 INC_R0 WR_R0 saveR0 RD_R1_R0 <HIGH MSG> CKZR1 LD_R0_R1 JZ ECHO CALL PUTC JP LOOP ECHO: IN_R0 SIO_CMD SHR_R0 JNC ECHO IN_R0 SIO_DAT LD_R1 13 CP_R0_R1 JZ ECHOEN CALL PUTC JP ECHO ECHOEN: RET ; output character to SIO ; R0 <- data ; PUTC: LDF_R1_R0 IN_R0 SIO_CMD SHR_R0 SHR_R0 LD_R0_R1 JNC PUTC ; if tx not ready OUT_R0 SIO_DAT RET MSG: DB "Hello,world", 13,10,0 saveR0: DS 1 END


★追記 2021/04/09
 Twitterにポストした動画付きコメントを貼っておきます。
 EEPROMに書いたHexローダーでモニタをロード&起動後に上記の試験用プログラムのヘキサファイルをモニタの'R'コマンドでロードしてから'G'コマンドで実行しています。




★追記 2021/04/12
 最初はI2Cロガーの時のようにシリアルアダプタをCNCを使って片面基板で作成しようと考えていましたが、片面基板ではピンヘッダの固定力が弱く、抜き差しする際にピンが動きパターンが剥がれる恐れがあるので上述のように両面スルホールの汎用基板を使い手配線で作成することにしました。
 CNCでの作成用にパターン設計等はしていたので貼っておきます。
 トランジスタでIOR/信号を反転してMC68B50のE信号として入力していますが、立上りタイミングが2us程度遅れたので下記のパターン図にはないですが、ベース抵抗にパラでスピードアップコンデンサとして220pFを追加(遅延は0.3us程度に改善)しています。

片面基板パターン設計



 CNCでパターン切削から穴開け、外周切取りまで行いますが、パターン切削時のCNC制御画面が下図です。

CNCでのパターン切削画面




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


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