続き。SDアダプタですが、まだ動いていません。
tiny2313をつけた状態で電源をつけると暴走しているので、データバスがコンフリクトしているのではないかと思います。 tiny2313はROM代わりですので、とりあえず外してしまえば単なる拡張RAMカードとして機能するはずなのですが、外すと何も起こらず普通に起動し、内蔵の16kBしか認識されていません。
というわけで、CPLDがうまく動いていないのではないかと思います。
たいしたロジックを入れているわけではないし、ISEではフィッティング含めエラーも出ません。 Timing constraintsは何もかけていないのでwarningが出ますが、たいした問題ではないでしょう。
ロジアナがあるとはいえ、回路上で実動作を確かめるのはとても大変です。 そのため、Behaviour modelをベースにシミュレーションをしているのですが、今のところ特に問題らしいところも発見されていません。
とりあえず今のソースを貼り付けておきます。
拡張バスからの信号は、アドレス線、データ線とRDおよびWRは直接SRAMに接続し、CSのみ次のようにCPLDでデコードしています。
process (MREQ, Address15, Address14, INIT, WR) begin if MREQ = '0' and Address15 = '0' and Address14 = '1' then if INIT = '1' or WR = '0' then CS <= '0'; else CS <= '1'; end if; elsif MREQ = '0' and Address15 = '1' and Address14 = '0' then CS <= '0'; else CS <= '1'; end if; end process;
- 初期化時(AVRから^INITが入る)の0x4000-0x7fffへの読み込みはインアクティブ
- 初期化時の0x4000-0x7fffへの書き込みはアクティブ
- 0x8000-0xbfffへのアクセスは常にアクティブ
ひょっとしてCPLDにクロック供給とかいるのかなぁ。 クロックとして使われるピンも普通のI/Oにしちゃってますが。
あ、それともSRAMにCS以外の信号線を垂れ流し続けるのって無謀? データシート上ではCSさえインアクティブにしておけばデータバスはHigh-Zになって楽なのでこんな感じにしたんですが。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!