FPGA挂CH376用户不多哦!WR_REQ_DATA问题

        BYTE_WRITE命令启动写操作,并输入16位请求字节数。当请求字节数为0时,仅用于刷新文件长度。所以一次写操作最多能处理65535个字节。

        WR_REQ_DATA命令用于向内部指定缓冲区写入CH376请求的数据块。首先读取的输出数据是数据块长度,如果数据长度为0,那么结束写操作并中断通知单片机。所以执行一次次命令,最多能处理255个字节。

        现在要保存总字节数为65535的文件,那就要执行WR_REQ_DATA命令(65535/255=)257次。在FPGA代码中用reg_no记录WR_REQ_DATA命令次数,用tx_cnt记录总字节数。

        现在奇怪的现象出现了,执行第一、第二次WR_REQ_DATA命令时数据块长度为255。第三次WR_REQ_DATA命令时数据块长度为2。然后有规律地持续下去。执行第四、第五次WR_REQ_DATA命令时数据块长度为255。第六次WR_REQ_DATA命令时数据块长度为2。

        还有那么多待处理的数据块,为什么会出现数据块长度为2的情况?这个情况正常吗?

01.jpg

第一次

02.jpg

第二次

03.jpg

第三次

"最多能处理255个字节。 现在要保存总字节数为65535的文件,那就要执行WR_REQ_DATA命令(65535/255=)257次。"  这个结论从何而来?再次回读手册关于字节写命令使用。如果每次都可以写255,那么还要回读一字节长度就没有意义了。


就是说每次WR_REQ_DATA命令处理多少字节,由CH376自己做主,对吧?主机只能根据CH376返回的字节数提供数据块


完美收官,数据块长度确实可以是1至255的任意数,也就是CH376返回的字节数是1、2、……255


只有登录才能回复,可以选择微信账号登录