MMCカードについて読み取り/書き込み

C

conkhicon

Guest
マイコンインタフェースのハードウェアSPI関数を使用してすべて、私は開発PICの18F8720プロジェクトを使用MMCを親愛なる、私は正常にリセットをしなければならなかったし、初期化MMCとの記事を読むのOCR、[OK]をCSDのレジスタ、および読み取ることができます- singleBolck(CMD17)[OK]を(ステータスの戻り値を[OK]をしかし、しかし、)が真であるデータを知らない私が欲しいときに書き込みブロック(CMD24)MMCに、応答データが変だと、それは(正しいものは、0xE5です)が0x07です。いずれかは何間違い、私を助けてできますか? (私が使用KingmaxがとSandiskのカード)。私は、Nokia、製麺MMCカードを使用していて、私は(ステータスの戻りに属している)[OK]を書き込み、読み取りエラーブロックサイズ= 512Bytesは、アドレス512の境界です。
 
私は、私だけが特定のステップを逃した時のSD / MMCから変な応答を持っている。あなたはCMD24を発行し、書き込みを実行している正確なシーケンスを記述することはできますか?
 
#定義BLOCK_LEN 512 unsigned char型readBlockMMC(unsigned long int型DWAddr、unsigned char型*偏微分方程式){externをunsigned char型tmpkd []; unsigned char型localRD; unsigned char型commandResponse; unsigned char型dataToken; unsigned int型localc; SetCSSPI(); WriteSPI(0xff)を/ /ダミーClearCSSPI(); / /カードのActive writeCMD(17、DWAddr、0xff)の/ /リードコマンド(なしCRC)のcommandResponse = MCCResponse();場合(commandResponse! = 0){SetCSSPI(); / /カードアクティブではWriteSPI(0xff)を/ /ダミーMMC_Err = 0x30を、戻り値(1);} localc = 0;中に(1){/ /データトークンまたはエラートークンdataTokenを= ReadSPI()を待ち続けています。(dataToken == 0xFEの場合)を破る/ /成功localc + +;}はNOP()((dataToken&0xe0)== 0){;リターン(1)} / /エラートークン場合(dataToken! = 0){MMC_Err = 0x31の};場合(localRD =の0; localRD
 
回路ワインセラー#176で指定された非常に優れたアプリケーションがあります。たぶん、あなたは確認することができますし、何か間違ったことを行っている場合と比較しているを参照してください。
 
私はあなたのコードを誤解していない場合は、データをトークンのwatingている...しかし、あなたはデータトークンを送信する必要がありますCMD24を発行したときにここでは、実際に動作するコードの一部です:mmc_CS_on; = mmc_cmd(CMD24、アドレスを、0)r_value / /内部的に応答R1はmmc_putchar(0xFF)を待機します。mmc_putchar(0xFE)を/ /送信データのトークン(ⅰ= 0;一未満512; + + i)はmmc_putchar(バッファ)を/ / 512バイトのデータmmc_putchar(0x00)を送信します。/ /ダミーでは、CRC mmc_putchar(0x00)を16ビット送信します。中(mmc_read_r1()== 0xFF)を、(!(U0RXBUF&0x1Fと)= 0x05)は場合error_data_write_count + +;中(mmc_read_r1()== 0x00)を/ /書き込みが終了するまで待機します.. mmc_CS_off;
 
私が出席PICのインターフェイスMMCカードのいずれかを使用ハードウェアPheripral SPIの私の問題を修正する:あなたが応答を待っている)(SPIを読んだとき、クロック、データをシフトされPICでシフトが、同じ時間は、SSPBUF内のデータは、MMCにシフトアウトこのMMCカードが拒否するため、ramdomです。交換コード:;:;応答= SSPBUF; WriteSPI(0xff)の応答= ReadSPI()を使うと
 
iはデータロガーには、多くのテストの成功を行ってから後の保管用のSDカードを使用、以前は私、私はMMCカードとSDカードを変更するので、私は、こともMMCカードを使用することも、MMCカードと同様の問題を抱えている。しかし、MMCカード、システムを使用する場合はファイルを書き込み中にハングアップです..私はその理由がわからない..初期化中に両方のカードのように私はそれが初期化では大丈夫だと思う、準備ができて地位を与える..私の間違いを見せてください..
 

Welcome to EDABoard.com

Sponsor

Back
Top