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.

[参考译文] MSP430FR2422:DCO 工厂或软件修剪放大器;FRAM 写入

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1068297/msp430fr2422-dco-factory-or-software-trim-fram-write

部件号:MSP430FR2422

尊敬的 TI:

我有两个更高级别的问题,以获得一般理解。  

1.阅读《用户指南》中关于修整 DCO 的内容后,我不太明白为什么要在出厂修整时使用软件修整?  我更喜欢使用工厂方法,但它不能为您提供准确的值吗?  我在启动板中运行的代码使用软件调整为8 MHz。  使用工厂装饰时,我是否能获得相同的8 MHz?  在文档中,短语“当在最大有效值上选择 DCO 范围时”对我来说是令人困惑的。  

2.我的第二个问题是将数据保存到非易失性存储器,我认为这一部分是 FRAM 存储器。  在这方面,《用户指南》和特定于设备的数据表没有太多可供选择的内容。  我发现示例代码非常有说明性,但希望也能找到一些文档。  那么,您是否需要先删除64字节扇区,然后才能写入该扇区?  如果要更改以前写入的值,是否需要再次删除整个扇区?  我意识到您的驱动程序库有用于此的例程,但如果我只想保存几个字节,我不确定是否要将这些例程的整个库链接起来。  我复制了下面我要查看的一些示例代码。   

无论如何,感谢您回答我的问题。

布雷特

无效 write_SegC(字符值)

字符*Flash_PTR;//闪存指针
无符号 int i;

Flash_PTR =(CHAR *) 0x1040;//初始化闪存指针
FCTL3 = FKEY;//清除锁定位
FCTL1 = FKEY + erase;//设置 Erase Bit
*闪存_PTR = 0;//虚拟写入以擦除闪存

FCTL1 = FWEKEY + WRT;//设置 WRT 位以执行写入操作

对于(i = 0;i < 64;I++)

*Flash_PTR++=值;//写入闪存值
}

FCTL1 = FWEKEY;//清除 WRT 位
FCTL3 = FWEKEY + LOCK;//设置锁定位
}

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

    FRAM 不是闪存,写入 FRAM 也不需要任何特殊的东西。 没有擦除系统。 各种设备具有不同类型的内存保护,可以写入 FRAM 的保护区域,因此请阅读文档以了解适用的内容。

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

    感谢大卫的回应。  是的,现在我看到 FRAM 不闪烁,我有错误的代码示例。  我发现2422设备的3个代码示例非常有用。  我看到有一个 FRAM 实用程序库可以使用。  但是,我对《家庭用户指南》中有关这些部件的文档感到失望。  从第301页开始的 FRAM 控制器部分根本没有讨论将 FRAM 用作非易失性存储。  所以,我发现有3件事很有帮助,但我想说,如果你不打算使用 FRAM 实用程序库,文档最多是稀疏的。  我是否错过了其他一些文档?  谢谢,布雷特

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

    1. TLV 中的出厂校准值仅适用于最大频率16MHz。 对于软件剪裁,您可以参考它

    https://www.ti.com/lit/an/slaa992/slaa992.pdf

    2. FRAM 写入您可以参考示例代码

    dev.ti.com/.../node

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

    谢谢艾伦,你推荐的 DCO 饰件应用指南太棒了! 我现在明白了。  用户指南中关于出厂设置的第一段非常尴尬和混乱。  我确实找到了 FRAM 写入代码示例以及该文件夹中的另外两个示例。  我看到 SLAA628更详细地解释了事情。  我想知道 #pragma Persistent 是否可以用于结构?  我需要阅读更多内容并尝试一下。  再次感谢艾伦!