1. 程式人生 > >SD卡 SPI模式讀寫要點

SD卡 SPI模式讀寫要點

最近用FPGA實現了從SD卡讀資料的基本功能,一些要點:

1.sd卡上電後,先拉低CS,傳送至少74個clock,然後拉高CS,傳送至少74個clock。

2.傳送CMD0,SD卡迴應0x01

3.重複傳送CMD55+ACMD41,直到SD卡迴應0x00

4.傳送CMD17+地址,SD卡迴應0x00,然後是0xFE,緊跟著是512位元組的資料。

一些注意事項:

1 資料在clock的上升沿寫入SD卡,所以MOSI的資料最好在clock的下降沿改變。 SD卡在clock的下降沿改變MISO的資料,所以可以在clock上升沿從MISO讀資料。

2 傳送command之前,需要至少傳送一個byte的0xFF。否則SD卡會返回“無效命令”。

3 CMD17後面的地址是MSB在前,LSB在後,而且地址是位元組地址,並且要與塊大小對齊。在我的例子中,塊大小是512位元組,所以地址低9位總是0,否則SD卡會返回錯誤的地址。

4 CMD0後面要帶正確的CRC,因為CMD0為0x40,引數為0x00 , 0x00, 0x00, 0x00。所以CRC可以恆定為0x95。其他Command可以忽略CRC。