我的系统工作在震动的环境。请指导一下。
偶尔出现读数据错误(不在同一位置,应该不是文件错误)。
ch376有什么机制来提高可靠性呢。
谢谢先。
我的系统工作在震动的环境。请指导一下。
偶尔出现读数据错误(不在同一位置,应该不是文件错误)。
ch376有什么机制来提高可靠性呢。
谢谢先。
对于数据出错我们无法进行重试,只有USB口出现错误芯片才进行重试,你的数据错误出现在单片机和CH376接口直接的数据错误,我们芯片无法检测这些错误,解决办法是加强单片机和CH376接口直接的抗干扰能力。
你上面题到的是偶尔USB由于机械接触不完全导致的不能读的情况,芯片会自动去重新尝试读取对吗?这个尝试的时间是多长呢?我要考虑看门狗的时限。
还有就是如果出现U盘接触失效,读数据会一直等待呢?还是立刻返回一个空数据就结束了。
出现机械接触不完全的话,基本上我们芯片会判断出来U盘的拔出,这个时候是不会自动重试的。会很快给你中断状态。 如果是本身的USB数据出错的话,可能会出现一直等待,这个时候需要加看门狗,时间可以为5S左右。
这个尝试时间是很快的。肯定是US级的。 U盘接触失效是直接返回。不会一直等待的。返回U盘断开的错误代码。 机械接触不完全初始化就会不成功。即使是初始化完成后出现接触不完全,除非不接触或者USB信号过弱。实际角度来说USB口出现接触不完全的可能性极小。这种接触不良大都体现不可以通讯,而不是通讯时部分字节错误。
偶尔出现数据错误应该不是USB通讯出问题。MCU把数据给CH376,CH376再发给U盘。CH376和U盘通讯本身会有CRC校验出现错误的可能性较低,即使出现错误,也会自动再次重试,错误的数据U盘是拒收的,也就不会写到U盘中,大部分的情况是MCU送给CH376的数据是错误的,或者时序过快导致CH376采样错误。
谢谢楼上两位的解答,清楚了。