なんちゃってFDDインタフェース

| 1 Comment | No TrackBacks

SDカードをFDD互換にするには、ソフトウェアでのエミュレーションもさることながら、ハードウェアの互換性も取る必要があります。

具体的には、ポート0xd0~0xd3をアクセス可能にします。 そのためには、現在の回路のアドレスデコードを変更する必要があります。 参考までに、以下が現在の回路図です。

20090503-2313.PNG

現在のアドレスデコードはCPLDで行っていますが、拡張するにはピン数が厳しいです。 回路が上記のようになっているためです。

利用している入出力は以下のとおりです。

  • アドレス(A15, A14, A7, A6, A5, A4)
  • PCデータバス(D7~D0)
  • AVRデータバス(D7~D0)
  • PC制御信号(MREQ, IORQ, RD, WR, RESET)
  • AVR制御信号(AVRWR, AVRRD, INT0, INT1)
  • メモリ制御信号(ROMEN, RAMEN)

合計33ピン。 PLCCパッケージのCPLDでは入出力ピン数が34本までしか取れません。

上記ポートをサポートするには、最低でもA1, A0を入力し、AVRに対して識別信号を出さなければいけないので、3本追加となり、2本ピン数オーバーです。 CPLDを一つ追加すれば余裕でサポートでき、244の機能も包含できますが、回路的には複雑になります。 逆に、基本ロジックでデコードの一部を出すことでCPLD1個での実現も不可能ではないですが、デコードそのものが結構複雑なため、ICが2個程度追加されることになり、あまりうまみがありません。

回路の複雑さは基板設計の複雑さに跳ね返るので、なかなか微妙なところです。


No TrackBacks

TrackBack URL: http://www.markn.org/cgi-bin/mt/mt-tb.cgi/873

1 Comment

回路図を眺めながら色々妄想してみましたが:d
9572にしてみるというのはどうでしょう?マルツではXC9572XL-10VQG64Cが525円ですし、ロジック数は倍でpinも52ありますし。
(ちなみにXC9536XL-10VQG64Cが420円でした)
LCCよりQFPの方が半田付けしやすい気が:D

既に大量に持ってるとかで処分するとかじゃなければ、9572+Mega88+SRAMで目的が達成できる予感もします(例によって具体的に全く細かい話を考えずに書いてますが:d)。
# なんちゃってROMも、RAMにブートコードを置くので代用するって妄想ですが
## BUSRQが使えればどうにでもなる問題も多々。

Leave a comment