MMC/SD カードに関する多くの情報を見て、これを読み取るためのライブラリを作成しようとしました ( Procyon AVRlibを変更します)。
しかし、ここでいくつか問題があります。私は元のコードを変更せず、ここで試しました。私の問題は、SD カードの初期化に関するものです。256 MB と 1 GB の 2 つがあります。
CMD0、CMD55、ACMD41、CMD1 の順に init コマンドを送信します。
しかし、256 MB の SD カードは、各コマンドに対して 0x01 応答しか返しません。CMD1 を何度も送信すると、256 MB の SD カードは常に 0x01 のみを返し、0x00 を返すことはありません。
1 GB SD はもっとクレイジーです... CMD0 は 0x01 で戻ります。いいのですが、CMD55 コマンドは 0x05 で応答します。それ以外の場合は 0xC1 で応答し、次のインタラクションで 0x5F とともに 0xF0 で応答することもあります...
インターネットの周りには情報と例がありますが、少し混乱しています。ここで私のプロジェクトでは、1 GB カードを使用する必要があり、SD アダプター付きの microSD カードを使用しようとしています (これは問題ではないと思います)。
この問題を解決するにはどうすればよいですか?
PS: 私の問題は Stack Overflow の質問Initializing SD card in SPI issuesの問題に似ていますが、解決策は私の問題を解決しませんでした。1 GB SD カードは 0x01 しか返さない... :cry: