chakokuのブログ(rev4)

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

電子百葉箱Prj;SDカード(SDHC)SPIモードに移行、configリード


当初、SDカードがSPIモードに移行できないと悩んでいたけど、Ver2以降は移行シーケンスの仕様が変わっていたのであった。SDHCはSD Ver2であるため、Ver2用の移行シーケンスでコマンド発行が必要
(おおよそ書くと、CMD0,CMD8,ACMD41,CMD58の順番)
Xpressoのボードが不調になったりいろいろあったけど、なんとかconfigまで読めるようになった。(左の写真は買い替えたバージョンのXpresso、ブレッドボードも整えました)

ご参考に、4GのHCSDのconfigは以下の通り


OCR [c0 80 00 ff]
CID [13 4b 47 53 44 30 34 47 00 11 50 72 87 00 ac e9]
CSD [40 0e 00 32 5b 59 00 00 1d e1 7f 80 0a 40 00 ff]

CSDにはカードの容量を示すdevice size Fieldがあります。


Name:[device size] Field:[C_SIZE] bit width:[22] CSD-slice:[69:48]
読んだ値を計算すると以下の通り3825MBでありカードサイズ4GBとほぼ合っています。(完全に合わないのはシステム領域に幾分か取られているらしい*1

CSD:
device size 00|0000|0001|1101|1110|0001| (1DE1)
(0x1DE1+1)*512/1024=3,825MB

■ご参考URL
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

参考にしているApplication Note(このコードをそのまま使っても動くと思われます)
[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

*1:SDカードの仕様書、P123 C_SIZEの段落より