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

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > PXA270的電池充電及電量計(jì)量的設(shè)計(jì)

          PXA270的電池充電及電量計(jì)量的設(shè)計(jì)

          作者: 時(shí)間:2011-09-30 來源:網(wǎng)絡(luò) 收藏

          隨著技術(shù)的發(fā)展和普及,手持設(shè)備出現(xiàn)在越來越多的場(chǎng)合。手持設(shè)備以體積小、重量輕、可攜帶性好等優(yōu)勢(shì)吸引了各種電子設(shè)備向手持方向轉(zhuǎn)型和發(fā)展,同時(shí)也必然地提出了問題。手機(jī)、數(shù)碼相機(jī)、MP3、筆記本、PDA等手持設(shè)備都必備1個(gè)電路以及可以在手持設(shè)備顯示界面上反饋當(dāng)前電量的計(jì)量電路。本文通過2款高性能的芯片LM3658和DS2786,以處理器為例,介紹1種可應(yīng)用于各種手持設(shè)備場(chǎng)合的電路模塊。

            1 硬件設(shè)計(jì)

            1.1 處理器簡(jiǎn)介

            嵌入式處理器是Intel公司推出的基于XS-cale架構(gòu)的新一代高性能處理器,主用應(yīng)用于高端無線手持和移動(dòng)設(shè)備。PXA270主頻可以設(shè)置在312~* MHz之間,內(nèi)部集成了WMMX技術(shù),擁有高性能、低功耗的多媒體加速能力,可以很好地支持音頻、視頻解碼。同時(shí)它集成了Intel先進(jìn)的SpeedStep技術(shù),可以動(dòng)態(tài)地調(diào)節(jié)CPU的性能,實(shí)現(xiàn)高效的功耗控制。此外,PXA270內(nèi)部提供了UART、I2C、I2S、USB等各種常用接口,使得PXA270可以應(yīng)用在各種場(chǎng)合。

            1.2 電池電路

            由于PXA270出色的移動(dòng)性能,電池供電成為了PXA270系統(tǒng)的必需電路。本系統(tǒng)中的充電芯片選用了美國(guó)國(guó)家半導(dǎo)體公司(National Semi-conductor Corporation)推出的LM3658。它可以使用USB充電,也可以使用交流適配器充電,同時(shí)具有電源管理功能。該芯片可為單顆鋰電池和鋰聚合物電池安全充電,終止充電誤差不超過1.5%,有助延長(zhǎng)電池壽命,因此適用于多種場(chǎng)合下的手持設(shè)備,包括PDA、MP3、數(shù)碼相機(jī)和手機(jī)等。圖1是LM3658的引腳分布和典型電路。

          PXA270的電池充電及電量計(jì)量的設(shè)計(jì)


            如圖1所示,EN_b是充電的使能端,低電平表示允許充電,高電平表示禁止充電。CHG_IN和USBpwr引腳分別表示交流適配器輸入和USB輸入。輸入電壓都是在4.5~6 V之間。LM3658芯片在利用USB或交流適配器為鋰電池或鋰聚合物電池充電時(shí),若這2種電源都處于開啟狀態(tài),充電器芯片便會(huì)自動(dòng)選用預(yù)先設(shè)定的交流電模式。如果用交流適配器電源充電,可以通過Iset引腳與地址之間連接1個(gè)電阻,該電阻阻值的大小決定了充電時(shí)的電流大小。如果用USB給電池充電,可以通過USB_sel引腳決定充電電流的大小,該引腳低電平時(shí)充電電流為100 mA,高電平時(shí)充電電流為500mA。LM3658通過BATT引腳連接電池的正極,為電池提供充電電流。同時(shí)通過Ts引腳連接電池的負(fù)極,獲取電池的溫度信息。

            Statl和Stat2高低電平的不同組合可以反映當(dāng)前電池的4種充電狀態(tài),如表1所列??梢詫tatl和Star2的狀態(tài)輸出到PXA270的GPIO,通過軟件程序讀出當(dāng)前狀態(tài),并顯示在用戶界面上。

          PXA270的電池充電及電量計(jì)量的設(shè)計(jì)


            本系統(tǒng)中的芯片選用的是美國(guó)Dallas Semiconductor公司推出的一款基于開路電壓(OCV)的電量計(jì)量芯片——DS2786。該芯片能夠根據(jù)電池閑置期間的開路電壓來估算可充電鋰離子和鋰離子聚合物電池的可用電量。通過儲(chǔ)存在IC中的查找表,開路電壓可用于確定電池的相對(duì)電量,可以在電池包插入后立即得到準(zhǔn)確的電量信息。當(dāng)電池高速率放電時(shí),無法使用OCV計(jì)量,因此DS2786使用庫(kù)侖計(jì)量作為估算相對(duì)電量的第2種方法。

            DS2786以百分比的形式給出剩余電量的同時(shí),還給出了電池電壓、電流和溫度信息。電量計(jì)算所需的電池特性和應(yīng)用參數(shù)存儲(chǔ)在片上EE-PROM中。為了支持在某些對(duì)成本比較敏感的場(chǎng)合對(duì)電量進(jìn)行監(jiān)測(cè),DS2786還提供了電流、電壓和溫度的測(cè)量數(shù)據(jù)。

            DS2786可以應(yīng)用在手持設(shè)備上,也可安裝在電池包內(nèi),其典型應(yīng)用如圖2所示。VDD是芯片DS2786的工作電源輸入引腳,而VIN則是所測(cè)量電池的電壓輸入引腳。

          PXA270的電池充電及電量計(jì)量的設(shè)計(jì)


            通過VPROG引腳可以對(duì)芯片內(nèi)部EEPROM里存儲(chǔ)的查找表進(jìn)行修改。SCL和SDA分別是串行時(shí)鐘輸入和串行數(shù)據(jù)輸入/輸出,可以將電量計(jì)量數(shù)據(jù)傳遞給PXA270上的I2C接口進(jìn)行讀取操作。在2個(gè)輔助輸入端AN0和ANl,可通過比例計(jì)量法提供電池包識(shí)別(PACK ID)電阻和熱敏電阻的阻抗計(jì)量。

            本系統(tǒng)采用PXA270+LM3658+DS2786組成1個(gè)完整的嵌入式系統(tǒng)的電池充電及電量計(jì)量模塊。LM3658負(fù)責(zé)電池的充電功能和反饋當(dāng)前電池的充電狀態(tài),DS2786負(fù)責(zé)提供當(dāng)前電池的剩余電量信息,而PXA270則提供系統(tǒng)的控制和數(shù)據(jù)接收功能。

            模塊的系統(tǒng)框圖如圖3所示。由于沒有采用USB電源供電,因此將LM3658芯片的CHG-IN引腳直接5 V輸入。BATT端接上電池的正極進(jìn)行充電。在電池的正極同時(shí)接上N溝道的MOSFET管,可以實(shí)現(xiàn)對(duì)電池的安全保護(hù),防止充電過量,出現(xiàn)電流過大、溫度過高等情況。電池的充電狀態(tài)通過Statl和Stat2引腳將信息輸出到PXA270的GPIO進(jìn)行讀取操作。DS2786的VDD引腳用5 V外接電壓直接供電。而VIN引腳既可以用電池電壓輸入,也可以用外接5 V電壓輸入。當(dāng)電池電壓輸入VIN的時(shí)候,DS2786可以根據(jù)OCV查找表計(jì)算電池的剩余電量。當(dāng)電池高速率放電時(shí),通過電流感測(cè)電阻R進(jìn)行庫(kù)侖計(jì)測(cè)量。最終通過SDA和SCL將電量信息輸出給PXA270的I2C接口。

          PXA270的電池充電及電量計(jì)量的設(shè)計(jì)




          關(guān)鍵詞: PXA270 電池 充電 電量計(jì)量

          評(píng)論


          相關(guān)推薦

          技術(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); })();