在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > msp430電壓監(jiān)控

            msp430電壓監(jiān)控

            作者: 時間:2016-11-13 來源:網絡 收藏
            一、使用限制:

            當使用MSP430x41x器件的時候,應該注意的是,x413,x417和x419在器件上有很大的區(qū)別。

            本文引用地址:http://www.biyoush.com/article/201611/316285.htm

            對于SVS這一塊,以413和419為典型,413只有1.9V這一檔電壓監(jiān)測,不僅電壓值不可選,還只能測來自VCC的電壓;419不僅具有SVSIN可以監(jiān)測外部的電壓,而非只局限在VCC內部電壓上,還有14種不同電壓可選,可以任意監(jiān)控內部或外部電壓了。

            如果要在413上做電池的低電量指示,非1.9V不報警,所以不適于鋰電池供電的設備,只適合于使用一次性干電池的設備使用。要想做鋰電池的指示,要么不用413,要么用比較器實現。

            二、使用誤區(qū):

            在使用41x器件上的SVS時,很多人可能誤讀了手冊,或是沒有細讀就使用了它,導致軟件編寫的錯誤,雖然不會引起大問題,但確實是不應該發(fā)生的問題。

            VLDx設置電壓值,0為關閉SVS,1-15均為啟用,其中15為監(jiān)控外部從SVSIN輸入的信號,1-14從小到大依次為從低至高監(jiān)控內部VCC電壓的。而在413器件上,由于只有1.9V一檔,只要是非0值效果都是一樣的,當然,如果要兼容41x全系列的軟件,還是應該使用對應的電壓值選項,也就是1。

            SVSON是最容易誤用的一個位。在網上很多例程在設置SVSCTL時會類似下面代碼這樣寫:

            #define VLD_3V7 0xe0

            void low_bat_test(void)

            {

            SVSCTL = SVSON + VLD_3V7;

            _NOP();

            _NOP();

            _NOP();

            if(SVSCTL & SVSOP)

            //低壓指示

            else

            //關掉低壓指示

            SVSCTL = 0;

            }

            其實是一個誤讀造成的。英文手冊中特別用大寫字母注出來,SVSON位不是用來打開SVS的,這個位會在VLDx>0的時候自動被打開,所以從上例中看的話很明顯,寫代碼的作者認為那是打開SVS用的開關。

            正確的寫法就是SVSCTL = VLD_3V7; 就行了,之后我們再查看SVSCTL的值就變成了0xe4。

            另一個沒有細讀就出的地方就是關于延時,雖然手冊中說SVSON是在VLDx>0時自動設置的,但如果那一章全部都細看過的話會知道另外兩件事:

            1、當啟動(從關閉變成開)或改變監(jiān)控電壓的時候,SVS模塊并不能馬上開始工作,必須要等一段時間,且啟動和更改電壓的等待時間也是不同的,分別約為50us和12us以內。

            2、SVSON位并不是在設置VLDx為非0值后立即動作的,它可以作為SVS系統(tǒng)穩(wěn)定的指示器使用,在SVS模塊準備好之前,SVSON位仍是0,當SVSON為1時則說明模塊準備完畢,可以工作了。

            所以我們可以把上述程序改成這樣子:

            #define VLD_3V7 0xe0

            void low_bat_test(void)

            {

            SVSCTL = VLD_3V7; //這句直接設置電壓值,且不要修改SVSON位

            while((SVSCTL & SVSON) != SVSON); //這句就是無限等待SVSON直到它為1才繼續(xù)

            if(SVSCTL & SVSOP)

            //低壓指示

            else

            //關掉低壓指示

            SVSCTL = 0;

            }

            注意到代碼與前邊的不同來了吧?本人也是拋磚引玉,希望大家有什么不同的看法也提出來,一起討論,如果我講的有錯誤,也請?zhí)岢鰜?,一起學習,一起進步。



            評論


            技術專區(qū)

            關閉