打印

帮看下这个UCS寄存器是怎样被配置的

[复制链接]
1842|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用的是MSP430F5310单片机,对时钟初始化的时候,发现下边的问题的,不知道是怎么回事的,大家给分析下的啊。。

相关帖子

沙发
firstblood|  楼主 | 2013-3-21 13:36 | 只看该作者
void int_clk()  
{
  WDTCTL = WDTPW+WDTHOLD;                   //关闭看门狗
  PMAPPWD = 0x02D52;                        // Enable Write-access to modify port mapping registers
  P4MAP7 = PM_MCLK;
  PMAPPWD = 0;                                    // Disable Write-Access to modify port mapping registers
  P5SEL |= BIT4+BIT5;                       // Port select XT1
  
  UCSCTL3 |= SELREF_2;                      // Set DCO FLL reference = REFO// Increase Vcore setting to level1 to support fsystem=12MHz
  // NOTE: Change core voltage one level at a time..
  //SetVcoreUp (0x01);
  // Initialize DCO to 12MHz  
  __bis_SR_register(SCG0);                  // Disable the FLL control loop
  UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx
  UCSCTL1 = DCORSEL_5;                      // Select DCO range 24MHz operation
  UCSCTL2 = FLLD_1 + 374;                   // Set DCO Multiplier for 12MHz
                                            // (N + 1) * FLLRef = Fdco
                                            // (374 + 1) * 32768 = 12MHz
                                            // Set FLL Div = fDCOCLK/2
  __bic_SR_register(SCG0);                  // Enable the FLL control loop

  // Worst-case settling time for the DCO when the DCO range bits have been
  // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
  // UG for optimization.
  // 32 x 32 x 12 MHz / 32,768 Hz = 375000 = MCLK cycles for DCO to settle
  __delay_cycles(375000);
       
  // Loop until XT1,XT2 & DCO fault flag is cleared
  do
  {
    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
                                            // Clear XT2,XT1,DCO fault flags
    SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag
  UCSCTL4 |= SELA_0;                        // Set ACLK = LFXT1 = 32768Hz
  // UCSCTL4 =0x0233;                  
}

这是我对时钟相关寄存器的相关配置的,主要是大家帮着看下UCSCTL4寄存器的啊

使用特权

评论回复
板凳
firstblood|  楼主 | 2013-3-21 13:38 | 只看该作者
自始至终我没有配置啥UCSCTL4寄存器的,但是在仿真的时候就发现该寄存器被配置了。。

使用特权

评论回复
地板
firstblood|  楼主 | 2013-3-21 13:39 | 只看该作者
看下这个仿真截图的啊,我有些纳闷了

ucs1.jpg (33.54 KB )

ucs1.jpg

使用特权

评论回复
5
firstblood|  楼主 | 2013-3-21 13:41 | 只看该作者
UCS寄存器的值自动被配置成为0x044了,这个值之怎样来的啊,我的测试MCLk=SMCLK=12MHz

使用特权

评论回复
6
firstblood|  楼主 | 2013-3-21 13:43 | 只看该作者
这个是UCS4寄存器相关的各位配置说明的,大家给分析下的啊

ucs2.jpg (122.09 KB )

ucs2.jpg

使用特权

评论回复
7
hwk612167| | 2013-3-21 19:43 | 只看该作者
这个就是复位的默认值,rw-1没看到吗?

使用特权

评论回复
8
firstblood|  楼主 | 2013-5-25 23:47 | 只看该作者
我也看了资料的,但是没怎说默认值就是那的啊。。。

使用特权

评论回复
9
banalmaster| | 2013-5-29 11:01 | 只看该作者
UCS4的默认值就是0044,看寄存器标识的每位下面有R/W和初始值,仔细看看,就在你那个截图。

使用特权

评论回复
10
firstblood|  楼主 | 2013-7-14 20:09 | 只看该作者
这个是采用单片机内部倍频技术实现的,经过调整的,也是非常准的

使用特权

评论回复
11
firstblood|  楼主 | 2013-7-14 20:10 | 只看该作者
好了,谢谢各位楼上的关注的,我结贴了

使用特权

评论回复
12
hnsdyd| | 2015-3-18 23:23 | 只看该作者
Worst-case settling time for the DCO when the DCO range bits have been
  // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
  // UG for optimization.
  // 32 x 32 x 12 MHz / 32,768 Hz = 375000 = MCLK cycles for DCO to settle
  __delay_cycles(375000);
我想问一下这一段是什么意思

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

4492

帖子

9

粉丝