TI论坛
直播中

李燕

7年用户 1541经验值
私信 关注

请问cc2538作为router节点,开关灯控制状态怎么记录?

本帖最后由 一只耳朵怪 于 2018-5-22 17:44 编辑

       有一个实际需求是这样的,cc2538作为router接收coordinator发来的开灯关灯指令,都可以正常执行,但是router偶尔自动重启以后,就没办法保持之前的状态了,比如重启前是开灯状态,重启后都变成默认状态了,灯是关着的。
        我考虑了如下几种方案:
       1、考虑过每次收到开关指令,都立即写到NV里面,在每次启动的时候都读取相应的NV,这样就能记录之前的状态,这是一种方法,但频繁读写NV会严重影响flash寿命。
       2、cc2538有没有掉电不丢失数据的ram区域,或者像rtc那样也行,我们外部加一个纽扣电池,这样每次都读写ram,就不存在寿命问题。
       3、外扩sram,sram单独纽扣电池供电,永不掉电,这样每次都读写外部sram,也不存在寿命问题,有没有外扩sram的方案,有没有相关的guide文档?

回帖(4)

李果

2018-5-22 03:14:31
这个功能是一个非常重要的功能么?一般在上电以后就工作一个初始化状态, 比方说亮灯,多少亮度,颜色等等。
举报

李燕

2018-5-22 03:27:39
引用: wenlonghbo 发表于 2018-5-22 03:14
这个功能是一个非常重要的功能么?一般在上电以后就工作一个初始化状态, 比方说亮灯,多少亮度,颜色等等。

很重要的,
因为断电或者自动重启是不确定的,所以每次接收到灯的状态变化,必须记录,否则突然重启或者设备断电再有电,状态就恢复默认了,
我们考虑了EEPROM的方式,每次收到状态变化都写EEPROM,开机的时候再去读,用的I2C总线
举报

李果

2018-5-22 03:47:27
引用: ggfvxv 发表于 2018-5-22 03:27
很重要的,
因为断电或者自动重启是不确定的,所以每次接收到灯的状态变化,必须记录,否则突然重启或者设备断电再有电,状态就恢复默认了,
我们考虑了EEPROM的方式,每次收到状态变化都写EEPROM,开机的时候再去读,用的I2C总线 ...

嗯,这样可以的。
举报

LoganKING

2018-6-7 15:12:58
引用: ggfvxv 发表于 2018-5-22 03:27
很重要的,
因为断电或者自动重启是不确定的,所以每次接收到灯的状态变化,必须记录,否则突然重启或者设备断电再有电,状态就恢复默认了,
我们考虑了EEPROM的方式,每次收到状态变化都写EEPROM,开机的时候再去读,用的I2C总线 ...

你好,我也遇到这个问题, 请问您是怎么解决的呢? 可不可以给个代码参考一下 ,谢谢啦
举报

更多回帖

发帖
×
20
完善资料,
赚取积分