打印
[Atmel]

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

[复制链接]
513|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

在一个间隔段被检测之后同步段的起始比特被检测。记数器马上更加下8个比特同步段的时间。在这8个比特时间结尾,记数器停止。在这时,记数器除8的前13个比特给出了新时钟分频器(BAUD.BAUD)并且后3个比特给出了小数部分(BAUD.FP),当同步段被接收,时钟分步(BAUD.BAUD)并小数部分(BAUD.FP)更新波特率发生寄存器(BAUD)在同步延进之后。


25.6.3.5 碰撞检测

      当接收和发射无论是通过管脚配置或者外部连接,传输碰撞能被检测通过设置碰撞检测允许比特(CTRLB.COLDEN)。为了碰撞被检测,接收和传输必须使能(CTRLB.RXEN=1 和 CTRLB.TXEN=1)

      碰撞检测是执行每个比特传输时通过检测接收的值与传输的值,见图所示。当传输是空闲时(没有传输处理),字符能被从RxD接收而不触发碰撞。




      下图展示了碰撞检测的条件和。由于这个因素,开始比特和第一个数据比特被接收有着相同的值作为传输。第二个接收数据比行被发现与传输比特在检测点不同,这指示发生了碰撞。



当一个碰撞被检测,USART自动按下列顺序执行:

。当前传输异常退出。
。传输缓冲释放。
。传输禁止(CTRLB.TXEN=0)
      。这个立即开始并且在同步时间后结束。CTRLB同步忙比特(SYNCBUSY.CTRLB)将要被设置直到结束。
      。这个结果将使TxD管脚变成三态
。碰撞检测位(STATUS.COLL)在错误中断标志(INTFLAG.ERROR)后设置。
。自从传输缓冲不再含有数据,传输结束中断标志(INTFLAG.TXC)设置。

   在一个碰撞之后,软件必须手动使能传输在继续之前。软件必须保证CTRLB同步忙比特(SYNCBUSY.CTRLB)
之前未被断言重新使能发送器。





相关帖子

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

本版积分规则

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

2398

主题

6954

帖子

67

粉丝