用可编程定时/计数器作脉冲发生器时,输出脉冲频率等于输入时钟频率除以计数值,但其数值是离散的,期望输出频率只能用这些离散频率点来近似,频率准确度随输出频率升高而下降。提高输入时钟频率,增加输入时钟源数能提高脉冲发生器输出频率准确度。
可编程定时/计数器是微控制器中常见的一种硬件模块,常用于生成各种频率的脉冲信号。在作为脉冲发生器使用时,其输出脉冲的频率是通过输入时钟频率除以预设的计数值来确定的。然而,由于计数值必须是整数,因此实际可获得的输出频率是输入时钟频率的离散分频值。这意味着期望的输出频率往往不能精确得到,而只能通过最接近的分频点进行近似,这导致了频率准确度的降低,尤其是在较高的输出频率下。
提高输出频率准确度的主要策略是提升输入时钟频率和增加可用的时钟源数量。增加时钟频率意味着有更多的分频选择,可以更精确地逼近期望的输出频率。同时,多个时钟源可以提供更多的频率组合,进一步提高频率的精确度。例如,如果一个计数器的最大计数值为nmax,那么可能的输出频率就有nmax个,从fin到fin/nmax,每个子频段的宽度为fin/(nmax+1)。输出频率的误差Δf取决于选取的计数值Np,它可能是N的整数部分n或者n+1。
在单时钟源的情况下,有三种主要的Np取值策略:
1. Np=n,输出频率高于期望值,误差Δf为正,随着f的增加,误差减小。
2. Np=n+1,输出频率低于期望值,误差Δf为负,随着f的增加,误差绝对值增大。
3. 以最小化误差原则选取Np,即在某些频率范围内选取n+1,在其他范围内选取n,这样可以减小最大误差。
方案③通常是最优的选择,因为它在每个子频段内的最大误差较小。输出频率的准确度评价标准是最大相对误差,其值越小,表明频率准确度越高。在fin固定的情况下,输出频率f越高,子频段宽度越小,相对误差的极值也越大,因此提高输出高频段的准确度对整体频率准确度的提升至关重要。
为了提高输出频率的准确度,可以采取以下方法:
1. 使用更高精度的输入时钟源,比如高精度晶体振荡器。
2. 增加可编程定时/计数器的计数值范围,允许更多的分频选择。
3. 设计动态调整计数值的算法,根据实际需要实时优化Np的选取,以减小误差。
4. 利用多个时钟源,结合不同的分频系数,以提供更多频率组合。
通过理解可编程定时/计数器的工作原理,优化输入时钟源和计数值设置,以及采用智能算法控制计数值,我们可以显著提高脉冲发生器的输出频率准确度。这对于需要高精度时序控制的应用,如通信、测量和控制系统,至关重要。