工具与软件:
您好!
我们在其中一个项目中使用了 MSP430FR5989。 我们为 FRAM 访问配置无等待周期(NWAITS = 0)。
FRCTL0_H =(UCHAR)(FRCTLPW >> 8);
FRCTL0_L = NWAITS_0; /* FRAM 等待状态:0 */
GCCTL0 =! UBDRSTEN /*在不可纠正的位错误检测标志上禁用 PUC。 */
|! UBDIE /*为不可纠正的位错误检测标志(UBDIFG)禁用 NMI。 */
|! CBDIE /*为可纠正的位错误检测标志(CBDIFG)禁用 NMI。 */
|! FRLPMPWR /*在保持 FRPWR 设置*/的同时禁用 FRLPMPWR
| FRPWR; /*启用工作模式。 */
GCCTL1 = 0x00; /*所有标志都被清除*/
FRCTL0_H = 0x00;
我们将针对 MCLK 使用8 MHz、并使用以下配置:
CSCTL1 = DCORSEL | DCOFSEL_3; /* 8 MHz */
大多数器件都可以正常工作、没有任何问题。 但少数器件已由 PUC 复位。 每个设备中发生了多次问题(2次或3次)、但在相同的几个设备中发生过此问题。 当我们通过读取系统复位中断矢量(SYSRSTIV)来了解复位原因时、除了曾经被 ACCTEIFG 访问时间错误复位之外、所有复位原因都是 MPUSEGIIFG。
读取微控制器数据表中的建议工作条件、可以看出、对于8MHz 处的 MCLK、我们可以使用 NWAITS = 0。
此外、我们查看了微控制器勘误文档、实施了为与频率偏差相关的可能问题或 PMM 配置推荐的权变措施(如 CS12和 PMM29推荐的权变措施)。
我的问题如下:
对于某些器件、工厂校准可能会受到影响、这种情况下微控制器的运行速度可能略高于8 MHz、且当 NWAITS = 0时会产生由 ACCTEIFG 引起的 PUC?
或者、在某些情况下、器件可能在短时间内以更高的频率运行、而这也会通过 ACCTEIFG 产生 PUC?
最后、这个情况有可能导致一个内存保护违反(正如 MPUSEGIIFG)、这正是最常见的原因?
提前感谢您的帮助。