【经验】主控MCU芯片使用flash作EEPROM使用时代码异常丢失该如何解决?
近日,某客户反应,有一批仪表产品返修率突然很高(约30%),“症状”表现为代码丢失,并且,初步用了一些措施后,还是不能根除“病患”,这是什么原因?又该如何解决呢?
现场了解到,客户的产品是一个NTC型测温仪表,选用了SILICON LABS的C8051F350作为主控MCU,利用其24位精度ADC进行高精度模数转换。为了保存校准数据,及相关环境参数,并避免外扩EEPROM增加成本,他们充分利用了Silicon Labs C8051F350单片机FLASH可以作EEPROM使用的特性,使用了8位MCU C8051F350没有用的FLASH部分,拿出来存储客户自己的数据。
而且,还了解到,这个仪表的最终用户,他们是用在大型锅炉房内测温的,环境比较恶劣,产品之间用串口通讯,有电机,使用环境温度最高可以到约60℃等。
根据以前的经验, C8051F350这种拿FLASH作EEPROM使用、以及使用在工业锅炉房(环境恶劣)的用法,是典型的导致FLASH数据丢失的应用。而且,现场检查客户的板子还发现,他们使用了外部无源晶体,串口在通讯中,基本未做端口保护,3.3V系统上电容较大,这些更加“奠定了数据丢失的基础”。
根据多年的经验,Silicon Labs的8位MCU,不论C8051F系列还是新推的EFM8系列,都可以拿FLASH作EEPROM使用,只要方法正确,它不仅可以被放心大胆地用,更能给客户带来方便以及减少外扩EEPROM成本的好处。
那么,拿FLASH作EEPROM使用时要注意哪些方法呢?这也是上述C8051F350的FLASH异常丢失的有效解决方案。
措施一:FLASH的擦除代码及写代码,要严格遵守Silicon Labs提供数据手册要求的操作步骤来,比如在擦除代码中,首先禁止中断,然后置'1'程序存储器擦除允许位(PSCTL中的PSEE),以允许FLASH扇区擦除等,这在相应数据手册中都有详细的描述。
措施二:在给MCU供电(比如3.3V)的系统上,所接的电容不要太大,总体要控制在10uf左右,以此来减少该电源系统的上电时间,从而降低MCU在上电期间异常复位的概率。
措施三:对于凡是通过导线同外部连接的端口,或其他可能引入干扰的端口,要通过串电阻(比如100欧姆)、加TVS、加电容(比如10pf),等方式来进行端口保护,以此来减少芯片的异常复位。
措施四:在系统时钟选择上,尽量使用内部时钟。对于需要特殊频率或特殊精度、需要使用外部时钟的,也尽量要选择有源时钟。而对于选择了无源时钟的,晶体外壳一定要接地。并且,只要是选择了外部晶体的,在布局上都要尽量向MCU靠拢。如此,可大大降低系统时钟异常导致的单片机异常复位。
措施五:在启动配置文件(startup.A51)中,要用汇编语言,做如下处理:
1)开启电源监控【mov VDM0CN,#080H】;
2)将电源监控设为复位源【mov RSTSRC, #02H】;
3)关闭看门狗【mov PCA0MD,#040H】;
4)延时30ms.【可选】
当正确地使用了上述措施后,就可有效杜绝拿FLASH作EEPROM使用时代码异常丢失的现象。
相关技术文档:
Silicon Labs C8051F350/1/2/3 MCU数据手册 详情>>>
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 16
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(16)
-
用户56731903 Lv9. 科学家 2018-10-27很好!学习了!!
-
lg Lv4. 资深工程师 2018-01-10很好的文章
-
心有林夕 Lv4. 资深工程师 2017-12-30学习了
-
大欢哥 Lv7. 资深专家 2017-12-17谢啦,学习了
-
风一样的男子 Lv6. 高级专家 2017-12-17不错
-
用户46743402 Lv4. 资深工程师 2017-12-16好文章,学习
-
Elike Lv6. 高级专家 2017-12-09学习了,以后的应用中会多加注意
-
木鱼 Lv7. 资深专家 2017-12-08好货啊
-
Wayne Lv7. 资深专家 2017-11-30学习了
-
kelven Lv8. 研究员 2017-11-25收藏下,学习
相关推荐
【经验】C8051单片机Flash失效分析
本文将就 Silicon Labs C8051Fxxx单片机Flash失效的问题进行根因分析以及提出解决办法。
设计经验 发布时间 : 2017-07-27
【经验】如何正确使用8位MCU的PortMatch功能
Silicon Labs的8位MCU(C8051和EFM8)都具有PortMatch功能,此功能允许一个或多个端口IO引脚上的逻辑电平变化触发系统事件。
设计经验 发布时间 : 2018-02-08
Silicon Labs 8位单片机EFM8BB31 SPI通信调试注意事项
Silicon Labs EFM8BB31是一款资源丰富,高效率,小体积的8位单片机,已被许多用户选用,被广泛应用于消费电子,精密仪器,电源管理,工业控制自动化,智能传感器,汽车控制,安防监控等领域。在开发过程中,经常使用到SPI通信,EFM8BB31支持3线或4线模式的SPI主模式和从模式,在调试SPI通信的过程,有哪些注意事项呢?本文将详细介绍。
设计经验 发布时间 : 2019-04-10
【产品】集成12位高速ADC、DAC的8位MCU C8051F00x,最高执行速度达25MIPS
C8051F00x系列是Silicon Labs的一款高集成度的混合信号8位MCU,采用强大的8051微处理器,最高执行速度可达25MIPS。还集成了12位/10位多通道ADC、VDD监控器、看门狗定时器、时钟振荡器以及其他通用部件,可以作为真正的独立片上系统解决方案,可应用于诸如便携式医疗器械、测试设备和光纤系统等领域。
新产品 发布时间 : 2017-01-05
Silicon Labs 8位MCU 复位后是否可初始化位可加性RAM/BDATA(地址0x20-0x2F)?
是的,在启动文件(startup.a51或silabs_startup.a51)中,位可寻址的ram被初始化为0x00。
技术问答 发布时间 : 2020-03-02
EFM32单片机应用系列一:手持式激光测距仪设计参考
EFM32在众多领域有着不容小觑的作用,应用系列一讲述手持式激光测距仪设计参考,EFM32众多优势极大地缩短了开发者的开发时间。
新应用 发布时间 : 2016-03-14
【应用】这款8位MCU“一手包办”空气净化器的容性触摸按键
芯科推出的一款MCU产品EFM8SB10F8,以其特有的功能、性能及价格的优势,在空气净化器产品中,有着非常独到的应用。
新应用 发布时间 : 2019-09-05
【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。
设计经验 发布时间 : 2017-08-09
如何以高速信号采集的单片机提高消谐器参数测量仪精度?
本文以底层硬件电路和上层软件两大架构为基础,提出一种集成前端信号处理、电压电流实时采样处理并显示的能精准测量电压和电流峰值与有效值的方案,以解决电压和电流的波形会发生畸变时带来的误差问题。
新应用 发布时间 : 2019-07-02
EFM8BB2系列单片机PCA定时器16位PWM的工作机制是什么?
PCA定时器模块采用16位捕捉/比较模块定义PWM信号低电平时间的PCA时钟数,当PCA计数器与模块的值匹配时,CEXn的输出被置为高电平;当计数器溢出时, CEXn输出被置为低电平。通过将PCA0CPMn寄存器中的ECOMn、PWMn和PWM16n位置位来使能16位PWM方式。为了得到可变的占空比,通过匹配中断(ECCFn=1并且MATn=1)同步对捕捉/比较寄存器的写操作。
技术问答 发布时间 : 2017-05-05
单片机C8051F410 AD采集5V的电压如何实现?
C8051F410 AD的输入电压范围为0~Vref,Vref的最大值为2.5V,如果输入电压为5V,可以采用电阻分压的方法,以确保输入的电压不能超过Vref的最大值。
技术问答 发布时间 : 2017-02-20
Silicon Labs 公司的8位MCU EFM8SB系列单片机休眠时电流是多少,休眠时还有那些部分在工作?
Silicon Labs 公司的8位MCU EFM8SB系列单片机休眠时电流与RTC是否工作及工作电压有关,最小的休眠电流是0.05uA.(RTC关闭)。在休眠时高频时钟是关闭的,只有RAM&SFR可以保持及GPIO可以保持。
技术问答 发布时间 : 2019-03-11
推荐一款带ADC的小封装8位MCU,适用于对模拟性能、MCU性能以及电路板尺寸有比较高要求的场合。
推荐EFM8LB11系列8位MCU,该系列MCU内部集成了高精度ADC(14位)、4个12位DAC、内置温度传感器、模拟比较器以及丰富的数字外设和通信接口,FLASH大小为16/32KB,RAM为1.25/2.25KB,封装包括QFN24、QFN32、QFP32以及QSOP24,最小封装3x3mm,具有高性能、低功耗、小封装等特性,非常适用于高性能、低功耗、小封装,对模拟外设有更高要求的应用设计。
技术问答 发布时间 : 2017-05-05
使用32位MCU EFM32在调试窗口查看间接寻址寄存器(比如USB或者RTC寄存器)时,寄存器值似乎和写入这些寄存器的设置值不一致,为什么?
SimplicityStudio目前不支持以间接访问方式对这些寄存器的访问,如果需要调试这些寄存器,需要把这些寄存器读入到变量,然后在调式监察窗口查看这些变量的值。
技术问答 发布时间 : 2017-05-10
有没通用usb接口仪器用键盘处理芯片,通时支持选轮输入?
根据你的需求,给你推荐Silicon Labs EFM8UB系列8位MCU,带USB接口,可支持HID键盘功能。相关资料链接如下:EFM8 Universal Bee 系列 EFM8UB2 数据表
技术问答 发布时间 : 2018-11-30
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
登录 | 立即注册
提交评论