在用CH569的SDIO口,用CMD53指令向從機(jī)發(fā)送數(shù)據(jù)沒有問題,但用CMD53從從機(jī)讀取多個(gè)字節(jié)數(shù)據(jù)時(shí),收到的數(shù)據(jù)不對(duì),DMA驗(yàn)證是有工作了,觀察從機(jī)發(fā)數(shù)據(jù)數(shù)據(jù)波形也是對(duì)的,但不知為啥就是收到的數(shù)據(jù)完全不對(duì)?
期望官方大佬能給釋疑
您好
前面的其他指令收發(fā)是否有問題呢,例如CMD52,另外搜到CMD53不同于52,沒有相應(yīng),參考CMD0是否可行?
你好,CMD52收發(fā)都沒有問題,使用cmd53,從機(jī)是有指令響應(yīng)的,并且也發(fā)出了數(shù)據(jù),觀察數(shù)據(jù)也是正確的,但是CH569就是收到的數(shù)據(jù)不對(duì),從機(jī)發(fā)送了不同數(shù)據(jù),CH569還是收到與之前一樣的錯(cuò)誤的數(shù)據(jù),感覺CH569哪里有個(gè)BUG?
CMD52是不占用數(shù)據(jù)線的,CMD53是要占用數(shù)據(jù)線的,而且用CMD53發(fā)送數(shù)據(jù)也是沒有問題的,就是接收數(shù)據(jù)錯(cuò)誤,郁悶中。
仿照CMD17 即SDCardReadOneSec函數(shù)能否操作呢?可以把代碼貼出來看下,是否只有SDIO卡不行?SD卡正常嗎?
如若還是不行可以將問題發(fā)送至郵箱dxy@wch.cn
感謝,現(xiàn)在可以讀了!先是按你提示的用SDCardReadOneSec函數(shù),把里面的CMD17改成CMD53,能讀,但是把讀字節(jié)長(zhǎng)度改成4之后,就會(huì)失敗,改成16就沒問題;然后用我的代碼讀,也是長(zhǎng)度必需大于16才能讀;請(qǐng)問讀的最小長(zhǎng)度是16字節(jié)嗎?另外失敗的時(shí)候,讀回來的數(shù)據(jù)一直不變(是之前正確讀返回的數(shù)據(jù)),掉電后上電讀也是不變,我還曾經(jīng)誤以為是成功的!
這個(gè)就要看SDIO本身協(xié)議是怎么規(guī)定的了,和單片機(jī)外設(shè)本身沒有關(guān)系。
從我自己找的一些網(wǎng)上的資料來看是固定寫16字節(jié)(僅供參考),具體還請(qǐng)相關(guān)協(xié)議規(guī)范。