在Atmel SAM-D21系列微控制器上,许多外围设备使用的时钟与主CPU时钟异步,并且对这些外围设备的访问必须通过同步逻辑进行;在时钟相对于CPU时间较慢的外设上,这会增加一些非常大的延迟。例如,如果将RTC配置为使用1024Hz时钟(这似乎是设计意图),并且CPU以48Mhz运行,则读取“当前时间”寄存器将导致总线逻辑插入超过200,000个等待状态(最小1024Hz时钟的五个周期)。尽管有可能让CPU发出读取请求,执行一些其他不相关的代码,然后在以后返回200,000个以上的周期来获取时间,但似乎没有任何方法可以更快地实际读取时间。
根据我对同步的理解,一个单位同步电路会将信号延迟目标时钟的2-3个周期。同步多位数量会比较困难,但是有多种方法可以保证目标时钟的五个周期(比源时钟快)在五个时钟周期内具有可靠的行为,如果不是,则只能保证几个周期。Atmel SAM-D21的工作将需要在源时钟域中进行六个周期来进行同步,并且哪些因素会有利于其同步延迟足够长以至于需要“同步完成”中断的设计,而确保同步的中断则需要一个周期。同步延迟足够短,以致于不需要此类中断?