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.

[参考译文] MSP430F5329:XT1振荡器故障

Guru**** 2502205 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/692024/msp430f5329-xt1-oscillator-fault

器件型号:MSP430F5329

UCSCTL7中出现 XT1LFOFFG 故障

在开始时、我认为我应该得到它、因为"在一个 PUC 后、UCS 模块的默认配置为:
•LF 模式下的 XT1被选为 XT1CLK 的振荡源。 XT1CLK 被选为 ACLK "

因此、我预计会出现故障、  

那么、我使用将 ACLK 设置为 REFO
UCS_initClockSignal (UCS_ACLK、UCS_REFOCLK_select、UCS_Clock_divider);

并使用 UCS_TurnOffXT1关闭 XT1 ();

然后我尝试清除该标志:

如果(UCSCTL7和 XT1LFOFFG)//如果 XTL LF 模式被置位清零,那么这将被禁用

UCSCTL7 &=~XT1LFOFFG;//将其清零

和 XT1LFOFFG 百分比。  
它说

XT1振荡器故障标志(LF 模式)。 如果该位被置位、OFIFG 标志也被置位。
如果存在一个 XT1故障条件、XT1LFOFFG 被置位。 XT1LFOFFG 可以被清零
通过软件。 如果 XT1故障条件仍然存在、XT1LFOFFG 被置位。
0b =在最后一次复位后没有发生故障条件。
1b = XT1故障(LF 模式)。 在最后一次复位后发生 XT1故障。


如果它关闭并且 ACLK 在 REFO 中为32768Hz

SMCLK 和 MCLK 是 7、372、800 Hz、将 REFO 用作 DCO FLL 的输入、为什么会出现故障?  

void CLK_Init (void)
{
uint16_t status;
//我认为一切完成后、时钟为:
//使用 REFO 时、ACLK = 32768Hz
//使用 REFO 时、MCLK = 7、372800 Hz
//从 REFO 时、SMCLK = 7、372800 Hz
//设置 DCO FLL 基准= REFO
//任何外部晶振

(SCSR)_OFF; //确保 FLL 已打开。

UCS_initClockSignal (UCS_FLLREF、
UCS_REFOCLK_SELECT、
UCS 时钟分频器1);
//设置 ACLK = REFO
UCS_initClockSignal (UCS_ACLK、
UCS_REFOCLK_SELECT、
UCS 时钟分频器1);

UCS_initClockSignal (UCS_SMCLK、
UCS_DCOCLKDIV_SELECT、
UCS 时钟分频器1);

//设置比率和所需的 MCLK 频率并初始化 DCO
UCS_initFLSettle (7373、// kHz
225);// 7372.8/32.768 = 225

//在此模式下、我们的频率低于8MHz、因此我们可以让 PMMCOREV0 = 1.8V
//现在频率更低、我们可以设置电压。
状态= PMM_setVCore (PMM_CORE_LEVEL_0);
在(1)期间、如果(状态= STATUS_FAIL);//我们有问题。 调试时、在此处停止。

//pMM_enableSvsHSvmH ();//在此模式下,我们有高侧,所以打开。
//pMM_enableSvsLSvmL ();//我们需要在此模式下启用低侧。
//PMM_enableSvsLReset ();//我们永远不会看到低电压事件

UCS_TurnOffXT1 ();//如果
(UCSCTL7和 XT1LFOFFG)确保外部32.768kHz 晶体关闭//如果 XTL LF 模式被置位,则将其清除,这将被禁用
{
UCSCTL7 &=~XT1LFOFFG;//将其清除
}

UCS_TurnOffXT2 ();//确保外部14.7456MHz 晶振关闭
//验证时钟设置是否如预期
的时钟值[0]= UCS_getMCLK ();
clockValue[1]= UCS_getSMCLK ();
clockValue[2]= UCS_getACLK ();
T1Enable_Port ();
dDebug_7 (if);turnit_thock 值(dprint)
返回;
} 

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

    首先、为了澄清一点、我假设您的电路板上没有 XT1。 是这样吗? 此外、如果您不使用 XT1、那么您为什么会担心 XT1LFOFFG。 您是否看到 OFIFG 同样的问题?

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

    实际上情况并非如此。  

    我使用的原型板有32768 Hz 和14… 但为了节省成本和功耗、我们尝试使用内部 REFO 和 VLO 时钟执行一切操作。 如果它正常工作、我们就会很好。 如果它不起作用、我们有备份来使用晶体。 EE 认为内部时钟不够准确、因此他打开了外部时钟。 我相信是这样。 它看起来工作正常。  

    启动时、文档显示:
    一个 PUC 后、UCS 模块的默认配置为:
    •LF 模式下的 XT1被选为 XT1CLK 的振荡源。 XT1CLK 为 ACLK 选择。
    •为 MCLK 选择 DCOCLKDIV。
    •为 SMCLK 选择 DCOCLKDIV。
    •FLL 运行被启用并且 XT1CLK 被选为 FLL 基准时钟、FLLREFCLK。
    •在与通用 I/O 共用 XIN 和 XOUT 的器件上、XIN 和 XOUT 引脚被设定为
    通用 I/O 和 XT1在 I/O 端口配置为 XT1运行之前保持禁用状态。 如果
    XIN 和 XOUT 不与通用 I/O 共用、XT1被启用。
    •当可用时、XT2IN 和 XT2OUT 引脚被设定为通用 I/O 并且 XT2被禁用。

    我不希望它使用 XT1、也不希望出现振荡器故障。 我正在尝试清除所有故障。  



    我正在处理每次在代码中完全相同的位置发生的复位。 复位后的寄存器似乎表示、它最初是写入错误存储器位置的故障、然后是振荡器故障、现在是 PMM 密码错误、即使在它复位的任何位置都没有 PMM 语句。  

    现在、删除所有代码并开始重新添加代码后、可能是与导致复位的 ADC 相关的问题。 因为所有其他代码都返回、除了使用 ADC 读取内部温度并在此模式下使用 VLO 时钟运行的代码。 (但当我在从头开始重写之前先删除 VLO 减速时、也会发生这种情况。)

    因此、我正在尝试清除所有错误/警告或任何其他可能使该处理器复位的错误/警告。  这个问题之后还有另一个线程。







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

    首先、为了澄清一点、我假设您的电路板上没有 XT1。 是这样吗? 此外、如果您不使用 XT1、那么您为什么会担心 XT1LFOFFG。 您是否看到 OFIFG 同样的问题?

    是的、我看到的是 OFIFG、看起来它来自 XT1LFOFFG。