3チップ構成68Kマイコンの構想 [68K]
「3チップ構成Pic24CPMマイコン(CP/M起動までの作業まとめ)」の記事でPIC24FJ64GA004を使った3チップ構成のZ80ワンボードドマイコンでCP/Mを立ち上げるまでの作業を書きましたが68Kで同様なことが可能か否かの実験中です。
チップ構成はMC68008P10(10MHz版ですがPICからクロックを供給する関係で8MHzで動作)とHM628128ALP-7(128KByteの70nsのSRAM)とPIC24FJ64GA004の3チップでTTLやGAL等は一切使っていません。
メモリは512KByteのK6T4008C1Bをebayで注文したので届いたら交換するかも・・
動作確認はブレッドボードで行っていて(下の写真)、相変わらずゴチャゴチャした状態ですw
右側に伸びている配線は写真では見えないですがロジアナに接続されています。
撮影用に古い雑誌を本棚から持ち出して敷きましたw
数日前にtwitterでベンチマーク用のアスキーアートのことを書きましたが68Kの情報収集の際に見つけたものです。ここには68Kのシミュレータ上のディバッグ環境であるEASy68KでCP/M-68Kを立ち上げる手順も書いてあります(やってみたら動きました^^)。
PICからのメモリアクセスはZ80の時と同様にBR/(BusRequest)してPICがバスマスターとなり直接メモリに書き込みますが、アドレス線が足りないのでAD0~AD10の11本分を出力しています。
AD10が1の場合は上位アドレスも1になるようにしているのでPICからのアドレスと68K側のアドレスは下表のような対応になります。
尚、68K側は003FFまではベクタテーブルです。
Z80の時はPICとの連携処理のインターフェースとしてHALT命令とRESET信号を使いましたが、68Kのマニュアルをざっと見たところPICと68Kの連携用のインターフェースとして68KのRESET命令が使えそうです。
試しにEASy68Kで下記の短いソースをアセンブルし、ブレッドボードで動かしてみました。
最初に書いてある3行のコメント行はCP/M-68Kのアセンブラとリンカーを使っていた時のアセンブル方法などのメモです。
下記が動作確認を行った時のログです。例のごとく自作のpicleコンパイラを使っています。
68Kの仕様に従い、最初に0000hにスタックとジャンプ先を書いた後に上記のアセンブル結果を書込んでからバスリクエストをoffに変更後、リセットを解除(出力から入力状態にする)しています。
実行後のダンプリストを見ると0410hに'1234'と書かれているので68K側のプログラムが動いていることが判ります。
picleコンパイラでの動作確認例
68KのRESET命令での動作をロジアナで確認した結果が下のキャプチャです。MCS/とMRD/はそれぞれメモリに対するチップセレクトとリード信号です。
reset命令の実行により68Kがreset端子を16usほどアクティブにしています。
68KがPIC側に処理を要求する際には68K側でRESETを実行し、PIC側ではRESET信号を監視することでPic24CPMマイコンと同様なことができる可能性があると思います。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
チップ構成はMC68008P10(10MHz版ですがPICからクロックを供給する関係で8MHzで動作)とHM628128ALP-7(128KByteの70nsのSRAM)とPIC24FJ64GA004の3チップでTTLやGAL等は一切使っていません。
メモリは512KByteのK6T4008C1Bをebayで注文したので届いたら交換するかも・・
動作確認はブレッドボードで行っていて(下の写真)、相変わらずゴチャゴチャした状態ですw
右側に伸びている配線は写真では見えないですがロジアナに接続されています。
撮影用に古い雑誌を本棚から持ち出して敷きましたw
3チップ構成のMC68008ブレッドボード |
|
数日前にtwitterでベンチマーク用のアスキーアートのことを書きましたが68Kの情報収集の際に見つけたものです。ここには68Kのシミュレータ上のディバッグ環境であるEASy68KでCP/M-68Kを立ち上げる手順も書いてあります(やってみたら動きました^^)。
PICからのメモリアクセスはZ80の時と同様にBR/(BusRequest)してPICがバスマスターとなり直接メモリに書き込みますが、アドレス線が足りないのでAD0~AD10の11本分を出力しています。
AD10が1の場合は上位アドレスも1になるようにしているのでPICからのアドレスと68K側のアドレスは下表のような対応になります。
尚、68K側は003FFまではベクタテーブルです。
PIC address | 68K address |
---|---|
0000-03ff | 00000-003ff |
0400-07ff | 01fc00-01ffff |
Z80の時はPICとの連携処理のインターフェースとしてHALT命令とRESET信号を使いましたが、68Kのマニュアルをざっと見たところPICと68Kの連携用のインターフェースとして68KのRESET命令が使えそうです。
試しにEASy68Kで下記の短いソースをアセンブルし、ブレッドボードで動かしてみました。
最初に書いてある3行のコメント行はCP/M-68Kのアセンブラとリンカーを使っていた時のアセンブル方法などのメモです。
EASy68Kでアセンブル |
|
下記が動作確認を行った時のログです。例のごとく自作のpicleコンパイラを使っています。
68Kの仕様に従い、最初に0000hにスタックとジャンプ先を書いた後に上記のアセンブル結果を書込んでからバスリクエストをoffに変更後、リセットを解除(出力から入力状態にする)しています。
実行後のダンプリストを見ると0410hに'1234'と書かれているので68K側のプログラムが動いていることが判ります。
|
68KのRESET命令での動作をロジアナで確認した結果が下のキャプチャです。MCS/とMRD/はそれぞれメモリに対するチップセレクトとリード信号です。
reset命令の実行により68Kがreset端子を16usほどアクティブにしています。
68KがPIC側に処理を要求する際には68K側でRESETを実行し、PIC側ではRESET信号を監視することでPic24CPMマイコンと同様なことができる可能性があると思います。
68KがRESET命令実行時の波形サンプル |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]