FPGA掛CH376用戶不多哦!文件超過64KB,CH376無效??

????????用FPGA采集圖片,想用CH376保存圖片到U盤。CH376每次CMD_BYTE_WRITE只能傳輸64KB(0xFFFF)的數(shù)據(jù),但是一個(gè)圖片需要20*64KB以上。CH376DS1.PDF提到,8.4.5新建文件并寫入數(shù)據(jù),多次CMD_BYTE_WRITE命令+CMD_WR_REQ_DATA命令+CMD_BYTE_WR_GO命令寫入數(shù)據(jù)。


????????因此在verilog例子CH376_test.v中,想辦法循環(huán)CMD_BYTE_WRITE代碼段。


方法如下:

1、定義循環(huán)次數(shù)reg_t

2、在進(jìn)程“//reg_op3=1: clk上升沿,更新讀回的中斷狀態(tài)reg_err”中,BYTE_WRITE里面增加以下代碼

BYTE_WRITE:case(reg_i)

8'h05:begin

? ? reg_err<=!(reg_rx==8'h1e);//中斷狀態(tài),USB_INT_DISK_WRITE0x1E/* USB存儲器請求數(shù)據(jù)寫入 */

// ? ? if(reg_t<(FRM_PIXS/BYTE_LEN)) //0~29

// ? ? ? ? reg_t<=reg_t+8'h01;//發(fā)0xffff個(gè)字節(jié)的次數(shù)累加

end

endcase


3、在進(jìn)程“//reg_op4=1: clk下降沿,更新狀態(tài)reg_wr_state”中,BYTE_WR_GO里面增加以下代碼


BYTE_WR_GO:case(reg_i)

8'h03:begin

? ? if(reg_go)reg_wr_state<=WR_REQ_DATA;

? ? else if(!reg_err)begin

//if(reg_t<(FRM_PIXS/BYTE_LEN))//一幀視頻數(shù)據(jù)沒發(fā)送完

// ? reg_wr_state<=BYTE_WRITE; ? ?//回去重新啟動(dòng)下一個(gè)64KB數(shù)據(jù)

//else

? reg_wr_state<=CLOSE_FILE;

? ? end

? ? else ?reg_wr_state<=BYTE_WRITE;//什么條件切換

end

endcase


????????運(yùn)行后用SignalTap II抓到波形數(shù)據(jù)看,reg_t停留在等于0x04的狀態(tài),且一直處于reg_wr_state.WR_REQ_DATA狀態(tài)。在電腦查看U盤,WCH.TXT文件長度為1KB,打開文件只看見一個(gè)字符,比如“t”。


ch376_wchbbs.jpg


CMD_BYTE_WRITECMD_BYTE_WR_GO 的用法參考5.29章節(jié)說明。


5.29章節(jié)說明只是提到用CMD_BYTE_WRITE命令進(jìn)行一次最大為64KByte文件的啟動(dòng)寫操作,而我需要知道如何多次循環(huán)CMD_BYTE_WRITE(64KByte每次),因?yàn)槲业奈募h(yuǎn)遠(yuǎn)大于64KByte。


終于解決了!命苦哦!

----------------------------

9'h0ff:begin?

reg_i<=8'h00;

reg_i_8<=1'b1;

end

----------------------------

請官方重新設(shè)計(jì)這部分代碼


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

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