CH376在U盘新建文件并写入数据,功能正常。
但是,写入数据的速度受限,无法满足每10ms完成一组16字节数据保存的需求。
情况说明如下:
采用异步通讯方式,波特率115200
写数据采用字节写入方式,每次写入16字节数据。
写数据的流程与CH376DS1文档的说明一致。
主程序2.5ms中断一次,判断芯片的状态码,并输出接下来的指令。
CMD_BYTE_WR_GO指令返回的状态码需要4次中断才能读到,即大致需要10ms的执行时间。
问题:10ms的等待时间是正常的吗?
CH376在U盘新建文件并写入数据,功能正常。
但是,写入数据的速度受限,无法满足每10ms完成一组16字节数据保存的需求。
情况说明如下:
采用异步通讯方式,波特率115200
写数据采用字节写入方式,每次写入16字节数据。
写数据的流程与CH376DS1文档的说明一致。
主程序2.5ms中断一次,判断芯片的状态码,并输出接下来的指令。
CMD_BYTE_WR_GO指令返回的状态码需要4次中断才能读到,即大致需要10ms的执行时间。
问题:10ms的等待时间是正常的吗?
您好,10ms是不正常的
串口通讯下376在完成操作给出中断的同时会直接送出状态码,建议使用单片机的串口接收中断功能直接判断返回值。
我在每次2.5ms的中断里,都会读取串口的FIFO数据,直到第4次中断,才能读到有数据。
如果是我采用轮询的问题,那么改用中断,最快也仅能缩短至7.5ms。中断脚INT并没有使用。
能否告知该命令的执行时间,应该是多少?
该命令执行不只是单方面的,在U盘那端可能会有不同的时间开销。
我用USB3.0的U盘试了一下,CMD_BYTE_WR_GO用时在2.5ms左右。
这个时间是否依然偏长?
单纯考虑这个16字节写入速度意义不是特别大,按照你这个速度计算数据传输带宽肯定是慢了,所以要结合实际使用情况进行测速