3チップ構成68Kマイコンの構想(その2) [68K]
前回の記事で「68KとPICの連携処理のために68Kのreset命令が使えそう」と書きましたが、実験して確かめてみました。
使っている68KはCMOS版ではないため、普段使っているブレッドボード用の電源が容量不足だったり、他にもハード的な問題があったりしましたがやっと安定に動いているように見える状態になりました ^^;
68KとPICの連携処理の確認の話に戻すとZ80の3チップ構成のPic24CPMマイコンの時とほぼ同様な処理で実験してみました。
68KとPICの処理の概要は次のとおりです。
最初はコンソール出力の実験で68K側の処理は下記のソースのように'Hello.'の文字列をコンソールへ出力要求します(定番ですね)。
アセンブル環境はEASy68Kを使っています。
68Kの'Hello.'出力処理
PIC側は自作のpicleコンパイラを使い、Pic24CPMマイコンのBIOS処理を流用し不要な部分を削除して使っています。
上記の68Kのソースのアセンブル結果(Sレコードフォーマット)をバイナリ変換後、MemWR()ステートメントへの自動変換処理を通してpicleのソースに埋め込んでいます。
試験実行時のログが下記でpicleソースを表示後、runしています。想定通り68Kから出力要求した文字が出力されました^^/
★2019/07/02 追記
実装メモリサイズが512KBのバージョンに差し換えました(開発時はこの時点ではメモリサイズが128KBだったのでワークエリアのアドレス等が異なります)
68Kからの'Hello.'出力実験ログ
'H'出力処理時のロジアナ波形が下記です。68Kがreset命令を実行することでRESET/信号が15.7us間アクティブになり、PIC側ではRESET/信号がアクティブになったことを検出し、バス要求(BR/をアクティブ)しています。
PIC側は要求のあった処理を行った後、バスを開放しています。
[TOP] [ 前へ ] 連載記事 [ 次へ ]
使っている68KはCMOS版ではないため、普段使っているブレッドボード用の電源が容量不足だったり、他にもハード的な問題があったりしましたがやっと安定に動いているように見える状態になりました ^^;
68KとPICの連携処理の確認の話に戻すとZ80の3チップ構成のPic24CPMマイコンの時とほぼ同様な処理で実験してみました。
68KとPICの処理の概要は次のとおりです。
- 68K側の処理概要
- ワークエリアにPICに要求する処理IDと必要な情報を設定する。
- reset命令を実行する。
- ワークエリアにPICが設定した処理結果を参照する。
- PIC側の処理概要
- RESET信号がアクティブになるまで待つ。
- BR/をアクティブにしバス制御を要求し、68Kからのバス引き渡し応答(BG/)がアクティブになるまで待つ。
- ワークエリアに設定された処理IDに基づき、処理を行い結果をワークエリアに書き込む。
- BR/をインアクティブにしバスを開放する。
最初はコンソール出力の実験で68K側の処理は下記のソースのように'Hello.'の文字列をコンソールへ出力要求します(定番ですね)。
アセンブル環境はEASy68Kを使っています。
|
PIC側は自作のpicleコンパイラを使い、Pic24CPMマイコンのBIOS処理を流用し不要な部分を削除して使っています。
上記の68Kのソースのアセンブル結果(Sレコードフォーマット)をバイナリ変換後、MemWR()ステートメントへの自動変換処理を通してpicleのソースに埋め込んでいます。
試験実行時のログが下記でpicleソースを表示後、runしています。想定通り68Kから出力要求した文字が出力されました^^/
★2019/07/02 追記
実装メモリサイズが512KBのバージョンに差し換えました(開発時はこの時点ではメモリサイズが128KBだったのでワークエリアのアドレス等が異なります)
|
'H'出力処理時のロジアナ波形が下記です。68Kがreset命令を実行することでRESET/信号が15.7us間アクティブになり、PIC側ではRESET/信号がアクティブになったことを検出し、バス要求(BR/をアクティブ)しています。
PIC側は要求のあった処理を行った後、バスを開放しています。
68KからPICへの処理要求時の波形サンプル |
|
[TOP] [ 前へ ] 連載記事 [ 次へ ]