打印
[Atmel]

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

[复制链接]
632|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
31.6.2.8 输出端点的多包传输

    正常操作下接收的数据字节的数量存在端点的PCKSIZE.BYTE_COUNT。由于PCKSIZE.BYTE_COUNT是在每个

传输后更新,所以它必须在一个新的传输前清零。总接收的字节数必须被写到PCKSIZE.MULTI_PACKET_SIZE。

这个值必须是一个PCKSIZE.SIZE的倍数,否则多余的数据可以被写入SRAM的位置由应用程序的其他部分使用

    EPSTATUS.DTGLOUT管理非同步包并且EPINTFLAG.BK1RDY/BK0RDY掌管通常的操作。

    如果一个最大装载长度包被接收到,在传输完成后PCKSIZE.BYTE_COUNT将被通过PCKSIZE.SIZE增加,并

且EPSTATUS.DTGLOUT将切换如果端点不是同步的。如果更新EPSTATUS.BK1RDY/BK0RDY,并且

EPINTFLAG.TRCPT0/TRCPT1将要被设置。

31.6.2.9 管理输入传输






    当一个输入令牌被检测到并且令牌设备地址不匹配DADD.DADD,这个包装丢弃并且USB模块返回空闲等待

下一个令牌包。

    当地址匹配,USB模块检查是否在指定地址端点的EPCFG接收是使能,如果不是则包丢弃USB模块返回空闲

等待下一个令牌包。

    当端点使能,USB模块然后检查指定地址的输入端点的EPCFG,如果EPCFG.EPTYPE1没有设到输入,USB模

块返回空闲等待下一个令牌包。

    如果EPSTATUS中的EPSTATUS.STALLRQ1被设置,并且端是不同步的,一个STALL握手回返到主机并且

EPINTFLAG.STALL1被设置。

    如果EPSTATUS.BK1RDY被清除,EPINTFLAG.TRFAIL1被设置。如果端点是非同步,一个NAK握手返回到主机

    USB模块然后从指定的端点描述符中取出数据缓冲的地址(ADDR)。如果端点是非同步的通过数据缓冲地址指向的数据被发送到主机。对非同步端点一个DATA0或DATA1包被发送依据EPSTATUS.DTGLIN的状态。当在端点PCKSIZE.BYTE_COUNT指定的数据字节数量被发送,CRC增加并发送到主机。

    对同步端点为,EPSTATUS.BK1RDY被清除并且EPINTFLAG.TRCPT1被设置。

    对所有非同步端点,USB模块等待一个从主机来的ACK握手。如果一枪战ACK握手没有在16比特时间收到,USB模块返回空闲并且等待下一个令牌包。如果一个ACK握手成功收到EPSTATUS.BK1RDY被清除,EPINTFLAG.TRCPT1被设置EPSTATUS.DTGLIN被切换。






相关帖子

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

本版积分规则

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

2399

主题

6963

帖子

68

粉丝