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.

[参考译文] MSP430F6779A:看门狗复位问题

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1372578/msp430f6779a-watchdog-reset-issue

器件型号:MSP430F6779A

工具与软件:

您好!

我将使用 msp430f6779A 控制器、并使用 emlib 和使用计量 GUI TI 工具生成的代码。 所有时钟初始化与生成的代码相同。 当我进行看门狗复位时、我的控制器不会通电。 我已经通过在所有初始化之前将引脚变为高电平进行测试、以测试代码是否卡在时钟初始化的 while 循环中。 有时控制器通电但10位 ADC (这种情况是在我将时钟切换到 MCLK 时、ADC 10为 ACLK、但 ADC 10位开始工作时)和24位 Σ-Δ ADC 不起作用、但如果我给上电复位、所有这些问题都会得到解决。 请提供帮助。  

我附加用于时钟初始化(32.7698kHz 晶体上没有外部电容器)和10位 ADC 初始化的代码。

时钟初始化:-

mclkFreq = 25165824;

static void hal_system_ClockInit(uint32_t mclkFreq)
{

    PMM_setVCore(PMM_CORE_LEVEL_3);

    UCS_turnOnLFXT1(UCS_XT1_DRIVE_0, UCS_XCAP_0);

    UCS_initClockSignal(
       UCS_FLLREF,
       UCS_XT1CLK_SELECT,
       UCS_CLOCK_DIVIDER_1);
    UCS_initClockSignal(
       UCS_ACLK,
       UCS_XT1CLK_SELECT,
       UCS_CLOCK_DIVIDER_1);

    UCS_initFLLSettle(
        mclkFreq/1000,
        mclkFreq/32768);
    }

ADC 10 初始化:-

 ADC10_A_init(ADC10_A_BASE,
                  ADC10_A_SAMPLEHOLDSOURCE_SC,
                  ADC10_A_CLOCKSOURCE_MCLK,
         ADC10_A_CLOCKDIVIDER_2);

     ADC10_A_enable(ADC10_A_BASE);

     /*
      * Base Address for the ADC10_A Module
      * Sample/hold for 16 clock cycles
      * Enable Multiple Sampling
      */
     ADC10_A_setupSamplingTimer(ADC10_A_BASE,
         ADC10_A_CYCLEHOLD_16_CYCLES,
         ADC10_A_MULTIPLESAMPLESENABLE);

     //Configure Memory Buffer
     /*
      * Base Address for the ADC10_A Module
      * Use input A3
      * Use positive reference of AVcc
      * Use negative reference of AVss
      */
     ADC10_A_setResolution(ADC10_A_BASE,
         ADC10_A_RESOLUTION_10BIT);
     ADC10_A_configureMemory(ADC10_A_BASE,
         ADC10_A_INPUT_A3,
         ADC10_A_VREFPOS_AVCC,
         ADC10_A_VREFNEG_AVSS);