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.

[参考译文] MSP430FR5730:FRAM写入问题

Guru**** 2549180 points
Other Parts Discussed in Thread: MSP430FR5730

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/575432/msp430fr5730-fram-write-issue

部件号:MSP430FR5730

您好,

我正在使用MSP430FR5730将摄像机闪光灯计数器存储在FRAM中。 counter和start_flag都是noinit变量,并存储在FRAM中。 以下代码在模拟中工作正常,但当触发真实的相机闪存时,它不起作用。 我切换了一个引脚,以确保边缘检测逻辑工作正常。 当闪光时,我每次都能看到示波器上的针脚切换。 但是,计数器从未改变。  

这是否意味着FRAM不能在可能有少许噪音的环境中使用? 或者我在这里错过了什么?

谢谢

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//在.cmd文件

//.TI.noinit中:{}> fram /*用于#pragma noinit *

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*
========= 标准MSP430包括=========
*/
#include <MSP4S.h>

/*
========= Grace Related includes =========
*/
#include <ti/MCU/MSP4I/Grace.h>
#include "stdint.h"
#include "driverlib.h"

#include "board.h"
/*
========= 主====
*/

#pragma NOINIT (counter)
uint16_t计数器;
#pragma NOINIT (start_flag)
uint16_t start_flag;

int main (void)
{
Grace初始化();//激活Grace生成的配置
//>>> 在此处填写用户代码<<<<

UINT8_t port1,port1_delay;
uint8_t i;

//init计数器位于空白板
上IF (start_flag!= 0x1298){
start_flag=0x1298;
counter=0;
}
gPIO_setOutputLowOnPin (GPIO_PORT_P2,gPIO_PIN4);
端口1=1;
端口1_DELAY 1= 1;
while (1){
port1=P2IN & BIT6;
if ((port1_delay!=0)&&(port1==0)){//为
(i=0;i<100;i++)下降边缘;//延迟约1us
端口1=P2IN和BIT6;//再次验证引脚状态以消除抖动;

gPI_outpin;pin;pb1

;检测到pip_debugu_1=;gPI_outpin;gPI=10;gPI_outback;gPI_outpin;gPI=10+

gPIO_setOutputLowOnPin(GPIO_PORT_P2,gPIO_PIN4);

}
port1_delay=port1;



}


返回(0);
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,彭
    您是如何模拟的?
    是否可以检查以确保变量未放置在MPU保护区域中? (简单的方法是检查是否设置了MPU违规标志)。

    您也可以尝试使用持久性声明。 以下是AppNote,概述了如何在CCS和IAR www.ti.com/.../slaa628.pdf中实现这一点
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能是因为计数器变量正在被优化,因为您读取它只是为了增加自身...

    尝试在其声明中加入“volatile”修饰符。

    此致,

    第页

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

    您好,Cameron,

    我使用FPGA切换输入引脚。 我可以看到计数器的变化以及在WFP 2.4 上生成的脉冲。 但是,当我将其连接到闪存板上的光学传感器时。 我只在WFP的2.4 上看到了脉搏,柜台从未改变过。

    我尝试了坚持。 但是 ,因为它需要初始化,调试器会自动执行初始化,所以我在连接调试器时丢失了计数器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我禁用了优化。 但挥发性是一个好的方面,我要尝试一下。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,彭
    您对此有什么运气吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    除非您很快回复,否则我需要关闭此项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Cameron,
    我没有找到一种方法来使它发挥作用。 FRAM似乎容易 受到噪音峰值的影响。 我们决定不再使用FRAM。 因此,如果您需要关闭它。 我对此很好。 但根本原因仍然不明。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这真的很奇怪。 我会尝试复制此内容,但我没有相机闪光灯和光电二极管来复制您的设置。

    您是否可以尝试逐步浏览代码以查看您是否确实遇到了INCREMENT行? 执行此操作时,请为变量设置监视表达式,以便可以观察计数器的增加。

    我确实怀疑这是噪音问题,但是,您可以继续向我发送示波器上的信号/噪音屏幕截图吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,彭
    您对我的上述问题有任何更新吗? 请回复,否则我需要关闭问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Cameron,

    我没有任何数据可供您更新,因为我们决定不使用FRAM。 已删除测试环境。 您可以关闭此TT。

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