CH378L讀取TF卡內文件的長度不對

CPU和CH378L之間是硬件并口連接,沒有使用中斷信號。用CHECK_EXIST命令測試正常,讀取到的芯片及固件版本信息是51H。用DISK_CAPACITY和DISK_QUERY命令查詢到的TF卡容量和空間信息都正確。用大寫字母設置好文件名,用FILE_OPEN命令打開文件,返回成功。但用GET_FILE_SIZE命令+68H去查詢文件長度時,返回數據不對,好像是偏移了一個字節(jié)。比如文件長度應該是1,409,528 字節(jié)(001581F8H),但返回的是00001581H。

請問有可能是什么原因?謝謝!

換用FILE_QUERY命令,獲取到的文件長度就正常了。


那有沒有嘗試在第一種情況下GET_FILE_SIZE的時候去讀取第五個字節(jié),會不會是寫完命令到讀取數據之間的延時不夠?


嘗試了在第一種情況下GET_FILE_SIZE的時候去讀取第五個字節(jié),讀到的是00H。

在單步調試時情況也一樣,所以不是命令和數據之間的延時不夠的問題。因為CH378是先傳低字節(jié),我沒讀到,我讀到的第一個字節(jié)實際上是CH378傳輸的第二個字節(jié),所以倒像是我讀的慢了。

現(xiàn)在發(fā)現(xiàn)用RD_HOST_CUR_DATA命令讀取文件內容也有問題,文件的首字節(jié)讀不到。

這兩個命令的共同點是都不產生中斷。



我使用的是Motorola 并口時序,RD#引腳接低電平


自動演示生成的文件內容為:

在CH378芯片自動演示時寫入當前信息:

(1)、芯片版本: V1.2;?

(2)、當前通信接口模式: 8位并口; ? ? ? ? ? ? ? ? ? ?


(3)、當前插入設備為: SD卡 ? ? ??

? ? ?文件系統(tǒng): FAT32

? ? ?扇區(qū)大小: 512 字節(jié)

? ? ?總容量: ? 15095M

? ? ?剩余容量: 15086M

文件系統(tǒng)、扇區(qū)大小、總容量、剩余容量信息和我用DISK_QUERY命令獲取的信息相同,芯片版本V1.2和我用GET_IC_VER命令獲取的信息不一樣,多試了幾次,發(fā)現(xiàn)第一次返回51H,之后再發(fā)GET_IC_VER命令返回的都是43H,不知道和V1.2有什么關系?


把RD#信號與地斷開,用GPIO管腳控制,模擬使用Intel時序,使用GET_FILE_SIZE命令獲取文件長度就正常了,使用RD_HOST_CUR_DATA命令獲取文件內容也正常,問題算是解決了。

建議技術支持反饋給研發(fā)部門,CH378芯片的Motorola 并口時序可能有缺陷。

另外,用GET_IC_VER命令獲取版本信息,第一次返回數據51H,應該是把CH378從睡眠狀態(tài)喚醒,51H即CMD_RET_SUCCESS,然后可以用GET_STATUS命令獲取到中斷狀態(tài)USB_INT_WAKE_UP(E0H),再次用GET_IC_VER命令獲取版本信息,返回數據43H,如果是表示第3個版本的話,則可以理解為V1.2。


您好,命令返回的43H版本是最新的芯片,并口問題我會進行反饋


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频