打印
[Atmel]

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

[复制链接]
663|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
31.6.2.10 输入端点的多包传输
     数据字节的总数在通常操作是写到PCKSIZE.BYTE_COUNT的。多包长度寄存器

(PCKSIZE.MULTI_PACKET_SIZE)用来存贮发送的字节数,当开始一个新的传输时必须写零。

     当一个IN令牌接收到的时候,PCKSIZE.BYTE_COUNT和PCKSIZE.MULTI_PACKET_SIZE被取出。如果

PCKSIZE.BYTE_COUNT减PCKSIZE.MULTI_PACKET_SIZE小于端点PCKSIZE.SIZE,端点BYTE_COUNT减去端点

PCKSIZE.MULTI_PACK_SIZE字节被传输,否则PCKSIZE.SIZE数的字节被传输。如果端点PCKSIZE.BYTE_COUNT是

PCKSIZE.SIZE的多倍,最后包发出将零长度如果AUOZLP比特是置1。

     如果一个最大装载长度的包被发出(如:不是最后的传输),MULTI_PACKET_SIZE将要被增加通过

PCKSIZE.SIZE。如果端点是不同步的EPSTATUS.DTLGIN比特将在传输完成后被切换。如果一枪战短包被发送(

如:不是最后传输),MULTI_PACKET_SIZE通过数据装载增加。EPSTATUS.BK0/1RDY将被清除

EPINTFLAB.TRCPT0/1将被设置。

31.6.2.11 乒乓操作

     当一个端点配置成乒乓操作,它输入输出数据缓冲(banks)都用为一个给定的单方向端点。方向选择通

过在EPCFG.EPTYPE0/1中的IN或OUT方向位并且配置反方向在EPCFG.EPTYPE1/0作为双缓冲。

     当乒乓操被一个端点使能,端点在相反的方向必须配置为双缓冲。使能端点的数据缓冲,数据地址指针

和字节记数器用作Bank 0,这时不使能端点的匹配寄存器用作Bank 1。







     Bank选择标志在EPSTATUS.CURBK指示了下一个传输哪个bank将被用,并且在每个传输后更新。根据

EPSTATUS.CURBK,EPINTFLAG.TRCPT0或者EPINTFLAG.TRFAIL0或EPINTFLAG.TRCPT1或EPINTFLAG.TRFAIL1在

EPINTFLAG和数据缓冲 0/1 准备好被设置(EPSTATUS.BK0RDY和EPSTATUS.BK1RDY)。EPSTATUS.DTGLOUT和

EPSTATUS.DTGLIN被更新只为了使能端点的方向。














相关帖子

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

本版积分规则

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

2398

主题

6950

帖子

67

粉丝