請教有過linux系統SD卡讀寫經驗的前輩。
我的項目是對FPGA上的SD卡部分做測試,在測試過程中發現在對SD卡所有領域進行讀寫操作時
1、bus width 選擇1-bit的速度4-bit是差不多的,這與我預想的不同,想知道問題出在哪里?(理論上4bit 速度應該是1-bit的4倍,至少也要比1bit快很多)
SD卡設置:SD總線模式 ,4-bit,single-block,非DMA
軟件用的是:DS-5 debug
測得寫速度:17KByte/sec
讀速度比寫速度快很多,這里就忽略了。
PS:??用示波器檢測到SD卡 4bit 時,4位數據線均有波形,說明確實是4位都在傳數據了。
2、起初猜測是不是時鐘頻率的問題
SD卡 CLK頻率開始時設置為50Mhz,后來改為12.5Mhz??發現速度還是沒變(用示波器檢測到CLK頻率確實改變了)
請問這是為什么?是程序哪里設置出了問題嗎?
3、還嘗試過更換SD卡,最開始用的是SDHC卡,后來了個板子用的microSDHC卡
卡速度也是class4,class10都有,然而速度都并沒有變。
PPS:本菜鳥在SD卡協議中看到一個地覺得有點關系,協議中提到:
{Some cards may require long and unpredictable times to write a block of data. After receiving a block of data and completing the CRC check, the card will begin writing and hold the DAT0 line low if its write buffer is full and unable to accept new data from a new WRITE_BLOCK command.
(有些卡可能會需要很長且不可預料的時間去寫一個block的數據。在接收了一個block的數據并完成
CRC check 后,若 write buffer 已滿,SD卡會持續寫操作并使DAT0保持低電平,不能接收新的WRITE_BLOCK 命令。)}
這個是不是跟寫速度很慢有關系呢?buffer這個問題怎么解決呢?清除或者更改buffer size?
PPPS:已經在資料中了解到multiple block寫入會比single要快,DMA模式比非DMA要快。
我的問題主要是為什么1bit 4bit 寫速度是一樣的,不是單純的想提高寫速度~
坐等解答!本菜鳥在網上能搜的不能搜到的地方都搜過了。看過 有人的問題跟我的一毛一樣。然而并沒人有回答。
今天將class 10??和class 4 的速度重新測了一下,發現class 10??比class 4??稍微快了一些。
速度(包括讀寫):class 4??183KByte/sec
class 10??240KByte/sec
好吧 我只是頂下帖子。
我在測速度的時候有兩種方法,一種是online 用DS-5 debug??另一種是把程序寫進SD卡里,在linux終端測試
發現終端的速度比online快好多。2樓就是用終端的速度。
下午的時候測了一下只讀和只寫,發現速度是一樣的,都是240KB/sec,跟讀寫速度一樣快!我要瘋了。
唔,之前程序出了問題,所以讀和寫的速度都不太對,現在測出來讀大概3MB/sec ,寫大概700KB/sec。
1bit,4bit,速度還是沒啥差別。
求大神指點!
唉 小編問一下數碼管的掃描頻率是多少的?