打印
[Atmel]

每天跟我读点资料:SAM D21数据手册(250)

[复制链接]
564|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-8-14 20:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
31.6.3.13 数据流错误
       这个错误只存在于同步和中断管道输入和输出方向。在PINTFLAG中的传输失败比特(PINTFLAG.TRFAIL)设置,这触发一个中断如果PINTENCLR/SETPINTENCLR/SET.TRFAIL)被设置。用户必须检查管道中断摘要寄存器(PINTSMRY)来发现触发中断的管道。然后用户必须通过察看管道bank状态寄存器检查中断bank的来源。如果在STATUS_BK(STATUS_BK.ERRORFLOW)中的错误流比特被设置,那么用户能检测数据流错误的来源。当用户知道端点是一个输入或输出,错误流被推出是输出下溢或是输入上溢。
如果主机试图从一个空bank中发射数据,在输出阶段一个下溢将发生。如果一个新的事务成功了,相关bank描述符的STATUS_BK.ERRORFLOW将被清除。
如果设备试图发射一个包当bank是江满的,一个上溢能发生在一个输入阶段。典型这个发生是当CPU不够快。包数据没有写到bank并且丢失。如果一个新的交易成功,相关的bank描述符STATUS_BK.ERRORFLOW将被清除。
31.6.3.14 CRC错误
       这个错误只在同步输入管道中发生。它设置PINTFLAG.TRFAIL,如果PINTENCLR/SET.TRFAIL被设置。用户必须检查PINTSMRY来找出触发中断的管道。
      然后用户必须检查中断bank的源,通过看每个bankbank描述符中STATUS_BK,并且如果在STATUS_BKSTATUS_BK.CRCERR)中的CTC错误比特被设置用户能检测CRC的错误源。在输入阶段如果USB检测一个损坏的包一个CRC错误能发生。输入包将仍然存贮在bank,PINTFLAG.TRCPT0/1将被设置。
31.6.3.15 PERR错误
     这个错误存在于所有的通道。它设置PINTFLAG.PERR中断,如果PINTFLAG.PERR被设置它将触发一个中断。用户必须检查PINTSMRY寄存器来发现哪个管道导致中断。
     如果在主机管道描述符中的STATUS_PIPE寄存器的一个错误段被设置并且在STATUS_PIPE中的错误记数字段(STATUS_PIPE.ERCNT)超过了在CTRL_PIPE定义的最大允许管道错误数(CTRL_PIPE.PERMAX)一个PERR错误发生。请参考STATUS_PIPE
     如果在主机描述符中的STATUS_PIPE寄存器中的一个错误字段被设置并且STATUS_PIPE.ERCNTCTRL_PIPE.PERMAX小,STATUS_PIPE.ERCNT增加。
     

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝