mcu測(cè)試方案 請(qǐng)教單片機(jī)掉電后,如何快速的保存數(shù)據(jù)問題?
請(qǐng)教單片機(jī)掉電后,如何快速的保存數(shù)據(jù)問題?因?yàn)轭}主的問題,我想估計(jì)從以上幾個(gè)方面從哪里入手:最好不要選用天然內(nèi)部的flash來存儲(chǔ)數(shù)據(jù),內(nèi)部flash的讀寫速度快,可靠性高。要是用外置的flash或則
請(qǐng)教單片機(jī)掉電后,如何快速的保存數(shù)據(jù)問題?
因?yàn)轭}主的問題,我想估計(jì)從以上幾個(gè)方面從哪里入手:
最好不要選用天然內(nèi)部的flash來存儲(chǔ)數(shù)據(jù),內(nèi)部flash的讀寫速度快,可靠性高。
要是用外置的flash或則是eeprom進(jìn)行存儲(chǔ),flash一般是spi接口,決定到電磁干擾,MCU的響應(yīng)速度等問題,除非是采用MCU的硬件SPI模塊并且通信,SPI的clock時(shí)鐘最低也就1MHz左右,發(fā)送中1個(gè)字節(jié)的數(shù)據(jù)差不多是需要10us,不考慮到刪除區(qū)域flash的時(shí)間,存儲(chǔ)100個(gè)字節(jié)的數(shù)據(jù),如果沒有考慮可靠性,是需要加載驗(yàn)證,大概需要5ms左右的時(shí)間。
而eeprom一般區(qū)分IIC接口,與SPI接口帶有,以出口下高速IIC進(jìn)行通信,存儲(chǔ)100個(gè)字節(jié)的數(shù)據(jù)大概必須5ms左右的時(shí)候。
FLASH的特點(diǎn)是寫數(shù)據(jù)沒有辦法由1擴(kuò)寫為0,由0重新編寫為1必須整個(gè)page,的或整個(gè)sector,的或整個(gè)block并且擦除。
以STM32F051為例,一個(gè)page為1kByte,一個(gè)block為64kByte,擦除數(shù)據(jù)一個(gè)page大概需要的時(shí)間約20ms,在整個(gè)橡皮擦功能過程中,整個(gè)MCU是掛機(jī)的,也就是不執(zhí)行任何操作。而FLASH的寫操作比較好快,至少1個(gè)Byte前后歷時(shí)1us。
必須有掉電檢測(cè)電路,掉電怎么檢測(cè)必須是從檢測(cè)給MCU供電的LDO的或DC-DC的前級(jí)電壓。
.例如MCU-3.3V的LDO電源供電,則不需要實(shí)際檢測(cè)12V的電壓來判斷是否斷電后。
將12V按照電阻分壓之后,接入MCU的A/D檢測(cè)檢測(cè)口來確認(rèn)如何確定掉電。
MCU供電的LDO或是DC-DC的前級(jí)并聯(lián)連接起碼的電容,以以保證電容的供電能可以保證MCU將數(shù)據(jù)讀取。
也可以通過以下的步驟再確認(rèn)電容的大小:
出具評(píng)估報(bào)告由掉電時(shí)前級(jí)電壓供電的工作電流大小,MCU一但檢測(cè)檢測(cè)到掉電,不需要切掉耗電大的控制輸出,諸如控制繼電器輸出的I/O口要立即斷開連接。比如說20mA。
確認(rèn)LDO的最少輸入電壓,比如5.3
確認(rèn)推測(cè)掉電的電壓,比如說10V,再確認(rèn)掉電結(jié)束到LDO最多輸入電壓之間的壓差,例如4.7V
去確認(rèn)讀取所有數(shù)據(jù)所需要的時(shí)間,.例如20ms。
參照公式計(jì)算所需電容的容量,CI*T/U20mA*20mS/4.7V85uF。可中,選擇100uF的電容。
MCU否則的話先檢測(cè)到掉電,需要切掉耗電大的控制輸出,諸如再控制繼電器輸出的I/O口是需要立馬斷開。
在正常了工作時(shí),早就準(zhǔn)備著一塊存儲(chǔ)空間,將其橡皮擦功能擁有0xFF。
怎么檢測(cè)到掉電之后,是可以不不需要擦除FLASH內(nèi)容,可以再讀取數(shù)據(jù),這個(gè)可以浪費(fèi)大量的時(shí)間。
mcu如何檢測(cè)充電ic的chrg腳電平?
chrg給mcu的io口,mcu通過檢測(cè)io的電平跳變,確認(rèn)充電ic的chrg腳電平