SDカードインタフェースはほぼ期待通りに動作しています。 ハードを設計して、作って、ソフトを設計して、作ってというのは結構長い道のりですが、動いたときはうれしいものですね。 いつもはソフトしか作らないので、またこれも格別なものがあります。 とはいっても、今回は西田さんにもかなり助けられていますが。 ありがとうございます。
さて、次の課題はブートアッププロセスです。 現在のインタフェースはメモリを積んでいないため、テストプログラムはカセットインタフェースから読んでいます。 ベルーガのカートリッジと一緒に挿せばROMからブートアップが可能ですが、拡張ユニットを作るのが(配線が)面倒なので、まだやっていません。
現在のインタフェースに使っている部品は以下のとおりです。 安価で手に入りやすい部品のみ使用しています。
- ATmega8L (88でも動作可)
- 74HC373
- 74HC374
- 74HC4078
- 74HC32
- レギュレータ 48M033F
- コンデンサ 0.1u x 1, 10u x 1
- 抵抗 1k x 1, LED x 1
こ れまでのアイデアは、CPLDを使ってロジックをまとめ、SRAMを同時搭載することによりブートアップ時にデータをSRAMに転送することです。 理論的には全く可能なのですが、意外に多ピンのCPLDは高いです(SRAMは安い)。 というか、もともとCPLDは(上記の部品に比べれば)結構高価です。 部品代もあるので、あまり高価な部品は使いたくありません。
AVRで扱えず、ロジックで必要になるのは以下の部分です。
- 入出力用のラッチ(8ビット x 2)
- I/Oポートのデコード
- SRAM初期化用アドレス発生
- アドレスバス・データバスのバッファリング
このうち、1, 2については現在既に行っています。 3, 4が問題で、入出力数が多いので小さなCPLDでは無理があります。 ATtiny2313 + 74HC244/245数個という組み合わせもありますが、DIPでは基板に乗り切らなさそうです。
ここは金を使わず頭を使って(?)、何とかうまい方法を編み出したいものです。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!