4

z80 を使用してレトロなコンピューターを作成しようとしていますが、理想的には SD カードから起動できるようにしたいと考えています。私は 100% z80 を使用することに決めており、内部 SPI ハードウェア インターフェイスを備えたマイクロコントローラーを使用したくありません。コンピューターのハードウェアとソフトウェアの両方の側面を理解したいので、購入する前にハードウェア側が完成しているため、arduino とマイクロコントローラーは対象外です。とにかく、私の主な質問は、SPIモードを介してSDカードから読み取るために、シフトレジスタ、いくつかのデコードロジック、およびソフトウェアを組み合わせることは可能でしょうか? 私は何時間もインターネットを検索し、いくつかの記事を読みましたが、チュートリアルが見つからないようです。SPI プロトコルは理解していますが、マイクロコントローラにはすべてのハードウェアが組み込まれている傾向があるため、ハードウェア側に関する情報が不足しています。SDカードのSOMIをシフトレジスタのシリアル入力ピンに接続し、SDカードのSIMOをシフトレジスタのシリアル出力ピンに接続し、いくつかのデータピンをいくつかのフリップフロップに接続してデコードすることを計画しました特定のポートに出力すると、フリップフロップがトグルされます。フリップフロップは、SD カードへのクロックおよびチップ イネーブル ラインとして機能します。また、z80 のピンをシフト レジスタのラッチ ピンに接続し (再びデコード ロジックを介して)、特定のポートに出力するとシフト レジスタのデータがラッチされるようにします。SDカードからデータを正確に読み取れる限り、速度/効率は気にしません。また、SDカードを接続するのと同じクロックにシフトレジスタクロック入力を接続しますか? これを実装する方法についてのアドバイスをいただければ幸いです。

4

1 に答える 1

2

通常のIOでSPIをビットバンするだけです。必要なのは、クロック信号のエッジ割り込みと、チップ セレクトのレベル割り込みだけです。それ以外はすべてソフトウェアで実行できます。送信するには、チップ セレクトをローに保持し、MOSI のビットを必要なレートでクロック出力します。受信するには、クロック ラインの目的のエッジで MISO からビットをサンプリングすることにより、ローになるチップ セレクトを処理します。すべてをバッファーに入れておき、チップ選択ラインがハイに戻ったときにバッファーを処理します。

于 2015-10-25T23:19:01.190 に答える