电子说
ACC简介
HICK时钟校准器(ACC)利用OTGFS作为设备时产生的SOF信号作为参考信号达到校准HICK的目的,SOF信号为主机发给设备其周期为1ms的脉冲信号。 ACC控制器采用“跨越回归”算法,可以将HICK频率尽可能校准到靠近目标频率。
图1. ACC控制器架构
ACC功能解析
主要特性
ACC控制器具备如下特性:
校准HICK,已达到对OTGFS设备提供48MHz±0.25%精度的时钟
SOF标志可选择来源:OTGFS1或者OTGFS2
可配置的触发校准功能的边界频率
两种校验方式:粗校验和精校验
状态标志:校准就绪标志和SOF参考信号丢失标志
带标志的中断源:校准就绪标志中断源和SOF参考信号丢失标志中断源
中断请求
拥有两个中断请求源:校准就绪中断源和SOF参考信号丢失中断源
表1. ACC中断源
当设置了对应的使能位,当产生了对应的中断,就会进入对应的中断处理函数。
图2. ACC中断示意图
校准原理
首先需要了解到,如果系统使用的是HICK作为系统时钟源,而本身ACC模块又是对HICK进行校准,那么此时整个系统是不具备校准条件的,因为没有一个准确的参考信号作为校准的基准,所以就引入了OTGFS的SOF信号。 SOF信号是外部主机提供的,主机将准确的SOF信号(1ms周期)给到设备(待校准系统),然后ACC模块采样SOF信号,并进行一系列的计算达到判定HICK是否准确,如若发现HICK不准确那么就会进行校准动作。
SOF周期信号:1毫秒的周期性必须是准确的,是自动校准模块能够正常工作的前提条件;
SOF信号通过PA8输出,如下图:
图3. SOF信号示意图
cross-return策略(跨越回归算法):计算出离理论值最近的校准值; 从理论上来说,可以将校准后的实际频率调校到离目标频率(8MHz)约0.5个step的精度范围以内。
图4. 跨越回归算法示意图
如上图所示,一旦触发自动校准的条件满足,自动校准就会按照step所规定的步长调整HICKCAL或者HICKTRIM。
跨越(cross):
在满足自动校验的条件后的第一个1毫秒采样周期内的实际采样值要么小于C2,要么大于C2。 当这个值小于C2,自动校准按照step的定义,增加HICKCAL或者HICKTRIM,直到实际采样值比C2大,实现实际采样值由小到大对C2的跨越。
当这个值大于C2,自动校准按照step的定义,减少HICKCAL或者HICKTRIM,直到实际采样值比C1小,实现实际采样值由大到小对C2的跨越。
回归(return):
在跨越完成后,比较在跨越前后的实际采样值和C2之间的差值(按绝对值计算),得到离C2最近的实际采样值,从而得到最佳的校验值HICKCAL或者HICKTRIM。
若跨越后的实际采样值和C2之间的差值小于跨越前的实际采样值和C2之间的差值,则以跨越后的校验值为准,并结束校验流程,直到满足下一个满足自动校验的条件。
若跨越后的实际采样值和C2之间的差值大于跨越前的实际采样值和C2之间的差值,则以跨越前的校验值为准,那么校验值会退回一个step,并返回到跨越前的那个校验值,并结束校验流程,直到满足下一个满足自动校验的条件。
按照cross-return策略,在理论上,可以得到离中心频率约0.5个step所对应的频率精度。
如下四种情形会启动自动校准:
CALON的上升沿(从0到1);
当CALON=1时,参考信号丢失之后又恢复;
当采样计数器的值小于C1;
当采样计数器的值大于C3。
在CALON的上升沿,即便采样计数器的值大于C1并小于C3,也会启动自动校准,其目的在于,在CALON之后,能够尽快将HICK的频率调整到中心频率的0.5个step以内。
以上四种情形的自动校准的结果均能将HICK的频率调整到中心频率的0.5个step以内。 所以为了获得最佳的校准精度,建议将step保持为默认值1。 若将step设为0,则HICKCAL或者HICKTRIM将无法改变,也即,无法校准。
ACC配置解析
以下对ACC的配置接口及流程进行说明。
函数接口
表2. 配置函数列表
配置流程
系统以HICK作为系统时钟源,并打开ACC时钟;
OTG_FS以HICK为时钟源并初始化OTGFS;
使能ACC相关中断;
配置C1/C2/C3值;
选择SOF源;
使能ACC并选择粗校验或者精校验。
案例 ACC校准HICK
功能简介
实现了使用ACC模块将HCIK校准在要求的精度内。
资源准备
硬件环境:
对应产品型号的AT-START BOARD
软件环境
projectat_start_f4xxexamplesacccalibration
软件设计
配置流程
开启ACC/OTGFS外设时钟
配置OTGFS设备和ACC模块
开启ACC
代码介绍
main函数代码描述
中断处理函数
实验效果
如若HICK时钟偏离正常值,ACC将自动启动校准(前提是OTGFS设备与主机成功连接),校准完成后在中断函数内会翻转LED2; 产生SOF信号丢失后也会进入对应中断函数内翻转LED3。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !