|
「成功しました!」と言いつつ、ホンマに成功したんかいな? という疑問がふつふつと。
■疑問点(その1)
つじかわさんは、なんでわざわざ/CSの信号をプログラムで反転せず、74HC14で反転したのか?
元の記事を読むと、汎用ポート直結ではうまく動作せず、バッファを入れるとあっさり動いたとのこと。つまり、汎用ポート直結の段階ではプログラムで反転していたと読める。74HC14を入れるために、わざわざプログラムを書き換えたのか?
しかし、74HC14のピンはもうワンセット余っている。プログラムを書き換えなくても、他の信号と同じように2段反転で整形すれば済むのではないか?
余った入力ピンをGNDに落とす手間と余り変わらないように思うのだが?
余談ながら、気になる記述を再度引用。
それと今回実験に使用したMSX本体(FS-A1GT)のジョイスティックポートで、妙な挙動を発見しました。
MSXは、PSGレジスタR#15のbit2/3でジョイスティックポートBのトリガA/B出力を設定出来ます。 bit2/3を同時に変化させれば、トリガA/Bが同時に変化する事が期待されます。 ところが実際には、トリガAの方がBよりも必ず600ns程度先に変化するのです。 MSXエンジン(T9769)を使用したMSXで共通なのかも知れません。 実は、CQ出版の「フラッシュ・メモリー・カードの徹底研究」(2006年12月)を片手につじかわさんの「mmc_test.com」のアセンブラリストを読んでいるところです。
SPIでは、送信はクロックの立下りで出力、受信はクロックの立上がりで入力するらしい。しかし、同書に掲載されているプログラムを見ると、クロックの立下りと同時にDI出力しています(ええかいな?)。これと同じ調子で、MSXのトリガA/Bで同時にクロック立下りとDI出力すると、トリガBの変化が遅れて誤動作するかもしれません。クロックのこまめな制御が必要となるというお話でした。
つじかわさんが選択した汎用ポートのピンへの割り当ては、ふか〜い意味があるのかもしれない。
■疑問点(その2)
こっちのほうがより深刻な疑問点かもしれない。
同書によれば、SDカードの初期化に当たっては「CMD0」に続いて、MMCカード用の「CMD1」ではなく、SDカード専用コマンド「ACMD41」を発行しなければならないらしい。SDカードは「CMD1」に対してはレスポンスを返さないと書いてあるよ!
Σ(・□・;)
「mmc_test.com」の実験成功!と思っていたが、これには「ACMD41」は使われていない。「CMD1」にレスポンスがないのに正常と判断したのか? たんに実験成功みたいな動作をしたに過ぎないのかもしれない。しかし、レスポンスがないならタイムオーバーエラーになるはずである。SDカードの仕様では「CMD1」にレスポンスしないことになっているが、たまたま使ったSDカードはMMCカードと同じ動作をしたのか?
う〜む、なんだか難産が予想されるぞ;;;;
|
過去の投稿日別表示
-
詳細
2014年12月07日
全1ページ
[1]
コメント(5)
全1ページ
[1]




