[技术问答] 断电保存数据 上电读取nm1120

[复制链接]
2731|11
 楼主| cr315 发表于 2025-2-18 11:00 | 显示全部楼层 |阅读模式
断电保存数据我是芯片断电定时器里读取I/O口高低电平,达到时间保存 有时候板子用的时间久了 就会保存读取失败 芯片复位,大佬们看一下我的保存参数有问题吗?
void remeber()
{      
               
                        SYS_UnlockReg();
      FMC_Open();
                        set_data_flash_base(DATA_FLASH_TEST_BASE);
                  FMC_Erase(sudu_base);
                        FMC_Write(sudu_base, set_xiansudu);


                        FMC_Write(first_base,0x19);
                  FMC_Close();
      SYS_LockReg();
}


这个是启动读取参数
int main()
{      
                unsigned int i;               
                unsigned int j;
                /* Initialize at begining */


                /* Initialize all register setting*/      
          delay_ms(10);
                SYS_Init();
//                SYS_UnlockReg();      
          SYS_LockReg();
                EADC_Init();
                PGA_Init();
                GPIO_Init();
                ECAP_Init();      
                Timer0_Init();
                Timer1_Init();
                EPWM_Init();      
          USCI_UART_Open(USCI1, 9600);
                RXD_set();
                Motor_Start();
                u8_StopMotor_Flag=1;      
          SYS_UnlockReg();
    FMC_Open();//开始读取
          first_set_Flag=FMC_Read(first_base);
                if(first_set_Flag==0x19)
                {
                set_xiansudu=FMC_Read(sudu_base);

                }
                FMC_Close();
                WDT_Open(WDT_TIMEOUT_2POW14, 0, TRUE, FALSE);
                SYS_LockReg();
               


    set_para();//设置参数
          Motor_Start();
               
                get_shijichangdu(666666);
                TM1668_Init(size[mishu[0]],size[mishu[1]],size[mishu[2]],size[mishu[3]],size[mishu[4]],size[mishu[5]],0x01);//显示实际长度

                NVIC_Configuration();
yhu1983 发表于 2025-7-11 17:04 | 显示全部楼层
你有开看门狗。保存读取过程有可能因为时间长,没有喂狗,导致看么狗复位.
jcky001 发表于 2025-7-30 16:20 | 显示全部楼层
在电压不稳定时写入可能导致数据损坏或芯片复位。
 楼主| cr315 发表于 2025-7-30 16:20 | 显示全部楼层
中断优先级冲突?
elephant00 发表于 2025-7-30 16:20 | 显示全部楼层
FMC_Erase()和FMC_Write()未检查返回值,无法确认操作是否成功。
stormwind123 发表于 2025-7-30 16:59 | 显示全部楼层
建议在电压检测比较器输出端增加施密特触发器,消除信号抖动。
flycamelaaa 发表于 2025-7-30 17:21 | 显示全部楼层
全局变量未保护。
powerantone 发表于 2025-7-30 19:22 | 显示全部楼层
看门狗配置有冲突。
probedog 发表于 2025-7-30 20:23 | 显示全部楼层
在电压跌落至2.7V前完成所有Flash操作.
少女诗篇 发表于 2025-9-20 14:27 | 显示全部楼层
NM1120 断电保存数据、上电读取:可利用其 EEPROM 或备份寄存器存储数据,断电后数据不丢失。上电初始化时,程序读取对应存储区域数据。需确保写入操作完成再断电,读取时先验证数据完整性,避免异常值影响系统。
吝啬晚安 发表于 2025-9-23 18:17 | 显示全部楼层
断电保存数据到 NM1120(EEPROM 类芯片)、上电读取,核心是通过 I2C 通信操作,需注意时序与数据校验。
🔧 关键步骤
断电前:MCU 通过 I2C 向 NM1120 发送写指令 + 地址 + 数据,等待写完成应答(避免数据丢失)。
上电后:MCU 初始化 I2C,发送读指令 + 目标地址,读取 NM1120 存储数据,校验后使用。
注意:需配置 NM1120 写保护引脚,防止误写;读取前确认芯片供电稳定。
一点点晚风 发表于 2025-10-4 13:11 | 显示全部楼层
NM1120 实现断电保存数据并上电读取,可利用其内部 EEPROM 或外接存储芯片。先将需保存数据写入 EEPROM 指定地址(通过 I²C 等接口操作),断电后数据留存。上电时,初始化通信接口,读取对应 EEPROM 地址数据,校验完整性后加载使用。需注意 EEPROM 写入次数限制,关键数据可冗余存储提升可靠性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1469

主题

5010

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部