打印
[Atmel]

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

[复制链接]
473|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-8-13 19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主机指示能从设备接收数据通过清除在PSTATUS中的Bank 0/1准备好比特(PSTATUS.BK0/1RDY),这意味着bank的存贮空间对新的USB传输可用。
USB将执行输入请求同管道被用户冻结的时间一样长。
当管道没有冻结产生输入请求状态(PSTATUS.PFREEZE设为零)
当当前的bank已经满了,在PINTFLAG的传输结束0/1比特将被置位并且如果使能触发一个中断,并且PSTATUS.BK0/1RDY比特将被设置。
PINTFLAG.TRCPT0/1必须被通过软件清除用来识别中断。这个通过写一个1到指定地址管道的PINTFLAG.TRCPT0/1
用户通过读PCKSIZE.BYTE_COUNT来知道多少字节被读。
为了释放bank用户必须从管道描述里的地址ADDR读出输入的数据并且清PKSTATUS.BK0/1RDY比特。当输入管道是由多个bank组成,一个成功的输入交易将转换到下一个bank。另一个的输入请求将被主机执行同那个bankPSTATUS.BK0/1RDY比特被设置时间一样长。PINTFLAG.TRCPT0/1PSTATUS.BK0/1RDY将被相应地更新。
用户能跟踪当前bankPSTATUS中的当前Bank比特(PSTATUS.CURBK)并且在PSTATUSPSTATUS.DTGLIN)观察输入管道数据反转。
当管道被配置成单bank(PCFG(PCFG.BK)管道Bank比特为0),只有PINTFLAG.TRCPT0PSTATUS.BK0被使用。当管道被配置为双管道时(PCFG.BK1),PINTFLAG.TRCPT0/1PSTATUS.BK0/1都被使用。
31.6.3.11 输出管道管理
输出包由主机发出,所有的数据存在bank将被发出到设备防止bank被装满。在RAM中管道和它的描述符必须被配置。
主机可以发送数据到设备,当单bank时通过写设备的数据bank 0或者在双bank时写数据bank 0/1
当管道是不冻结时(PSTATUS.PFREEZE是零)输出包开始产生。
用户写输入数据缓冲通过在管道描述符中的指向的地址,并且允许USB发送数据,通过向PSTATUS.BK0/1RDY1。这也导致如果管道是双向bank配置,将转向下一个bank
PINTFLAGn.TRCPT0/1必须在设置PSTATUS.BK0/1RDY以避免错过PINTFLAGn.TRCPT0/1之前被清除。
31.6.3.12 交替管道
用户也许连续运行几个逻辑管道在一个相同的物理管道。它允许给在总线上的任何连接设备的任何设备端点分配地址。
在转换管道之前,用户应保存管道的上下文(管道寄存器和管道n的描述符)
在转换管道之后,用户应重新取出管道的上下文(管道寄存器和管道描述符n)并且个别PCFG,PSTATUS

相关帖子

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

本版积分规则

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

2399

主题

6963

帖子

68

粉丝