EMMC の読み取り/書き込みの問題が発生しています。Omap35x で EMMC ドライバーを作成しようとしています。emmc カードと omap の両方を初期化した後、カードは tran 状態になりました。読み取りおよび書き込みコマンドが成功しません。これが私がやったことです:
- CMD0 を送信 (MMCHS_CMD = 0x00000000 MMCHS_ARG = 0xf0f0f0f0)
- ビジー状態で CMD1 を送信 (MMCHS_CMD = 0x01020000 MMCHS_ARG = 0x40FF8080)
- CMD2 を送信 (MMCHS_CMD = 0x02090000 MMCHS_ARG = 0x00000000)
- CMD3 を送信 (MMCHS_CMD = 0x031a0000 MMCHS_ARG = 0x00010000) 応答 = 0x500 Ident State
- m_regs->MMCHS_CON &= ~0x00000001;
- CMD9 を送信 (MMCHS_CMD = 0x009090000 MMCHS_ARG = 0x00010000)
- CMD13送信 ステータス確認 (MMCHS_CMD = 0x0D1a0000 MMCHS_ARG = 0x00010000) レスポンス = 0x700
- CMD7 を送信 (MMCHS_CMD = 0x071a0000 MMCHS_ARG = 0x00010000) 応答 = 0x700
- Tran Stateではありませんが、CMD6(MMCHS_CMD = 0x061A0000 MMCHS_ARG = 0x03B90100)Response = 0x800 10.CMD 16を送信するクロックをセットします。応答 = 0x900
上記の手順の後、コマンド CMD24 (MMCHS_CMD = 0x182A0002 MMCHS_ARG = 0x00000001 および MMCHS_BLK = 0x00000200) を送信しようとしましたが、Omap は MMCHS_STAT_BWR に正常に入力され、512 バイトのデータを送信しました。オシロスコープを使用してデータ ラインを介して送信されるデータを観察できますが、TC/DTO をポーリングしているときに、データ タイムアウトを示す MMCHS_STAT から 0x108111 を受け取りました。コマンドに対する応答 0x900 を受信できます。
読み取りのために、CMD17(MMCHS_CMD = 0x112A0012 MMCHS_ARG = 0x00000001 および MMCHS_BLK = 0x00000200) を送信します。コマンドに対する応答 0x900 も受信できます。Omap は MMCHS_STAT_BRR に正常に入力されましたが、データ ラインを介して送信されるデータを確認できませんでした。
私が行った手順で問題が見つかった場合、またはそれを機能させるための例がある場合はお知らせください。