<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          msp430電壓監(jiān)控

          作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
          一、使用限制:

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

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

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

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

          二、使用誤區(qū):

          在使用41x器件上的SVS時(shí),很多人可能誤讀了手冊(cè),或是沒(méi)有細(xì)讀就使用了它,導(dǎo)致軟件編寫(xiě)的錯(cuò)誤,雖然不會(huì)引起大問(wèn)題,但確實(shí)是不應(yīng)該發(fā)生的問(wèn)題。

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

          SVSON是最容易誤用的一個(gè)位。在網(wǎng)上很多例程在設(shè)置SVSCTL時(shí)會(huì)類似下面代碼這樣寫(xiě):

          #define VLD_3V7 0xe0

          void low_bat_test(void)

          {

          SVSCTL = SVSON + VLD_3V7;

          _NOP();

          _NOP();

          _NOP();

          if(SVSCTL & SVSOP)

          //低壓指示

          else

          //關(guān)掉低壓指示

          SVSCTL = 0;

          }

          其實(shí)是一個(gè)誤讀造成的。英文手冊(cè)中特別用大寫(xiě)字母注出來(lái),SVSON位不是用來(lái)打開(kāi)SVS的,這個(gè)位會(huì)在VLDx>0的時(shí)候自動(dòng)被打開(kāi),所以從上例中看的話很明顯,寫(xiě)代碼的作者認(rèn)為那是打開(kāi)SVS用的開(kāi)關(guān)。

          正確的寫(xiě)法就是SVSCTL = VLD_3V7; 就行了,之后我們?cè)俨榭碨VSCTL的值就變成了0xe4。

          另一個(gè)沒(méi)有細(xì)讀就出的地方就是關(guān)于延時(shí),雖然手冊(cè)中說(shuō)SVSON是在VLDx>0時(shí)自動(dòng)設(shè)置的,但如果那一章全部都細(xì)看過(guò)的話會(huì)知道另外兩件事:

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

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

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

          #define VLD_3V7 0xe0

          void low_bat_test(void)

          {

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

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

          if(SVSCTL & SVSOP)

          //低壓指示

          else

          //關(guān)掉低壓指示

          SVSCTL = 0;

          }

          注意到代碼與前邊的不同來(lái)了吧?本人也是拋磚引玉,希望大家有什么不同的看法也提出來(lái),一起討論,如果我講的有錯(cuò)誤,也請(qǐng)?zhí)岢鰜?lái),一起學(xué)習(xí),一起進(jìn)步。



          關(guān)鍵詞: msp430電壓監(jiān)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();