我正在使用微控制器(PIC18F26J50)與G.Skill 4GB microSD卡連接。通過SPI寫入SDHC卡時數據未對齊
- SD卡初始化成功,我從接收0x01(空閒)R1令牌轉爲0x00(就緒)R1令牌。
- 讀取數據塊的工作,我能夠讀取分區1的位置,並讀取分區
的第一個扇區但是試圖寫一個塊的時候,我從來沒有看到一個響應令牌。將卡上的原始塊傾倒。我看到的數據確實寫的,但它沒有正確對齊......解釋的最好方式是用實際的圖片
這應該充滿0×01,0×02,×03,等等在重複之前高達0xFF
這張卡在windows中工作得很好。我能夠正確地讀取和寫入數據。
調查,我發現我得到的迴應是0XCA,如果你右移,你得到0xE5,一個正確的響應令牌。數據本身與左側不一致。此外,看起來兩個虛擬字節和令牌也被寫入。校正移位你:
FF FF FE 00 01 02 03 04 05 06 07 08 09 0A 0B 0C
所以我刪除了代碼編寫2個虛擬字節和0xFE的令牌,和神聖的S *#$卡啓動命令後,立即以書面數據,我認爲違反符合規範!任何人都可以確認這是否是SDHC卡的預期行爲?還是這張卡只是運行一個真正的s *#$ ty SD控制器? (後者我懷疑是因爲我有一張工作正常的16GB卡)