[讨论] 什么原因?MSP430F2001中的32768不起振

火辣西米秀   2020-8-19 07:35 楼主

配置了MSP430的内部时钟,但是其中的32768一直不起振,因为xin/xout外部有接器件,想请教下如何在xin/xout外部有接外部器件的情况下,使用32768这个时钟

下面是配置时钟的代码,以及xin/xout两个引脚的原理图

image.png

void SystemClock_Init(void)
{


if (CALBC1_12MHZ==0xFF) // If calibration constants erased
{
while(1); // do not load, trap CPU!!
}

DCOCTL = 0; // Select lowest DCOx and MODx settings
BCSCTL1 = CALBC1_12MHZ + DIVA_0 ; // Set range
DCOCTL = CALDCO_12MHZ; // Set DCO step + modulation*/
BCSCTL2 = DIVS_0+DIVM_1;
BCSCTL3 |= LFXT1S_0 ;
delay_us(50);   

}

回复评论 (6)

“因为xin/xout外部有接器件”

这两个引脚接有外部器件,如果32768石英晶体接上去还要起振,那么这些 “外部器件” 还能工作吗?

点赞  2020-8-19 09:54

本振回路对分布参数非常敏感,通常不准许回路里有其它无关元件,尤其是振荡器输入回路里,顶多准许在振荡器输出回路加高阻元件,比如一个CMOS门的输入,其它情况则完全不准许。

如果本振回路对应的IO必须复用,又必须用到32768Hz的外置本振,唯一的办法是外置有源晶振,但依然要求有源晶振的输出不能与外电路的输出发生电平竞争。但多数情况下,这种设计无实用意义。

上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
点赞  2020-8-19 17:00

TI 的範例:msp430x20x3_clks.c

 

//******************************************************************************
//
//  test OK!
//
//  MSP430F20xx Demo - Basic Clock, Output Buffered SMCLK, ACLK and MCLK/10
//
//  Description: Buffer ACLK on P2.0,
//  default SMCLK(DCO) on P1.4 and MCLK/10 on P1.1.
//
//
//  ACLK = LFXT1 = 32768, MCLK = SMCLK = default DCO
//  //* External watch crystal installed on XIN XOUT is required for ACLK *//    
//
//               MSP430F20xx
//             -----------------
//         /|\|              XIN|-
//          | |                 |  32kHz
//          --|RST          XOUT|-
//            |                 |
//            |       P1.4/SMCLK|--> SMCLK = Default DCO
//            |             P1.1|--> MCLK/10 = DCO/10
//            |        P1.0/ACLK|--> ACLK = 32kHz
//            |                 |
//
//  M. Buccini / L. Westlund
//  Texas Instruments Inc.
//  October 2005
//  Built with IAR Embedded Workbench Version: 3.40A
//******************************************************************************

#include  <msp430x20x3.h>

void main(void)
{

  WDTCTL = WDTPW +WDTHOLD;                  // Stop Watchdog Timer
  P1DIR |= 0x13;                            // P1.0, P1.1 and P1.4 outputs
  P1SEL |= 0x11;                            // P1.0, P1.4 ACLK, SMCLK output

  while(1)
  {
    P1OUT |= 0x02;                            // P1.1 = 1
    P1OUT &= ~0x02;                         // P1.1 = 0
  }
}

 

 

 

点赞  2020-8-19 18:34
引用: akii 发表于 2020-8-19 18:34 TI 的範例:msp430x20x3_clks.c   //******************************************************* ...

非常感谢

点赞  2020-8-24 07:40
引用: maychang 发表于 2020-8-19 09:54 “因为xin/xout外部有接器件” 这两个引脚接有外部器件,如果32768石英晶体接上去还要起振, ...

還有兩個 10~15pF的電容要接喔 ! 別忘記 !

点赞  2020-8-25 08:07

不错,一起涨知识啦。

点赞  2020-8-25 22:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复