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.

[参考译文] MSP430I2041:TLV 校验失败、并且观察到错误的时钟频率

Guru**** 2581345 points
Other Parts Discussed in Thread: EVM430-I2040S

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/613827/msp430i2041-tlv-checsum-fails-and-incorrect-clock-frequency-observed

器件型号:MSP430I2041
主题中讨论的其他器件:EVM430-I2040S

您好!

对于我的应用、我正在尝试对 EVM430-I2040S 进行重新编程。 首先、我尝试检查 SMCLK 输出、方法是基本上使用 TI 示例代码并只更改 MCLK 和 SMCLK 的分频器

include "msp430.h"

void main (void){
WDTCTL = WDTPW | WDTHOLD; //停止看门狗计时器

CSCTL0 = 0; //内部电阻器
CSCTL1 |= DIVM__1 | DIVS__1;// MCLK = DCO,SMCLK = DCO

P1DIR |= BIT0 | BIT1; // P1.0、P1.1输出
P1SEL1 |= BIT0 | BIT1; // MCLK、SMCLK 引脚功能
P1SEL0 &=~(BIT0 | BIT1);

while (1);
} 

由于我没有执行校准例程、因此正如预期的那样、我观察到随机频率值为11.92MHz。

我包含了示例代码中提供的 low_level_init.c 文件、以便校准 DCO。 但是、我观察到在 Code Composer Studio 中、代码会卡住、无法到达主代码的第一行(运行和暂停按钮灰显、不会发生任何情况)。 我意识到_system_pre_init 函数正在计算不正确的校验和并到达 LPM4。

如果(*(unsigned int *) TLV_start)!=校验和)
{
/*如果校验和失败,请输入 LPM4 */
_bis_SR_register (LPM4_bits);
} 

这有什么影响? 我尝试注释掉这部分代码、并成功构建和调试了项目。 但是、在本例中、我观察到一个20.833MHz 的奇怪 SMCLK 输出频率!! (下面显示了逻辑分析仪上的 SMCLK 输出)

原因是什么? 是否有办法解决此问题?

谢谢

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

    您能否在调试器中检查 TLV 存储器范围(13C0–13FF)是否包含有效数据? 看起来信息存储器可能已被擦除。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Clemens、

    因此、我选中了"Memory Browser"中的"Using Save Memory"选项、我认为您是对的、因为整个 TLV 地址存储器内容为 FF。 是否有办法恢复这些条目或此时是否必须 更换微控制器?

    谢谢

    Nishant

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

    您可以尝试进行自己的校准、但更换芯片更容易…
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Clemens、

    感谢您的意见。 我认为我没有明确提出我对恢复的问题。 我还记得、在过去、尤其是对于 MSP430F24x 系列、用于在 INFOA 段中重新写入 DCO 常量的代码示例的示例代码、尤其是在它们被擦除时。 请注意、这里有一个名为 DCO_flashcal 的代码。

    www.ti.com/.../slaa431.pdf

    我只是想知道人们是否知道 i2041有类似的东西。

    谢谢、此致
    Nishant