0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)掉電檢測(cè)與數(shù)據(jù)掉電保存方案解讀

電子設(shè)計(jì) ? 作者:廠商供稿 ? 2018-10-15 08:18 ? 次閱讀

單片機(jī)在正常工作時(shí),因某種原因造成突然掉電,將會(huì)丟失數(shù)據(jù)存儲(chǔ)器(RAM)里的數(shù)據(jù)。在某些應(yīng)用場(chǎng)合如測(cè)量、控制等領(lǐng)域,單片機(jī)正常工作中采集和運(yùn)算出一些重要數(shù)據(jù),待下次上電后需要恢復(fù)這些重要數(shù)據(jù)。因此,在一些沒有后備供電系統(tǒng)的單片機(jī)應(yīng)用系統(tǒng)中,有必要在系統(tǒng)完全斷電之前,把這些采集到的或計(jì)算出的重要數(shù)據(jù)存在在EEPROM中。為此,通常做法是在這些系統(tǒng)中加入單片機(jī)掉電檢測(cè)電路與單片機(jī)掉電數(shù)據(jù)保存。

用法拉電容可從容實(shí)現(xiàn)單片機(jī)掉電檢測(cè)與數(shù)據(jù)掉電保存。電路見下圖。這里首先用6V供電(如7806),為什么用6V不用5V是顯而易見的.電路中的二極管們一般都起兩個(gè)作用,一是起鉗位作用,鉗去0.6V,保證使大多數(shù)51系列的單片機(jī)都能在4.5V--5.5V之間的標(biāo)稱工作電壓下工作.而4.5-5.5間這1V電壓在0.47F電容的電荷流失時(shí)間就是我們將來在單片機(jī)掉電檢測(cè)報(bào)警后我們可以規(guī)劃的預(yù)警回旋時(shí)間。二是利用單向?qū)щ娦员WC向儲(chǔ)能電容0.47F/5.5V單向沖電。

兩只47歐電阻作用:第一,對(duì)單片機(jī)供電限流。一般地單片機(jī)電源直接接7805上,這是個(gè)不保險(xiǎn)的做法,為什么?因?yàn)?805可提供高達(dá)2A的供電電流,異常時(shí)足夠把單片機(jī)芯片內(nèi)部燒毀.有這個(gè)47歐姆電阻保護(hù),即使把芯片或者極性插反也不會(huì)燒單片機(jī)和三端穩(wěn)壓器,但這個(gè)電阻也不能太大,上限不要超過220歐,否則對(duì)單片機(jī)內(nèi)部編程時(shí),會(huì)編程失敗(其實(shí)是電源不足).第二,和47UF和0.01UF電容一起用于加強(qiáng)電源濾波.第三,對(duì)0.47F/5.5V儲(chǔ)能電容,串入的這只47歐電阻消除"巨量法拉電容"的上電浪涌.實(shí)現(xiàn)沖電電流削峰。

單片機(jī)掉電檢測(cè)與數(shù)據(jù)掉電保存方案解讀

現(xiàn)在我們算一算要充滿0.47F電容到5.5V,即使用5.5A恒流對(duì)0.47F電容沖電,也需要0.47秒才能沖到5.5V,因此我們可以知道:

1.如果沒有47歐姆電阻限流,上電瞬間三端穩(wěn)壓器必然因強(qiáng)大過電流而進(jìn)入自保.

2.長(zhǎng)達(dá)0.47秒(如果真有5.5A恒流充電的話)緩慢上電,如此緩慢的上電速率,將使得以微分(RC電路)為復(fù)位電路的51單片機(jī)因?yàn)樯想娞裏o法實(shí)現(xiàn)上電復(fù)位.(其實(shí)要充滿0.47UF電容常常需要幾分種).

3.正因?yàn)樯想姇r(shí)間太慢,將無法和今天大多數(shù)主流的以在線寫入(ISP)類單片機(jī)與寫片上位計(jì)算機(jī)軟件上預(yù)留的等待應(yīng)答時(shí)間嚴(yán)重不匹配(一般都不大于500MS),從而造成應(yīng)答失步,故總是提示"通信失敗".

知道這個(gè)道理你就不難理解這個(gè)電路最上面的二極管和電阻串聯(lián)起來就是必須要有上電加速電路.這里還用了一只(內(nèi)部空心不帶藍(lán)色的)肖特基二極管(1N5819)從法拉電容向單片機(jī)VCC放電,還同時(shí)阻斷法拉電容對(duì)上電加速電路的旁路作用,用肖特基二極管是基于其在小電流下導(dǎo)通電壓只有0.2V左右考慮的,目的是盡量減少法拉電容在單片機(jī)掉電時(shí)的電壓損失.多留掉點(diǎn)維持時(shí)間。

三極管9014和鉗制位二極管分壓電阻墊位電阻(470歐姆)等構(gòu)成基極上發(fā)射極雙端輸入比較器,實(shí)現(xiàn)單片機(jī)掉電檢測(cè)和發(fā)出最高優(yōu)先級(jí)的掉電中斷,單片機(jī)掉電保存程執(zhí)行。這部分電路相當(dāng)于半只比較器LM393,但電路更簡(jiǎn)單耗電更省(掉電時(shí)耗電小于0.15MA).

47K電阻和470歐姆二極管1N4148一道構(gòu)成嵌位電路,保證基極電位大約在0.65V左右 (可這樣計(jì)算0.6(二極管導(dǎo)通電壓)+5*0.47/47),這樣如果9014發(fā)射極電壓為0(此時(shí)就是外部掉電),三極管9014正好導(dǎo)通,而且因?yàn)?1單片機(jī)P3.2高電平為弱上拉(大約50UA),此時(shí)9014一定是導(dǎo)通且弱電流飽和的,這樣就向單片機(jī)內(nèi)部發(fā)出最高硬件優(yōu)先級(jí)的INX0掉電檢測(cè)中斷.

而在平時(shí)正常供電時(shí),因發(fā)射極上也大約有6*0.22/2.2=0.6V電壓上頂,不難發(fā)現(xiàn)三極管9014一定處于截止?fàn)顟B(tài),而使P3.2維持高電平的,單片機(jī)掉電保存中斷程序不被觸發(fā)。

最后還有兩個(gè)重要軟件和硬件note

軟件上:首先INX0在硬件上(設(shè)計(jì))是處于最高優(yōu)先級(jí)的,這里還必須要在軟件保證最高級(jí)別的優(yōu)先.從而確保單片機(jī)掉電時(shí)外部中斷0能打斷其他任何進(jìn)程,最高優(yōu)先地被檢測(cè)和執(zhí)行.其次在INX0的掉電保存寫入子程序模塊入口,還要用:

MOV P1,#00H
MOV P2,#00H
MOV P3,#00H
MOV P0,#00H
SJMP 掉電保存

來阻斷法拉電容的電荷通過單片機(jī)口線外泄和隨后跳轉(zhuǎn)掉電保存寫入子程序模塊.(見硬件要點(diǎn))

硬件上:凡是驅(qū)動(dòng)單片機(jī)外部口線等的以輸出高電平驅(qū)動(dòng)外部設(shè)備,其電源不能和電片機(jī)的供電電壓VCC去爭(zhēng)搶(例如上拉電阻供電不取自單片機(jī)VCC).而應(yīng)直接接在電源前方,圖中4.7K電阻和口線PX.Y就是一個(gè)典型示例,接其它口線PX.Y'和負(fù)載也雷同.這里與上拉4.7K電阻相串聯(lián)二極管也有兩個(gè)作用:1、鉗去0.6V電壓以便與單片機(jī)工作電壓相匹配,防止口線向單片機(jī)內(nèi)部反推電.造成單片機(jī)口線功能紊亂.2、利用二極管單向供電特性,防止掉電后單片機(jī)通過口線向電源和外部設(shè)備反供電.

上面的單片機(jī)掉電檢測(cè)電路,在與掉電保存寫入子程序模塊結(jié)合起來就可以保證在單片機(jī)掉電期間,不會(huì)因法拉電容上的積累電荷為已經(jīng)掉電的外部電路無謂供電和向電源反供電造成電容能量泄放縮短掉電維持時(shí)間.

有了這些基礎(chǔ),我們來計(jì)算0.47UF的電容從5.5V跌落到4.5V(甚至可以下到3.6V)所能維持的單片機(jī)掉電工作時(shí)間.這里假設(shè)設(shè)單片機(jī)工作電流為20MA(外設(shè)驅(qū)動(dòng)電流已經(jīng)被屏蔽)不難算出:

T=1V*0.47*1000(1000是因?yàn)楣ぷ麟娏鳛楹腊?/20=23.5秒!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    掉電保護(hù),超級(jí)電容沒放完電,重新上電,導(dǎo)致CPU檢測(cè)不準(zhǔn)確

    CPU有兩個(gè)引腳,一個(gè)引腳控制超級(jí)電容是否給CPU供電,另一個(gè)是CPU檢測(cè)電源是否掉電,檢測(cè)到高電平時(shí)不讓電容供電,檢測(cè)到低電平時(shí)電容供電,電源斷電之后,讓電容供電,
    發(fā)表于 10-24 09:43

    物聯(lián)網(wǎng)系統(tǒng)中空開產(chǎn)品掉電報(bào)警的實(shí)現(xiàn)方案

    掉電檢測(cè)和保護(hù)電路:就是對(duì)系統(tǒng)電壓進(jìn)行監(jiān)測(cè),當(dāng)系統(tǒng)電壓值下降到低壓警戒值時(shí),電路會(huì)發(fā)現(xiàn)并做出反應(yīng),發(fā)出一個(gè)警告信號(hào),處理器接收到警告信號(hào)之后馬上進(jìn)行數(shù)據(jù)保存等操作,防止系統(tǒng)數(shù)據(jù)丟失。
    的頭像 發(fā)表于 09-30 17:26 ?557次閱讀
    物聯(lián)網(wǎng)系統(tǒng)中空開產(chǎn)品<b class='flag-5'>掉電</b>報(bào)警的實(shí)現(xiàn)<b class='flag-5'>方案</b>

    增加AC-DC電源掉電試驗(yàn)結(jié)果與分析

    圍(通常是-2%)之外的時(shí)間差ST,如圖1所示。通俗地講,就是開關(guān)電源在沒有輸入后,輸出還能撐多久。很多情況下,系統(tǒng)在檢測(cè)到AC掉電后,需要對(duì)數(shù)據(jù)進(jìn)行保存、傳輸,對(duì)執(zhí)行器的狀態(tài)進(jìn)行設(shè)置
    發(fā)表于 06-20 14:46

    ESP32進(jìn)入light sleep電壓降低觸發(fā)掉電檢測(cè),怎么規(guī)避這個(gè)問題?

    之后,仍會(huì)出現(xiàn)重啟,只是打印的信息不同了。 請(qǐng)問:針對(duì)可能是進(jìn)入light sleep電壓降低觸發(fā)掉電檢測(cè),怎么規(guī)避這個(gè)問題?謝謝您
    發(fā)表于 06-20 07:05

    請(qǐng)問ESP32S3的OTA過程是否支持保存燒寫進(jìn)度,掉電重啟后從掉電前位置開始燒寫?

    請(qǐng)問ESP32S3的OTA過程是否支持保存燒寫進(jìn)度,掉電重啟后從掉電前位置開始燒寫? 例如OTA數(shù)據(jù)共需要20幀進(jìn)行傳輸,傳輸了10幀數(shù)據(jù)
    發(fā)表于 06-05 08:10

    AD7606B不掉電情況下切換SER模式,采集數(shù)據(jù)異常的原因?

    AD7606B上電狀態(tài) PAR 模式,采集數(shù)據(jù)正常;不掉電情況下 切換 SER 模式,采集數(shù)據(jù)異常; AD7606B上電狀態(tài)SER 模式,采集數(shù)據(jù)正常;不
    發(fā)表于 05-20 06:04

    STM8S003電壓不穩(wěn)定導(dǎo)致來回頻閃單片機(jī)無法復(fù)位怎么解決?

    電解電容,16V2200UF,導(dǎo)致瞬間掉電大概只能掉到4.5V(示波器抓?。?,本想是調(diào)節(jié)單片機(jī)掉電電壓,但是STM8無法調(diào)節(jié),后來想到一個(gè)辦法,在中斷里面寫上低于5V復(fù)位,這樣的話每次單片機(jī)
    發(fā)表于 04-25 06:16

    STM32F103C8T6 FLASH讀寫,重新上電(掉電)的話,初始化讀取出來的數(shù)據(jù)全都是FF了的原因?

    之前保存數(shù)據(jù);但是,如果是重新上電(掉電)的話,初始化讀取出來的數(shù)據(jù)全都是FF 了。 有人遇到過這種情況嗎?
    發(fā)表于 04-19 06:13

    touchgfx掉電重啟后卡死無法顯示怎么解決?

    萌新求助。。。在cubeIDE上生成的例程,debug調(diào)試時(shí)正常顯示,一旦掉電重啟就會(huì)卡死無法顯示,加載了freeRTOS,創(chuàng)建兩個(gè)任務(wù),一個(gè)touchgfx,一個(gè)led燈閃爍。掉電重啟后燈也不會(huì)亮
    發(fā)表于 04-08 07:37

    使用分散加載將部分程序放到RAM,RAM掉電數(shù)據(jù)就沒有了,如何復(fù)原?

    我使用分散加載將部分程序放到RAM,RAM掉電數(shù)據(jù)就沒有了,重新上電后,芯片是如何將RAM區(qū)程序復(fù)原的呢。
    發(fā)表于 03-06 07:01

    FLASH、EEPROM的區(qū)別和擴(kuò)展【硬件干貨】

    EEPROM和FLASH總體差異 ????部分MCU片內(nèi)不帶程序存儲(chǔ)器ROM,可執(zhí)行代碼只能放在外面的EEPROM、FLASH(外擴(kuò))中; ????單片機(jī)對(duì)于數(shù)據(jù)的處理和系統(tǒng)的大量數(shù)據(jù)采集,需要考慮
    的頭像 發(fā)表于 02-27 08:37 ?1995次閱讀
    FLASH、EEPROM的區(qū)別和擴(kuò)展【硬件干貨】

    當(dāng)BOD閾值設(shè)置為2.7V時(shí),VDDD電壓在不觸發(fā)BOD復(fù)位的情況下保持在2.7V以下所需的最大脈沖寬度是多少?

    以下波形表示 VDDD 和 XRES。 在確定單片機(jī)重置原因的過程中,觀察到以下波形。 VDDD 的 BOD(掉電檢測(cè))閾值設(shè)置為 2.7V。 盡管 VDDD 接近低于 2.7V 的值,但它很快就會(huì)
    發(fā)表于 01-31 08:16

    S7-1200如何實(shí)現(xiàn)內(nèi)部數(shù)據(jù)掉電保持?

    S7-1200 PLC 可以通過多種方式實(shí)現(xiàn)內(nèi)部數(shù)據(jù)掉電保持,以確保在斷電或重啟后數(shù)據(jù)不會(huì)丟失。
    的頭像 發(fā)表于 01-29 16:11 ?7252次閱讀

    GD32MCU如何實(shí)現(xiàn)掉電數(shù)據(jù)保存?#MCU #GD32 #單片機(jī) #嵌入式

    單片機(jī)mcu
    聚沃科技
    發(fā)布于 :2024年01月23日 09:39:20

    GD32MCU如何實(shí)現(xiàn)掉電數(shù)據(jù)保存?

    大家在GD32 MCU應(yīng)用時(shí),是否會(huì)碰到以下應(yīng)用需求:希望在MCU掉電時(shí)保存一定的數(shù)據(jù)或標(biāo)志,用以記錄一些關(guān)鍵的數(shù)據(jù)。
    的頭像 發(fā)表于 01-22 09:55 ?2940次閱讀
    GD32MCU如何實(shí)現(xiàn)<b class='flag-5'>掉電</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>保存</b>?