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.

[参考译文] MSP430F5659:晶振问题32.768kHz

Guru**** 2553260 points
Other Parts Discussed in Thread: MSP430F5659

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/581281/msp430f5659-crystal-problems-32-768khz

部件号:MSP430F5659
主题中讨论的其他部件: MSPWARE

帮助!!! 我无法启动水晶表片。  我在4个不同的板上尝试了几个带12 pF电容器和不带12 pF电容器的晶体,否则可以正常工作。  任何建议都是这样

非常感谢。

晶体:

CM1303.2768万DZYT

AB26TRQ-32.768kHz-T (与 5529 Launchpad相同)

CFS-2063.2768万DZFB

我已将它们焊接到板上(请参阅布局)并直接焊接到针脚上。

以下是布局:

这是我使用的代码,所有的组合晶体都超时,失败。

#include "driverlib.h"
包含"msp430f5659.h"
#包括"hal.h"

#define gPIO_ALL gPIO_PIN0|gPIO_PIN1|gPIO_PIN2|gPIO_PIN3|gPIO_PIN4|gPIO_PIN5|gPIO_PIN6|gPIO_PIN7

void initPorts(void)

 //P9初始化

 //P1初始化LCD_CONTINT_PORT
 lcd_control_port_sel=整体端口is GPIO;
 LCD_CONTINT_PORT_DIR=Whole Port_is_output;
 LCD_CONTROL_PORT_OUT |= LCD_RDNOT_HI|LCD_WRNOT_HI|LCD_DONT_RESET_HI|LCD_BM1_HI;
 lcd_control_port_out &= lcd_cd_command_LO和lcd_not _selected_CS_LO和lcd_BM0_LO;

 //P2初始化未使用
 GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _ALL);
   GPIO_setAsOutputPin (GPIO端口P2,GPIO _ALL);

   //P3初始化LCD_BUS_PORT
   LCD_bus_port_sel=整体端口is GPIO;
   SET_LCD_BUS_to_OUTPUT;
   lcd_bus_port_out = 0x00;

   //P4初始化
   //WFP 4.0 HOLT_POWER_ON
   P4SEL =整体端口_是_GPIO;
   P4DIR =整体端口输出;
   P4OUT = HOLD_POWER_ON_HI;


   //P5初始化
   //WFP 5.4 backlight_control
   //WFP 5.5 PWR_KEY
   P5sel=整体端口是GPIO;
   P5DIR= Whole端口_is_output&~P5_Inputs;
   P5REN= PWR_KEY_PIN;
   P5OUT= PWR_KEY_PIN;

   //P6初始化
   //WFP 6.0 BAT_MONITOR
   //WFP 6.2 左键
   //WFP 6.4 zero_key
   P6SEL=整体端口_is_GPIO |BAT_MONITOR;
   P6DIR=Whole端口_is_output&~P6_inputs;
   P6REN=P6_Pullups;
   P6OUT=P6_Pups;

   //P7初始化
   //WFP 7.2 X2in.
   //WFP 7.3 X2OUT
   P7SEL=整体端口_is_GPIO |X2IN|X2OUT;
   P7DIR=Whole Port_is_output&~P7_Inputs;
   P7OUT=0x00;


 //P8初始化
   // WFP 8.5 UCB1SDA
   //WFP 8.6  
   //WFP 8.7 右键
   P8SEL=整体端口_is_GPIO |UCB1SDA |UCB.S.;
   P8DIR=Whole端口_is_output&~P8_inputs;
   P8REN=P8_Pullups;
   P8OUT=UCB.S.|P8_PULUPs;

   //P9初始化
   //WFP 9.0 UP_KEY
   //WFP 9.1 向下键
   //WFP 9.2 units_key
   //WFP 9.5 XRES
   //WFP 9.6 SWD_Clock
   //WFP 9.7 SWD_IO
   P9sel=整体端口_是_GPIO;
   P9DIR= Whole端口_is_output&~(P9_Inputs|XRES_PIN|SWD_Clock_PIN|SWD_Clock_PIN);
   P9REN=P9_Pullups;
   P9OUT=P9_Pullups;


   //PJ初始化
   GPIO_setOutputLowOnPin (GPIO端口PJ,GPIO _ALL);
   GPIO_setAsOutputPin (GPIO端口PJ,GPIO _ALL);
}

无符号char initClocks(UINT32_t mclkFreq)

 unsigned char status = STATUS_SUCCESS;

 STATUS=UCS_TRENONLFXT1WithTimeout (UCS_XT1_DRIVE_2,UCS_XCAP_232000);

 //UCS_initClockSignal (UCS_FLLREF,UCS_REFCLK_SELECT,UCS_CLock_diver_1);
 UCS_initClockSignal (UCS_FLLREF,UCS_XT1CLK_SELECT,UCS_CLock_diver_1);

 //UCS_initClockSignal (UCS_ACLK,UCS_REFCLK_SELECT,UCS_CLock_diver_1);
 UCS_initClockSignal (UCS_ACLK,UCS_XT1CLK_SELECT,UCS_CLock_diver_1);

 //status=UCS_turnOnLFXT1WithTimeout (UCS_XT1_DRIVE_3,UCS_XCAP_365000);

   ucs_initFLLSettle (mclkFreq/1000,mclkFreq/3.2768万);

 退货状态;
}


int main (void){
 WDTCTL = WDTPW | WDTHOLD;  //停止看门狗计时器
 P4DIR |= 0x02;     //将WFP 1.0 设置为输出方向
 P4DIR |= 0x04;

 用于(;;){
  volatile unsigned int I; // volatile,用于防止优化

  if(initClocks(100万)=status_fail){//  配置时钟。 MCLK=SMCLK=FLL=1MHz;ACLK=REFO=32kHz
   P4OUT |= 0x02;
   P4OUT &=~0x04;
  }
  否则{
   P4OUT &=~0x02;
   P4OUT |= 0x04;
  }

  I = 1万;     //软件延迟
  我是否--;
  while (i !=0);

 }

 返回0;
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您  应先检查SLAA322。 请特别注意布局指南,包括地面岛。 您与晶体相关的PCB布局和布线肯定可以更好。 布局很可能不是问题的主要原因,它会影响稳定性,而迹线的应变能力会影响晶体负载。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Gregory:

    请参阅MSPware (..\MSPWare_2_40_00_37\driverlib\examples\MSP430F5xx_6xx\UCS)....中提供的UCS_ex4_XTSourcesDCO内部示例 它应该能解决您的问题。

    此致,

    Vikas Chola

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是我建议的新布局。  红色为顶层,棕色为 接地,无电源平面或下方有迹线。  这是基于我对SLAA322的解释。  你怎么看?  您认为 错误的电容 会阻止其启动吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我更改了处理器类型,取出了HF内容,初始化了引脚并运行了该代码。 它将NMI ISR捕获为LF晶体故障
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gregory Lindstrom 说:
    这是我建议的新布局。[/QUOT]

    从轨迹长度角度看,这要好得多。 请密切注意SLAA322的图8。 您的布局看起来不相似。 您的布局在顶部*和*底部有基座岛,但在顶部有地面防护环,而在底部只有基座岛。 另外,请仔细阅读"PCB设计注意事项"。 不管怎样,即使初始布局也不能成为振荡器启动问题的原因,您也应该四处寻找软件问题,PCB错误/短路/开路/脏污,破碎的晶体/芯片或类似问题。 [编辑]即使将所有内容插入有趣的el-cheapo试验电路板,DIP-case MSP430的LF振荡器也会启动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这一行代码完成了这项工作。
    while (BAKCTL & LOCKIO) BAKCTL &=~(LOCKIO);//解锁XT1引脚以进行操作