PICBASICコンパイラ
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第85回]
●SDカードIF(5)新旧回路図
下はマイコン独立化システムのSDカード+キーボードIFボードの回路図です。
キーボードIFにPIC16F87、SDカードIFに28pinのPIC16F883を使っています。
今回のテーマとしてはキーボードIFは関係ありませんから無視してください。
回路図のかなりの部分を占めているのはI/Oアドレスによって8ビットのデータテラインを切り換えるセレクト回路とデータをラッチする回路です。
ND80Z3.5、ND8080の8ビットデータバスに接続する仕様のためにこのようなかなり複雑な回路になってしまっています。
これは前回も書きましたようにシステム上ND80Z3.5などのI/Oバスにつながなければならないため仕方のないことだったのです(今から考えればほかにやり方はあったと思うのですがちょっと頭が固かったようです)。
SDカードにアクセスするためのコマンドやデータの送信、受信をI/Oバスに接続する形で行なうためI/Oバス側に多くのI/O信号が必要でした。
そのため28pinのPIC16F883を使っています。
そしてこちらが今回新しく設計したSDカードIFボード回路です。
こちらも上の回路と同じ28pinのPIC18F2550を使っていますが、同じ28pinのPICにした理由は上の回路とは全く別の理由です。
今回はCPUのパラレルI/Oバスに接続するのではなくて、CPUボードとはシリアル信号ラインを使って接続します。
そのためI/O端子は少なくても済むのですが28pinのPICを使うのは別の理由で、結果的にI/O端子が多くなってしまいました。
たまたまI/O端子が余りましたのでそこにリアルタイムクロックDS1307を接続するように考えました。
BASICのDATE$、TIME$に利用するためです。
それでもまだかなりのI/O端子が余りましたのでデバッグなど何か別の目的にも使えるようにLED出力を付加していますがSDカードIFとしては全く不要な回路です。
CPU回路との接続に26pinのコネクタを使っていますが電源ライン以外には5本のラインしか使っていません。
コネクタが26pinなのはND80Z3.5の82C55入出力コネクタに合わせるためです。
配線の描き方が整理できてなくて見づらい配置になってしまいました。
82C55の信号名で見てPC2はPIC2550のMCLR(リセット)につながっています。
PC1がCPU側からホストとして出力するシリアルクロック信号ラインです。
PC0はホストから出力するシリアルデータラインです。
PC7はPIC18F2550が出力するREADY/BUSY信号ラインです。
PC6はCPU側が出力するクロックに従ってPIC18F2550から出力されるシリアルデータラインです。
これはCPU側から見ると入力データラインになります。
CPU側には26pinコネクタのほかに10pinのコネクタも配線しています。
26pinコネクタはDOSプログラム作成の過程でND80Z3.5の82C55に接続する目的のために使いますが本来のPICBASICコンパイラボードに接続するためには26pinは不要です。
電源2本+信号5本=7本あればよいのでそれを10pinコネクタに配線しています。
説明の途中ですが本日は時間がなくなってしまいました。
次回に続きます。
PICBASICコンパイラ[第85回]
2023.10.5upload
前へ
次へ
ホームページトップへ戻る