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的情况?这个情况正常吗?
第一次
第二次
第三次