我在学习定时器的时候TIMEA时,配置适中源的发现有四个可选时钟源ACL SMCLK TACLK和INCLK,前两个时钟源在basic clock module中有介绍,但是后两个没有在这章找到,我用TACLK INCLK做关键字,搜索整个PDF文档都没有找到这两个时钟源介绍,用户手册是在官网下载的对应我的芯片MSP43OF149,应该没有问题,谁有这方面的资料,共享一份给大家,谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我在学习定时器的时候TIMEA时,配置适中源的发现有四个可选时钟源ACL SMCLK TACLK和INCLK,前两个时钟源在basic clock module中有介绍,但是后两个没有在这章找到,我用TACLK INCLK做关键字,搜索整个PDF文档都没有找到这两个时钟源介绍,用户手册是在官网下载的对应我的芯片MSP43OF149,应该没有问题,谁有这方面的资料,共享一份给大家,谢谢
四个时钟源:
VLOCLK:片内超低功耗12KHz的内部振荡器。
XT2CLK:G2553是没有XT2CLK这个模块的。
DCOCLK:片内可数字控制的振荡器DCOCLK,在软件的调节下该时钟的输出范围为0.6MHz到26MHz。
LFXT1CLK:由外部时钟源提供的LFXT1CLK时钟源,也即LanuchPad开发板上未焊接的时钟电路,在这里我们可以焊接一个32.768KHz的低频时钟晶体由G2553的 XIN引脚输入。
他们几个的关系可以由下图表示:
在这三个时钟源的独立工作或是在三个时钟源相互协调配合(是可以通过软件配置的)下为2553系统提供了系统时钟ACLK、MCLK和SMCLK。ALCK、MCLK、SMCLK是和CPU或者外设连接起来的,而LFXT1CLK、XT2CLK、DCOCLK、VLOCLK这四个又是和ALCK、MCLK、SMCLK连接起来的,也就是说LFXT1CLK、XT2CLK、DCOCLK、VLOCLK是通过ALCK、MCLK、SMCLK和外设连接起来的。
上电后,系统默认使用的主系统时钟MCLK和子系统时钟SMCLK是同为DCOCLK产生的1MHz时钟,而辅助时钟ACLK则为内部VLOCLK产生的12KHz时钟。
上电后时钟的初始状态我们可以用Grace来查看:
可以看出MCLK和SMCLK都是DCOCLK产生的1MHz的时钟,ACLK则是VLOCLK产生的12KHz的时钟。
DCO时钟:
DCO时钟源产生的频率可以通过DCOCTL寄存器来设置寄存器来设定,通过设定DCOCTL中的高三位(其名字为DCOx),BCSCTL1基本时钟控制寄存器低四位(其名字为RSELx)就可以控制DCO振荡器产生100K~20M不等的时钟频率。设定时应尽量居中,以保持稳定。
1. DCOCTL, DCO Control Register
DCOx DCO频率选择寄存器,通过该位设置DCO的频率。
MODx 模式选择位。
2. BCSCTL1, Basic Clock System Control Register 1
XT2OFF G2553该位无效,详细请参阅官方技术文档。
XTS LFXT1,模式选择位
0 低频模式。
1 高频模式。
DIVAx 分频寄存器,分频后给ACLK提供时钟
00 /1。
01 /2。
10 /4。
11 /8。
RSELx DCO频率选择寄存器,通过该位设置DCO频率。
3. BCSCTL2, Basic Clock System Control Register 2
SELMx MCLK时钟源选择
00 DCOCLK。
01 DCOCLK,与00效果一样。
10 G系列单片机该位无效。
11 低频外部时钟。
DIVMx 时钟源分频寄存器,选择时钟源后经过该位分频后提供给MCLK
00 /1。
01 /2。
10 /4。
11 /8。
SELS SMCLK时钟源选择寄存器
0 DCOCLK。
1 外部晶振。
DIVSx 时钟源分频寄存器,选择时钟源后经过该位分频后提供给SMCLK
00 /1。
01 /2。
10 /4。
11 /8。
DCOR 该位保留。
4. BCSCTL3, Basic Clock System Control Register 3
XT2Sx G系列单片机该位无效
LFXT1Sx 对G系列单片机,当BCSCTL1寄存器中XTS = 0时,该位的设置才有效
00 外部接的是32768HZ的晶振。
01 保留位。
10 选择超低频外部时钟(VLOCLK)
11 数字外部时钟源。
XCAPx 振荡器电容选择寄存器,当XTS=0时该位有效,假如XTS = 1 或者LFXT1Sx =11, XCAPx应该设置为00
00 ~1pF。
01 ~6pF。
10 ~10pF。
11 ~12.5pF。
XT2OF 对G系列单片机该位无效
LFXT1OF LGXT1晶体振荡器故障状态寄存器
0 没有故障。
1 有故障。
5. IE1, Interrupt Enable Register 1中断使能寄存器
OFIE 晶体振荡器故障使能寄存器
0 禁止中断
1 使能中断
MSP430G22x0不支持该位。
6. IFG1, Interrupt Flag Register 1
OFIFG 晶体振荡器故障标志寄存器
0 没有发生中断。
1 有中断事件发生。
MSP430G22x0不支持该位。
有一些模块的时钟是有自己特有的时钟源的,如Timer_A:
Timer_A的时钟选择有四种:TACLK、ACLK、SMCLK和INCLK。Timer_A是不能选择MCLK作为时钟源的。而INCLK和TACLK是Timer_A特有的时钟源。
TACLK and INCLK are mentioned many times in MSP430F149 Data-sheet. You somehow missed them!
TACLK shares the same pin as P1.0, when selected, an external clock connected to this pin may be used to clock TimerA.
INCLK is also called TAINCLK. It shares the same pin as P2.1, when selected, an external clock connected to this pin may also be used to clock TimerA.
My problem has been resolved。Thanks for your help.