|
「成功しました!」と言いつつ、ホンマに成功したんかいな? という疑問がふつふつと。
■疑問点(その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カードと同じ動作をしたのか?
う〜む、なんだか難産が予想されるぞ;;;;
|
全体表示






私も色々調べてみます。何か分かりましたら報告しますね。
とりあえず、こちら(http://www.elm-chan.org/docs/mmc/mmc.html)、参考になりますでしょうか。
[ mad*ab*_06*6 ]
2014/12/7(日) 午後 10:20
ありがとうございます〜(人´¬` )
そのサイトは分かりやすくて勉強になります。
ただ、「先にACMD41を送ってみてrejectされたらMMCと判断してCMD1で初期化を行うのが理想的です。」のあたりが、書籍では「CMD1にレスポンスがなければACMD41を送信」と逆になっていたりします。
書籍や各サイトで少しずつおっしゃることが異なるので、すっかり当惑なうw
[ KIKI ]
2014/12/7(日) 午後 11:27
二日目のおでんは、味がしみて良い感じです。
MMC、SDメモリといっても種類、バージョンが多いようです。SDをUSBに変換するやつを買ったら、箱の裏面にビッシリ書いてありました。
その種類、バージョンで違いがあるのかもしれません。
先日より、そのChaNさんのFatFsのソースを見ていますが(mmc.c)、各種バージョンに対応する為の判断が入っています。実際のソースを見るのが近道かもしれません。実際に動いているので。
[ mad*ab*_06*6 ]
2014/12/8(月) 午前 11:24
おでんはバスタオルでくるんでゆっくり冷ますと、味がしみ込んで旨いそうですね〜ヽ( ´¬`)ノ
SDは容量やバージョンが増えてややこしくなってきました。かと言って、いまどきMMCはほとんど見ないです。SDにターゲットを絞って、もし動作しなかったら「相性問題です」で逃げましょう(爆)
確かに、実際のソースを見るのが近道かもしれませんね。実際に動いているという信頼が大きいです。
Cのソースの手順を参考にアセンブラへの移植を考えています。
[ KIKI ]
2014/12/8(月) 午後 2:51
カラシが、ツーンときました。さすがに3日目は少々飽きてきます(笑)バスタオルで包むのは次回やってみますね。
SDは、小容量で古い物が無難と思います。最初とにかく限定でいいので動作確認できれば・・・何が悪いのか分からないとつまずきますから。
FatFsの使い始めの頃、動かなくて、別のSDに変えたら動いた事がありました。
[ mad*ab*_06*6 ]
2014/12/9(火) 午後 8:31