首页 » 家电维修 » 油烟机维修 » stm32低功耗偷偷耗电「stm32 低功耗」

stm32低功耗偷偷耗电「stm32 低功耗」

admin 2024-09-01 21:05:08 油烟机维修 0

扫一扫用手机浏览

大家好,今天小编关注到一个比较有意思的话题,就是关于stm32低功耗偷偷耗电的问题,于是小编就整理了4个相关介绍stm32低功耗偷偷耗电的解答,让我们一起看看吧。

stm32pvd掉电储存怎么有时候行有时不行?

stm32低功耗偷偷耗电

要有足够的电容。。然后在稳压前级就有个直接检测电源掉电的,一般是用个大电阻降压后直接接个光耦,然后光耦输出,接到STM32同时设置为外部中断,当收到此中断后,STM32就知道外部已经断电,立刻开启写FLASH或外存储器。最好有个效验,以便每次上电,检测上次是否写入正确。如果正确继续,不正确说明上次可能没写完,你在增大电容或是其他方式争取让他写入完成。

请教单片机掉电后,如何快速的保存数据问题?

针对题主的问题,我想应该从以下几个方面入手:

尽量选用内部的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通过12V-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。
  • 根据公式计算所需电容的容量,C=IT/U=20mA20mS/4.7V=85uF。可选择100uF的电容。

MCU一旦检测到掉电,需要切掉耗电大的输出,比如控制继电器输出的I/O口需要立即断开。

在正常工作时,事先准备一块存储空间,将其擦除成为0xFF。

检测到掉电之后,可以不需要擦除FLASH内容,可以直接写入数据,可以节省大量的时间。

stm32低功耗偷偷耗电

STM32我想问下我的RTC程序掉电后时间又变为初始值?

你看看STM32固件库自带的例程,那里面是借用了一个BKP寄存器保存一个标志的。每次单片机启动时都读取这个标志并判断是不是预先设定的值:如果不是就初始化RTC并设置时间,再设置标志为预期值;如果是预期值就跳过初始化和时间设置,继续执行后面的程序。因此这样保证每次断电后再启动都是正常运行,你是不是没有这样处理?

请教单片机掉电后,如何快速的保存数据问题?

针对题主的问题,我想应该从以下几个方面入手:

尽量选用内部的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通过12V-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。

根据公式计算所需电容的容量,C=IT/U=20mA20mS/4.7V=85uF。可选择100uF的电容。

MCU一旦检测到掉电,需要切掉耗电大的输出,比如控制继电器输出的I/O口需要立即断开。

在正常工作时,事先准备一块存储空间,将其擦除成为0xFF。

检测到掉电之后,可以不需要擦除FLASH内容,可以直接写入数据,可以节省大量的时间。

stm32低功耗偷偷耗电

到此,以上就是小编对于stm32低功耗偷偷耗电的问题就介绍到这了,希望介绍关于stm32低功耗偷偷耗电的4点解答对大家有用。

相关文章

stm32低功耗偷偷耗电「stm32 低功耗」

大家好,今天小编关注到一个比较有意思的话题,就是关于stm32低功耗偷偷耗电的问题,于是小编就整理了4个相关介绍stm32低功耗偷...

油烟机维修 2024-09-01 阅读 评论0

英美达芯片「英美达芯片是哪个国家的」

大家好,今天小编关注到一个比较有意思的话题,就是关于英美达芯片的问题,于是小编就整理了5个相关介绍英美达芯片的解答,让我们一起看看...

油烟机维修 2024-09-01 阅读2 评论0