mcu测试方案 请教单片机掉电后,如何快速的保存数据问题?
请教单片机掉电后,如何快速的保存数据问题?
因为题主的问题,我想估计从以上几个方面从哪里入手:
最好不要选用天然内部的flash来存储数据,内部flash的读写速度快,可靠性高。
要是用外置的flash或则是eeprom进行存储,flash一般是spi接口,决定到电磁干扰,MCU的响应速度等问题,除非是采用MCU的硬件SPI模块并且通信,SPI的clock时钟最低也就1MHz左右,发送中1个字节的数据差不多是需要10us,不考虑到删除区域flash的时间,存储100个字节的数据,如果没有考虑可靠性,是需要加载验证,大概需要5ms左右的时间。
而eeprom一般区分IIC接口,与SPI接口带有,以出口下高速IIC进行通信,存储100个字节的数据大概必须5ms左右的时候。
FLASH的特点是写数据没有办法由1扩写为0,由0重新编写为1必须整个page,的或整个sector,的或整个block并且擦除。
以STM32F051为例,一个page为1kByte,一个block为64kByte,擦除数据一个page大概需要的时间约20ms,在整个橡皮擦功能过程中,整个MCU是挂机的,也就是不执行任何操作。而FLASH的写操作比较好快,至少1个Byte前后历时1us。
必须有掉电检测电路,掉电怎么检测必须是从检测给MCU供电的LDO的或DC-DC的前级电压。
.例如MCU-3.3V的LDO电源供电,则不需要实际检测12V的电压来判断是否断电后。
将12V按照电阻分压之后,接入MCU的A/D检测检测口来确认如何确定掉电。
MCU供电的LDO或是DC-DC的前级并联连接起码的电容,以以保证电容的供电能可以保证MCU将数据读取。
也可以通过以下的步骤再确认电容的大小:
出具评估报告由掉电时前级电压供电的工作电流大小,MCU一但检测检测到掉电,不需要切掉耗电大的控制输出,诸如控制继电器输出的I/O口要立即断开连接。比如说20mA。
确认LDO的最少输入电压,比如5.3
确认推测掉电的电压,比如说10V,再确认掉电结束到LDO最多输入电压之间的压差,例如4.7V
去确认读取所有数据所需要的时间,.例如20ms。
参照公式计算所需电容的容量,CI*T/U20mA*20mS/4.7V85uF。可中,选择100uF的电容。
MCU否则的话先检测到掉电,需要切掉耗电大的控制输出,诸如再控制继电器输出的I/O口是需要立马断开。
在正常了工作时,早就准备着一块存储空间,将其橡皮擦功能拥有0xFF。
怎么检测到掉电之后,是可以不不需要擦除FLASH内容,可以再读取数据,这个可以浪费大量的时间。
mcu如何检测充电ic的chrg脚电平?
chrg给mcu的io口,mcu通过检测io的电平跳变,确认充电ic的chrg脚电平
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。