|
フロー図のとおりやってもダメなことが、じんわり分かってきました。
いろいろ書き込みながら作業してます。
マギの中に残されたリツコの母親のメモみたいw(分からない人はスルーね)
初期化が終わるまではCLK周波数は400Kbps以下でないといけないとか、同じ意味だと思うけど100kHz〜400kHzだとか(Wait入れなくちゃ)。
フローには書いてないけど、随所にダミーの8CLKを入れないといけないとか。
アイドリング中のCLKは’H’にすべしとか。ダミークロックの間は/CSは’H’にすべしだとか・・・
フロー図自体にもナゾがあるんですよね。
条件分岐したうえで、
「SD Ver.2 (Block address)」
「SD Ver.2 (Byte address)」
「SD Ver.1」
「MMC Ver.3」
「Unknown card」←要するに「知らんがな」
に分類されるわけですが、
「SD Ver.1」か「MMC Ver.3」か判断する部分のコマンドが「ACMD41」と書きながらコードは「0x00000000」、同様に「MMC Ver.3」か「Unknown card」か判断する「CMD1」も「0x00000000」。どっちも「CMD0」じゃないすか!
書き誤りとしても、「CMD41(0x40000000)」は「SD Ver.2」と「SD Ver.1」の判別に使っているので、結局、「SD Ver.1」と「MMC Ver.3」の判別をどうやっているのか分からない。
あーー、1chipMSXでSDカードの初期化に「CMD1」を使っているとあったのは、このへんのことだったのでしょうか?
というわけでナゾは深まるばかりですが、Jポートに直結できるハードにしちゃいました。I2C小型LCDと入れ替えるたびに繋ぎ変えるのが邪魔臭かったからです。このmicroSDアダプタの端子は、いかにもMSXに繋いでくださいと言わんばかりの配列ですた(・∀・)b
|
過去の投稿月別表示
-
詳細
コメント(6)
|
スパゲティ状態した部分をバサッと削って、つじかわさんの「mmc_test」のソースの初期化部分に丸ごと差し替える。暴走しなくなったが、「cmd0」でエラーが出る。
チェックを全部外して強制的に「cmd1」を実行する。当然、スンナリ終わる。しかし、メモリに残されたコマンドレスポンスを見ると、「01111111」orz 全面的にエラー。
要するに、まだ初期化ができてませんねん >┼○ バタッ
アヤシイところをメモしておきます。
(1)「cmd0」のレスポンスは「0x01」。
最初、「0x00」の思い込みで時間と労力をロスしました。
(2)「cmd1」のレスポンスは「0xff」が続いたあと、「0x00」で正常終了。
資料によっては「0x01」が続くと書いているものもある。
とにかく「0x00」になるまで待つことにする。
つじかわさんは16回トライでダメならタイムオーバーと判断しているらしい。
(3)コマンドやデータの入出力は、CLKの立上がりエッジのはず。
資料によっては「立上がりで入力、立下りで出力」と書くものあり。
こういう基本的なところでマチマチなのはどういうことやねん?
(4)レベル変換ICをかましているので、74HC14は省略した。
やっぱり要るかな?プルアップ抵抗の影響でナマっている可能性あり。
(5)あ、途中でピンアサインを変えたぞ?大丈夫か?w
そもそも、つじかわさんのルーチンに差し替えて、なんでエラーになるのか理解できない。前進してるのか後退してるのか?(・∀・)?
サンハヤトの基板から、スイッチサイエンスで買ったブレークアウト基板に変更。こっちのほうが余計なピンがなくていいですね。固定用の穴もあいてるし。
とりあえず、アクセスLEDが点灯していることのご報告。
|
|
明けましておめでとうございます。って、もう13日、いや14日か。
月日の経つのは早いものですなあ。と、まったりしている場合ではありませんね。
この年末年始、ずっとSDカードのアクセスに取り組んでおりました。が、なかなか上手くいきません。コマンドのレスポンスを「0x00」ばかりだと勘違いしていたり。アセンブルはエラーなく終了しますが、実行するとちゃんと暴走します。たぶん、PUSH/POPを間違っているのでしょう。だんだんスパゲティ化しつつあります。
いささか煮詰まってきたところで、こんなんみつけてしまいました。
スイッチサイエンスさんとこで売っている、ちっさいLCD。
8文字×2行です。I2Cでコントロールするそうです。SPIもまともに出来てないのにI2Cに手を出す無謀さは、今年も相変わらず。
以前にmosakuさんとこから拝借したRTCのソースをアレンジしているところですが、今のところ何も表示できてませんw
何に使うあてもないのですけどね、可愛いのでつい買ってしまいました。わずか16文字で何かをMSXが訴えてくるなんて、なんていじらしいのでしょう。I2Cの魔術師様なら、サクッとこなされるんでしょうなあ、などと思いながら、I2CとSPIの二正面作戦に打って出ている今日この頃です。
旧日本軍にせよ、ナチスドイツ軍にせよ、二正面作戦は必ず失敗するのですけどね(・∀・)b |




