2012TI杯竞赛学习-----------时钟系统篇
因为参加了暑假的TI杯电子设计大赛,所以学习MSP430系列单片机,截止目前学习已有十几天,本想等比赛结束再做总结,后与人交流后发现,及时写下学习心得,与他人进行交流,更有益于今后学习。
430不同于其他单片机,其5种低功耗模式,构成了他的独特性,低功耗模式得益于他的时钟系统,遂首先谈谈时钟系统的学习心得(本人用的是430F149核心板
1. msp430f149总共有三个时钟源:
a.DCO(<5mhz) b.LFXT1(32678hz) c.XT2(8mhz)
2.总共有三个时钟信号
A.ACLK, 辅助时钟。由LFXT1 1/2/4/8分频得到,用于外围低速设备,如串口通信。
B.SMCLK 子系统时钟 由XT2,DCO 1/2/4/8分频得到。默认是DCO提供。用于外围高速设备,如ADC,定时器。
C.MCLK 主系统时钟,三个时钟源均能提供,默认是DCO提供。
那么SMCLK,MCLK,的时钟源如何选择呢?主要就是通过以下两个寄存器进行设置。
寄存器BCSCTL1
BIT7 |
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BI2 |
BIT1 |
BIT0 |
XT0FF |
XTS |
DIVA.1 |
DIVA.0 |
XT5V |
RSEL.2 |
RSEL.1 |
RSEL.0 |
XTOFF :控制XT2振荡器,0开启。
XTS:LFXT1控制位,0是低频方式。
DIV1.1-DIV.0设置ACLK分频系数。
后面几位是调节内部DCO频率的。
寄存器BCSCTL2
BIT7 |
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BI2 |
BIT1 |
BIT0 |
SELM.1 |
SELM.0 |
DICM.1 |
DIVM.0 |
SELS |
DIVS.1 |
DIVS.0 |
DCOR |
BIT7-BIT6:选择MCLK的时钟源
00 -01.DCO
10 XT2
11 LFXT1
BIT5-BIT4: MCLK分频系数
BIT3:选择SMCLK时钟源 ,置1时为XT2
BIT2-BIT1:SMCLK分频系数
BIT0: 选择DCO电阻为内部或外部(一般用不到)
Msp430系列单片机低功耗是其典型的特征,一般内部DCO时钟源可以满足CPU工作,LFXT1亦可让CPU工作,需要CPU高速运转时,再设置XT2为时钟源。
eg1.MCLK=XT2. SMCLK=XT2
#include<msp430x14x.h>
void main()
{
unsigned char i;
WDTCTL=WDTPW+WDTHOLD;//关狗
P5DIR|=0XFF;//P5.4MCLK. P5.5 SMCLK ,P5.6ACLK
P5SEL |=BIT4+BIT5+BIT6;
BCSCTL1&=~XT2OFF;
P2DIR|=0XFF;
P2OUT|=0XFF;
do
{
IFG1&=~OFIFG;/// IFG1&=~0FIFG ;//清除振荡失效标志
for(i=0xff;i>0;i--);
}
while((IFG1&OFIFG)!=0);
P2OUT&=~BIT4;
BCSCTL2|=SELM1+SELS;
P2OUT&=~0XFF;
for(; ; );
}
用示波器测量发现:MCLK 8MHZ
SMCLK 8MHZ
ACLK 32678H
又测量了内部DCO,差不多在800khz左右。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?