msp430 单片机内部DCO时钟设置实际上就是一个RC振荡器去控制的。
DCO的设置:通过设置DCOCTL和BCSCTL1,设置DCO的频率
(1)DCO的调节:
设置DCOR比特来选择是外部电阻还是内部电阻,以确定一个基准频率
通过BCSCTL1寄存器的RSELx来进行分频,确定时钟频率;
通过DCOCTL寄存器中DCOx在标称频率基础上分段粗调,选择频率;
通过DCOCTL寄存器中MODx的值对频率进行细调,选择 DCOx 与 DCOx+1 之间的频率
注意:DCO工作在最高频率时,内部电阻正常值大约为200k,此时DCO的工作频率大约为5MHz。DCO的频率最大到最大的外部时钟频率,其外部时钟频率一般是在4-25m之间根据不同的单片机系列来判断
例子:
DCOCTL初始值为60H,即DCOCTL |= DCO1 + DCO2;
DCOCTL |= DCO0 + DCO1 + DCO2; // Max DCO
MOD0~MOD4:模式选择位,频率的微调一般保持默认即可
系统默认情况下,RSELx=4,像msp430f149默认情况下就是800k。
但是DCO不算是很稳定,当频率高时波动的比较厉害。在高精度下要注意使用。