chakokuのブログ(rev4)

日々のごった煮ブログです

電子百葉箱Prj;SDカード(SDHC)をSPIモードに移行できない

センサーデータをnet経由でクラウドにアップする電子百葉箱プロジェクトもボチボチと進めています。CMOSカメラの画像は取れるようになったので次は一時メモリ用にSDカードを接続しようとしています。以前もマイコンでSPIモードでSDカードを読み書きしたことがあるし、ARMのサンプルコードもあるのですぐに動くだろうと思っていたけど、どうやってもCMD0->CMD1の後、レスポンスR1のBit0(Idle State)が1のままで0にならない(初期化動作中がずっと続く状態)。波形も調べたけどそれらしいコマンドを送っている。。なぜだろうと思っていたら、どうやら最新のSDカードの仕様で、CMD0->CMD8というシーケンスで初期化することが分かった。。まだ試していないけど、このシーケンスでコマンドを発行していなのが原因と思われる。というわけで、、ちょっと光が差した気分。。
記事を書いてくださった方ありがとうございます。

■追記
SDカードをマイコンで読もうと考えたら、多分だれもが到達するELM-Chan様の製作記事でもSDHCへの対応方法が記載されていました。細かい所をきっちり読んでないのでこういうこと(意味もなく壁にあたる)になるのでした。

■ご参考URL

bitcraft様?
[SH7144でSDカードコントローラを試作]
http://bitcraft.web.fc2.com/embedded/sdcard/sh7144spi.html
以下引用


SDHCの場合は、CMD0、CMD1だけではREADYに
できないようで、Simplified Version of PHYSICAL LAYER SPECの
SPIモードでの初期化手順に従い、CMD0、CMD8、
CMD58、ACMD41、CMD58、CMD9と進めます。

elm-chan様[MMC/SDCの使いかた]
http://elm-chan.org/docs/mmc/mmc.html
SDC Ver2と大容量SDCの対応方法

SDカードの仕様書等
[SD Specifications Part 1 Physical Layer Simplified Specification]
Version 4.10 January 22, 2013
https://www.sdcard.org/downloads/pls/simplified_specs/part1_410.pdf

[Lecture 12: SPI and SD cards]
http://www.dejazzer.com/ee379/lecture_notes/lec12_sd_card.pdf

[SD Specifications Part 1 Physical Layer Simplified Specification]
Version 2.00 September 25, 2006
http://mac6.ma.psu.edu/space2008/RockSat/microController/SDcard_Simplified_Physical_Layer_Spec.pdf


[NXP: AN11070 - Software code for Accessing SDC/MMC card using SPI/SSP on LPC1700,V1]
http://www.element14.com/community/solutions/6366/l/nxp-an11070--software-code-for-accessing-sdcmmc-card-using-spissp-on-lpc1700v1
XpressoのSPI I/Fを使ってHDSC版SDカードにアクセスする方法とライブラリが公開されています。これをちゃんと読めばSPI経由でSDカードにアクセスできるはず。。(自分はへそ曲がりなのでこのソースコードを参考にしつつ、、我流でコーディングしています。)