从上图可以清除的看出来,那个说的DCO的三个模式void CS_setupDCO( uint8_t mode )
使用参数所选模式配置 DCO。 如果选择旁路模式,则需要在 CLKIN 管脚接入外部数字时钟
信号来作为所有的设备(CPU、外设等) 的时钟信号。 ACLK 频率是不可以被编程的, 且固定在
旁路时钟频率除以 512。 使用外部吊足模式, 需要在 ROSC 管脚连接一个 20KΩ的电阻器。 与使
用内部电阻相比, 使用外部电阻模式,在绝对误差和温度漂移上, 可以提供更高的时钟精度。 请
根据你所选的设备型号对应的数据手册的详细情况来选择不同的模式。
该函数只有一个参数: mode。
mode: 该参数可以选择的量有 CS_INTERNAL_RESISTOR, CS_EXTERNAL_RESISTOR,
CS_BYPASS_MODE。
就是这个函数,图上给出了,对应的Rint,Rext,CLKIN,其中对DCOBYP置位时候选择CLKIN通道,就是传说中大家疑问的旁路模式,CS_BYPASS_MODE。
[size=16.470588684082px]也就是说旁路模式就是通过DCOBYP将输入旁路到外部的CLKIN,那么当然就电路复杂了,需要外部时钟源设备,还有使用Rext,就是选择外部电阻模式,就需要在ROSC上安装个电阻。选择内部电阻就是默认使用DCO输出16.384MHz.如果需要使用其他频率,需要通过编程CSIRFCAL,CSIRTCAL这两个寄存器。一般不推荐。
[size=16.470588684082px]另外如果使用外部电阻,则是使用20-kΩ 0.1% ±50-ppm/°C
这个规格的电阻,不过也是不推荐,毕竟内部有了电阻了,你再用外部的,不一定准确。同样,如果更改DCO发生频率,需要修改寄存器,不过库函数没有给出方法,那就是,不建议这样用。 |