专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
msp430 的DCO怎么校正啊
2019-03-24 10:42
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
2465
2
1764
DCO怎么校正啊,网上找了半天也没有 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
迈尔风随
1楼-- · 2019-03-24 20:11
一般官方在出厂的时候就设置了一些校准值,分别有1M,8M,12M和16M,如果这些特定频率不是你想要的,你可以先将DCO作为MCLK的时钟源,然后设置(P1.1还是P1.2,忘记了)输入MCLK,外部用示波器或者其他测量设备进行测量,再通过逐步调节DCO相关的寄存器以达到你想要的频率
加载中...
Study_Stellaris
2楼-- · 2019-03-25 02:03
< :TI_MSP430_内容页_SA7 -->
本帖最后由 Study_Stellaris 于 2014-11-19 13:28 编辑
有一个官方的校准程序,我曾经也遇到过这个问题。这个是 G 系列的,你参考一下
/******************************************************************************
// MSP430G2xx3 Demo - Basic Clock, Output Buffered clocks with preloaded DCO
// calibration constants for BCSCTL1 and DCOCTL.
//
// Description: Buffer ACLK on P2.0, default SMCLK(DCO) on P1.4 and MCLK/10 on
// P1.1. DCO is software selectable to 1, 8, 12, or 16Mhz using calibration
// contstants in INFOA.
//
// ACLK = LFXT1 = 32768, MCLK = SMCLK = Selectable at 1, 8, 12 or 16Mhz
// //* External watch crystal installed on XIN XOUT is required for ACLK *//
//
// MSP430G2xx3
// -----------------
// /|| XIN|-
// | | | 32kHz
// --|RST XOUT|-
// | |
// | P1.4/SMCLK|-->SMCLK = Default DCO
// | P1.1|-->MCLK/10 = DCO/10
// | P1.0/ACLK|-->ACLK = 32kHz
//
// D. Dang
// Texas Instruments Inc.
// December 2010
// Built with IAR Embedded Workbench Version: 3.42A
//******************************************************************************
#include <msp430g2553.h>
void main(void)
{
WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
{
while(1); // If calibration constants erased
// do not load, trap CPU!!
}
//1Mhz
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */
/* //8Mhz
BCSCTL1 = CALBC1_8MHZ; // Set range
DCOCTL = CALDCO_8MHZ; // Set DCO step + modulation */
/* //12Mhz
BCSCTL1 = CALBC1_12MHZ; // Set range
DCOCTL = CALDCO_12MHZ; // Set DCO step + modulation*/
/* //16Mhz
BCSCTL1 = CALBC1_16MHZ; // Set range
DCOCTL = CALDCO_16MHZ; // Set DCO step + modulation*/
P1DIR |= 0x13; // P1.0,1 and P1.4 outputs
P1SEL |= 0x11; // P1.0,4 ACLK, SMCLK output
while(1)
{
P1OUT |= 0x02; // P1.1 = 1
P1OUT &= ~0x02; // P1.1 = 0
}
}
复制代码
加载中...
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
有一个官方的校准程序,我曾经也遇到过这个问题。这个是 G 系列的,你参考一下
- /******************************************************************************
- // MSP430G2xx3 Demo - Basic Clock, Output Buffered clocks with preloaded DCO
- // calibration constants for BCSCTL1 and DCOCTL.
- //
- // Description: Buffer ACLK on P2.0, default SMCLK(DCO) on P1.4 and MCLK/10 on
- // P1.1. DCO is software selectable to 1, 8, 12, or 16Mhz using calibration
- // contstants in INFOA.
- //
- // ACLK = LFXT1 = 32768, MCLK = SMCLK = Selectable at 1, 8, 12 or 16Mhz
- // //* External watch crystal installed on XIN XOUT is required for ACLK *//
- //
- // MSP430G2xx3
- // -----------------
- // /|| XIN|-
- // | | | 32kHz
- // --|RST XOUT|-
- // | |
- // | P1.4/SMCLK|-->SMCLK = Default DCO
- // | P1.1|-->MCLK/10 = DCO/10
- // | P1.0/ACLK|-->ACLK = 32kHz
- //
- // D. Dang
- // Texas Instruments Inc.
- // December 2010
- // Built with IAR Embedded Workbench Version: 3.42A
- //******************************************************************************
- #include <msp430g2553.h>
- void main(void)
- {
- WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer
- if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
- {
- while(1); // If calibration constants erased
- // do not load, trap CPU!!
- }
- //1Mhz
- BCSCTL1 = CALBC1_1MHZ; // Set range
- DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation */
- /* //8Mhz
- BCSCTL1 = CALBC1_8MHZ; // Set range
- DCOCTL = CALDCO_8MHZ; // Set DCO step + modulation */
- /* //12Mhz
- BCSCTL1 = CALBC1_12MHZ; // Set range
- DCOCTL = CALDCO_12MHZ; // Set DCO step + modulation*/
- /* //16Mhz
- BCSCTL1 = CALBC1_16MHZ; // Set range
- DCOCTL = CALDCO_16MHZ; // Set DCO step + modulation*/
- P1DIR |= 0x13; // P1.0,1 and P1.4 outputs
- P1SEL |= 0x11; // P1.0,4 ACLK, SMCLK output
- while(1)
- {
- P1OUT |= 0x02; // P1.1 = 1
- P1OUT &= ~0x02; // P1.1 = 0
- }
- }
复制代码一周热门 更多>