|
1、關(guān)于業(yè)余,關(guān)于架構(gòu)
2012-11-5 尾生
(1)寫(xiě)在開(kāi)頭的一些話
在大學(xué)的時(shí)候,基本沒(méi)怎么好好上過(guò)課,大部分時(shí)間在實(shí)驗(yàn)室自學(xué)單片機(jī)、硬件電路、軟件~也參加過(guò)各種比賽,做過(guò)一些項(xiàng)目……剛出學(xué)校的時(shí)候還是有點(diǎn)牛氣的,可是到工作后才發(fā)現(xiàn),大學(xué)哪怕接觸過(guò)再多這方面的東西,還是缺乏工程的思想。近公司后做了好幾個(gè)項(xiàng)目,大的公司除了開(kāi)發(fā)流程最為令人稱道之外,能接觸到的各種技術(shù)也十分令人稱道。好在有前輩領(lǐng)路,慢慢的摸上了一些道,現(xiàn)在帶著項(xiàng)目,也想在業(yè)余再做點(diǎn)東西、學(xué)點(diǎn)東西。
三年軟件,十年硬件。這句話想來(lái)非常精確的反應(yīng)了軟件和硬件修煉的難易程度,很多時(shí)候,真的是時(shí)間堆出來(lái)的,但是光有時(shí)間又不行,很多人都說(shuō)硬件是一個(gè)吃經(jīng)驗(yàn)的活,越到后面越輕松,但其實(shí)并不是這樣的,特別是通信電子/消費(fèi)電子,實(shí)在是變化太快了,很多時(shí)候,要做一個(gè)新的項(xiàng)目,要接觸的了解的掌握的東西實(shí)在是太多了,甚至還包括底層軟件。當(dāng)然,買(mǎi)個(gè)某家芯片公司的單芯片解決方案來(lái)實(shí)現(xiàn)一個(gè)產(chǎn)品,長(zhǎng)期這樣也就不叫硬件設(shè)計(jì)人員了,最多只能算的上是硬件工人。如果能進(jìn)一個(gè)小公司做硬件,那好好學(xué)做事,能接觸到很多,到大公司也能學(xué)習(xí)到很多,而兩者的共同點(diǎn)都是,如果不自學(xué)好好學(xué)點(diǎn)東西,很快你就會(huì)發(fā)現(xiàn),沒(méi)有底蘊(yùn)而且后勁不足,時(shí)代變化的太快了,昨天還在做USB2.0,馬上3.0就要啟動(dòng)了,協(xié)議幾百頁(yè)都還沒(méi)有看完,咋搞……
從硬件工程師成長(zhǎng)為硬件系統(tǒng)架構(gòu)師,再了解一點(diǎn)軟件的層級(jí)以及開(kāi)發(fā)思想,恭喜你,你肯定成為了一個(gè)超級(jí)牛x的系統(tǒng)工程師了。
以前,技術(shù)純粹是一種愛(ài)好,后來(lái)有些波折的崗位選取,還是到公司來(lái)做硬件了,也算是緣分。現(xiàn)階段在器件高度集成化的同時(shí),各種技術(shù)的低門(mén)檻造成新產(chǎn)品上需要上各種高新技術(shù)以提高競(jìng)爭(zhēng)力。而在這個(gè)過(guò)程中,很多人就喜歡越尖端越好,但其實(shí),我們都認(rèn)為老板有一句話是真理:我們只做領(lǐng)先一兩年的技術(shù)……我們要做工程商人……不是工程研究員,而是工程商人……這樣的創(chuàng)新和技術(shù)才能實(shí)現(xiàn)最大的社會(huì)價(jià)值……
(2)移動(dòng)電源的需求
換手機(jī)后,一直想自己做個(gè)移動(dòng)電源,想了想,就開(kāi)始做了,以此來(lái)讓業(yè)余那些浪費(fèi)在Dota上的時(shí)間變得寶貴。當(dāng)然了,其他做菜和運(yùn)動(dòng)的時(shí)間不能少,這樣自己的時(shí)間非常不充裕,所以只能慢慢來(lái)了,沒(méi)周做一點(diǎn),慢點(diǎn)做,同時(shí)希望能夠在博客里和大家做一個(gè)分享,把整個(gè)的設(shè)計(jì)制作過(guò)程展現(xiàn)出來(lái),只有實(shí)現(xiàn)了社會(huì)價(jià)值的制作才有意義。當(dāng)然,是從硬件的角度來(lái)闡述怎樣把一個(gè)產(chǎn)品從無(wú)到有的制作出來(lái)。
首先是對(duì)這個(gè)移動(dòng)電源的定位吧!也就是傳說(shuō)中產(chǎn)品開(kāi)發(fā)的需求——這個(gè)產(chǎn)品要做成什么樣子的?第一個(gè)肯定是電池容量了,當(dāng)然越大越好了,但是其實(shí)普通開(kāi)發(fā)者比如我這樣的很難搞到物美價(jià)廉的電池,所以………定個(gè)3000mAH吧,相比現(xiàn)在市面上已經(jīng)100塊錢(qián)10000mAH的移動(dòng)電源這個(gè)容量確實(shí)有點(diǎn)小,但是木有辦法啊,私人買(mǎi)不到簡(jiǎn)裝電池哦……
對(duì)應(yīng)這個(gè)容量,小就小點(diǎn)哈,其實(shí)只要接口留出來(lái)了,把若干個(gè)電池都放電到同一電壓然后直接并接在一起,就是個(gè)電池了。
然后就是充電時(shí)間和放電時(shí)間了,這兩個(gè)參數(shù)都取決于電芯的容量,比如單節(jié)2000mAH的電池,充放電電流一般可以做到0.7C(C代表電池的容量)也就是1.4A,這樣一節(jié)電池用最大充電電流和穩(wěn)壓狀態(tài),就能夠在2小時(shí)內(nèi)充滿電了(具體的充電模型后面再說(shuō),多節(jié)電池的并接充電也后面再說(shuō))。
(3)系統(tǒng)規(guī)格分解
移動(dòng)電源TP01(TravelPower01)系統(tǒng)設(shè)計(jì)簡(jiǎn)要規(guī)格如下:
a) 支持多節(jié)同類電芯的電池并接擴(kuò)展容量,留出并聯(lián)焊點(diǎn),TP01版本的移動(dòng)電源就采用3000mAH為基本單元來(lái)做(可并接x*3000mAH來(lái)增大容量,但是需要考慮溫度的采樣問(wèn)題以及電池差異帶來(lái)的充放電差異影響電池壽命);
b) 充電電流0.7C(正常工作環(huán)境溫度),以并接10*1000mAH電池計(jì)算,C(單電池容量)指的是單電池的容量,充電電流不能大于任一電芯的充電電流,放電是可以更大的。所以充電電流=700mA,這樣充滿電的時(shí)間T=10000/700≈15hour,呵呵,很長(zhǎng)時(shí)間啊……放電的話單節(jié)=0.7C,多節(jié)的時(shí)候可以大于0.7C
c) 環(huán)境工作溫度定義為-10~40度吧,電池本身的溫升加上環(huán)境溫度不能超過(guò)50度(我不太記得了,要查一下資料看),也就是要監(jiān)控電池溫度,電池屬于敏感器件,不正常的溫度下容易損壞甚至爆炸,所以溫度范圍一定要監(jiān)控好,這就是上面說(shuō)的并了多節(jié)電池的情況下需要保護(hù)好器件
(4)實(shí)現(xiàn)
既然是業(yè)余制造,那么肯定是要從深層次去挖掘一些深入的技術(shù)了,那就用這樣一個(gè)架構(gòu)吧
a) 以MCU做主控,ARM就不考慮了,做為一篇給初學(xué)者看的博客,給老婆學(xué)習(xí)的筆記,還是要從最簡(jiǎn)單的51單片機(jī)開(kāi)始?,F(xiàn)在國(guó)產(chǎn)的STC系列單片機(jī)做了個(gè)小小的工藝架構(gòu)升級(jí),在原來(lái)的51架構(gòu)上做了一些改進(jìn),最大的差異就是原來(lái)一個(gè)機(jī)器周期對(duì)應(yīng)12個(gè)時(shí)鐘周期,老51的速度和其他單片機(jī)沒(méi)辦法比。現(xiàn)在的STC系列51架構(gòu),一個(gè)機(jī)器周期對(duì)應(yīng)一個(gè)時(shí)鐘周期,速度提上去了,用起來(lái)也比較好用了,入門(mén)簡(jiǎn)單,應(yīng)用廣泛
b) 充電芯片就用TI的Bq2416x吧,通用系列,采用IIC控制,恰好這個(gè)資料比較多,而且對(duì)這個(gè)需要深入學(xué)習(xí)
c) DCDC的話,想來(lái)想去還是自己搭一個(gè)吧,用現(xiàn)成的不太有技術(shù)含量,業(yè)余制作嘛主要是鍛煉技術(shù)的。自己搭DCDC的話開(kāi)關(guān)頻率幾百KHz甚至上MHz的,用單片機(jī)肯定玩不動(dòng),需要再搭個(gè)頻率發(fā)生器,用單片機(jī)控制調(diào)頻或者找個(gè)能輸出PWM的管腳,等差芯片資料的時(shí)候再說(shuō)了……
d) 輸出的話必須限流,要不抽電流太狠了有礙電池健康,也用分立器件搭吧~
e) 溫度檢測(cè)可以用ADC+溫敏電阻,也可以用專門(mén)的溫度采集芯片,前者誤差有點(diǎn)大,后者成本會(huì)高一點(diǎn),但是校準(zhǔn)啥的都比較方便。
f) 需要帶狀態(tài)指示燈,比如電量指示,充電指示,放電指示,可以復(fù)用的;
g) 充電接口采用MicroUSB接口,放電接口用大的USB-A型頭母座,這也是為了方便現(xiàn)在大多數(shù)用戶手上的帶USB-A型公頭轉(zhuǎn)MicroA型公頭的線纜,可以用手機(jī)的充電器給這個(gè)電源充電,也可以拔下適配器帶的線來(lái)接到充電寶上給書(shū)記充電……
h) 大于5V時(shí)過(guò)壓保護(hù),因本身充電芯片可以抗到12V,可以在輸入輸出端都加上過(guò)壓保護(hù)器件,防止接反。
想來(lái)想去,在自搭的那些電路上需要兼容上集成器件,這樣板子很快就能用了,也同時(shí)可以把器件選型和DIY設(shè)計(jì)放在一個(gè)板上,需求和設(shè)計(jì)現(xiàn)在有點(diǎn)大了,盡量做全一點(diǎn)……
所以,最后搭出來(lái)的這個(gè)電路肯定有點(diǎn)占地方,如果用小封裝拼一下的話,其實(shí)還好,再隨便買(mǎi)個(gè)外殼,PCB設(shè)計(jì)的時(shí)候匹配一下,基本就產(chǎn)不多了
2、初步系統(tǒng)架構(gòu)
前面啰嗦了半天,總的啰嗦的意思就是要做個(gè)充電寶,同時(shí)把整個(gè)的設(shè)計(jì)過(guò)程思路做個(gè)分享,本人水平有限,文中錯(cuò)別字比較多~~~各種問(wèn)題都?xì)g迎大家指正。好了,先上個(gè)圖吧,初步的系統(tǒng)架構(gòu)如下,詳細(xì)的介紹啊選型啊什么的我在后面再介紹吧。然后就是實(shí)在是太忙了,公司各種事情非常多,可能進(jìn)度會(huì)非常緩慢,爭(zhēng)取在年前搞出來(lái)吧帶火車(chē)上玩著…… 同時(shí)這幾天想想,就不自己搭的電路了,一個(gè)是時(shí)間和進(jìn)度,一個(gè)是分立元件的方案都是需要調(diào)比較久的,穩(wěn)定性是需要長(zhǎng)期驗(yàn)證的,像這個(gè)東西是要做出來(lái)實(shí)際用的,安全性啥的不允許有不成熟的方案,然后就是板子要盡量做小,所以還是用集成器件吧。

如上圖所示整體的一個(gè)架構(gòu)就是,采用一個(gè)STC的低壓51單片機(jī)(STC12LE5A60S2)做為程序主控,完成對(duì)Charge充電芯片的控制,同時(shí)完成電池電壓(10位AD)的采樣,以及電池溫度的采樣開(kāi)控制充電。
電源為5V輸入,經(jīng)過(guò)2416x后轉(zhuǎn)成4.2V供電,因MCU正常供電為3.6~2.2V,需要加一級(jí)Buck或者LDO(都屬于常用的兩種DCDC),這次設(shè)計(jì)因?yàn)橄胱约鹤鲆粋€(gè),考慮到這個(gè)東西要快速能用的,所以在設(shè)計(jì)中會(huì)考慮兼容集成芯片,比如TI公司的TPS系列DCDC芯片,比較便宜。該路DCDC固定輸出3V,這樣可以保證我在電池3.3V欠電時(shí)關(guān)機(jī)(可以猛閃紅燈然后熄滅關(guān)機(jī))
輸入輸出都加上過(guò)壓保護(hù),輸出端加過(guò)流保護(hù)。這樣一調(diào)試出來(lái)就可以用了……
燈的話準(zhǔn)備放一個(gè)單色燈,兩個(gè)三色燈(大家可以分別用分立的燈拼),單色燈是充電寶工作指示燈,也就是把電源開(kāi)關(guān)打開(kāi)單板就開(kāi)始工作,一個(gè)三色燈用來(lái)指示電池電量(可以用不同的色彩組合來(lái)表示不同的電量,比如綠色是電量充足等等),另一個(gè)三色燈用來(lái)指示充電寶的狀態(tài)(比如綠燈閃爍是正在充電,紅燈閃爍是異常,紅藍(lán)輪流閃爍是xx異常,總之就是各種用~)
以上就是初步整的一個(gè)架構(gòu)框圖,基本就是充電的時(shí)候充電并指示電量狀態(tài),單片機(jī) 一直采電壓(可適當(dāng)進(jìn)入休眠模式降低功耗),同時(shí)完成充電和放電監(jiān)控,放電時(shí),控制打開(kāi)電池通道,經(jīng)過(guò)一個(gè)Boost型(升壓型)的DCDC升壓到5V(可以稍微升壓到高一點(diǎn),比如5.1V,這樣經(jīng)過(guò)線的壓降后到終端設(shè)備的電壓就在5V左右,效率會(huì)高一點(diǎn))。
移動(dòng)電源要求安全性,所以,必須加限流和電池監(jiān)控(溫度加電壓)相關(guān)?;镜木瓦@么多,后面具體介紹每一個(gè)小部分的設(shè)計(jì)~~~
3、51單片機(jī)簡(jiǎn)介
好的,前面大概闡述了一整個(gè)的設(shè)計(jì)思路,下面就分系統(tǒng)開(kāi)始介紹一下器件選型的思路吧,簡(jiǎn)單介紹一下選型需求,為什么選這樣的器件。

這小節(jié)主要介紹一下MCU,雖然各路英雄都不只一次的說(shuō)過(guò),但我還是嘮叨一下吧。對(duì)于移動(dòng)電源這樣的消費(fèi)電子產(chǎn)品來(lái)說(shuō),首先要實(shí)現(xiàn)的是功能,然后是成本,功能上為了實(shí)現(xiàn)電池的充放電,充電時(shí)需要判斷電池電壓和溫度以保證電池不會(huì)過(guò)充和過(guò)溫,這是最基本的安全功能,必須滿足,放電的時(shí)候要保證電池不過(guò)放、電流不超過(guò)電池的放電速率,同時(shí)保證電池溫度不超過(guò)安全溫度(前面說(shuō)的是50度針對(duì)的是新工藝的一些電池,現(xiàn)在市面上其實(shí)大部分都是標(biāo)定的45度安全溫度,并不是說(shuō)超過(guò)45度就一定會(huì)有問(wèn)題,只是在超過(guò)這個(gè)溫度后電池的充放電特性會(huì)產(chǎn)生較大改變……)所以,需要有AD功能,同時(shí)能提供基本的數(shù)字邏輯。
綜上,其實(shí)這個(gè)系統(tǒng)不需要加這么多東西,一個(gè)最普通的充電芯片+一個(gè)比較電路+一些邏輯電路就OK了,但是考慮到設(shè)計(jì)的方便性,以及做這個(gè)東西的初衷,還是采用入門(mén)級(jí)最通用的51單片機(jī)來(lái)實(shí)現(xiàn),以達(dá)到最多的功能。
(1)關(guān)于51單片機(jī)
說(shuō)到單片機(jī),最開(kāi)始上學(xué)的時(shí)候接觸到這個(gè)東西,一直就這個(gè)概念糾結(jié)了很久,也沒(méi)見(jiàn)什么書(shū)上開(kāi)篇就講的很透徹的。一段時(shí)間之后,自己的理解就是:其實(shí)就是一個(gè)集成的數(shù)字芯片,芯片里把CPU、內(nèi)存、外存以及其他一些常有的數(shù)字邏輯電路集成在了一起,方便小系統(tǒng)擁有的一個(gè)邏輯控制系統(tǒng),MCU就可以理解為單片機(jī)。
一般在ARM7以上架構(gòu)的系統(tǒng)不叫單片機(jī),主要的原因是因?yàn)樵谀菢拥乃俣壬?,很少有器件?huì)內(nèi)部集成匹配這樣速度的內(nèi)外存器件。
單片機(jī)和電腦對(duì)應(yīng):電腦有CPU,單片機(jī)里面集成了CPU核完成指令調(diào)度管理;電腦要加內(nèi)存條,單片機(jī)里面會(huì)集成一定容量的RAM(比如普通51里面有512個(gè)字節(jié)的空間),這個(gè)內(nèi)存是用于程序運(yùn)行過(guò)程中的變量緩存的,比如你做一個(gè)算法,CPU在讀程序的時(shí)候發(fā)現(xiàn)你定義了一個(gè)變量,這個(gè)變量的值就回占用RAM空間來(lái)做中間暫存和處理的;電腦有硬件,我們裝系統(tǒng)都是裝在硬盤(pán)里的,同理,單片機(jī)有內(nèi)部EEPROM或者Flash這樣的外存空間,就是用于燒寫(xiě)程序的……
以上是對(duì)什么是單片機(jī)的一些自己的理解,有誤之處請(qǐng)見(jiàn)諒,個(gè)人能力,呵呵。還有個(gè)要說(shuō)的就是,很多初學(xué)者在圖書(shū)管買(mǎi)書(shū)的時(shí)候都發(fā)現(xiàn)有很多芯片的型號(hào),都是51單片機(jī),不太理解。實(shí)際上,不管是51、430、ARM架構(gòu)等等,這個(gè)名字都是針對(duì)的硬件系統(tǒng)的架構(gòu)來(lái)的,每個(gè)公司在定義了一個(gè)新的架構(gòu)時(shí)會(huì)取一個(gè)名字,比如ARM公司針對(duì)CPU定義的M3、M0、ARM7、ARM9、A15等等,51單片機(jī)也是如此,最早時(shí)某公司(我也不太記得哪個(gè)公司了)開(kāi)發(fā)了一個(gè)MCU的架構(gòu)取了個(gè)名字叫51,后來(lái)好多家公司都做這個(gè)芯片,不同的型號(hào),比如AT89C51,大家看到最多的一個(gè)名字。實(shí)際上,隨著芯片技術(shù)的發(fā)展,這種老的器件早就被淘汰了,當(dāng)然,可能有些小公司還一直在堅(jiān)持著用,但是實(shí)際上,這個(gè)器件已經(jīng)沒(méi)有任何優(yōu)勢(shì)了。
目前國(guó)內(nèi)說(shuō)51單片機(jī),最多的指的是STC51系統(tǒng)單片機(jī),國(guó)內(nèi)的一家公司(生產(chǎn)供應(yīng)不明,研發(fā)不明,各種不明的一家個(gè)人主義及其濃烈的xx公司,我不好評(píng)價(jià))。這些芯片基本上功能都差不多,用法也差不多,沒(méi)次我和大家提到這個(gè),首要闡述的觀點(diǎn)就是:不會(huì)的先查器件資料,看全了器件資料你就會(huì)了。所以,大家學(xué)習(xí)的話可以直接到官網(wǎng)上去down個(gè)器件資料好好看看,看著看著再輔助其他一些資料就會(huì)明白的。
這里出于成本和功能的考慮,直接用國(guó)內(nèi)這個(gè)STC的STC12LE5A60S2,當(dāng)然,大家可以隨便用的,功能都能實(shí)現(xiàn)的。
(2)關(guān)于STC系列的我準(zhǔn)備用的這個(gè)器件
用一個(gè)器件,首先需要看器件資料。所以,我們先到官網(wǎng)上去down一個(gè)器件資料吧。說(shuō)到官網(wǎng),我就啰嗦一下,STC系列的器件在百度里搜索宏晶就可以了,第一個(gè)連接就是,叫宏晶科技,點(diǎn)進(jìn)去之后,看到那個(gè)非常土鱉的頁(yè)面,大家也別驚訝,不要以為進(jìn)錯(cuò)了,http://www./沒(méi)有錯(cuò)的,我不得不吐槽一下這家公司的爛主頁(yè),我第一次打開(kāi)的時(shí)候,一度以為自己進(jìn)錯(cuò)了或者瀏覽器異常,這尼瑪再?zèng)]錢(qián)也不用整成這個(gè)樣子吧,一家公司的官網(wǎng)爛到這種程度深刻的讓人懷疑他們的專業(yè)水準(zhǔn)??!找個(gè)學(xué)生,給了幾千塊錢(qián)做的也比這個(gè)好。這個(gè)網(wǎng)站實(shí)在是爛到可以,當(dāng)然,唯一的優(yōu)點(diǎn)是因?yàn)榛径际俏谋?font style="FONT-FAMILY: times new roman">html,打開(kāi)速度比較快。
在這里也不是說(shuō)要給這個(gè)企業(yè)抹上污點(diǎn),實(shí)在是這個(gè)網(wǎng)站做的太爛了一點(diǎn),存文本啊,擺的格式啊……希望我支持了這么多年的國(guó)產(chǎn)單片機(jī)能稍微給點(diǎn)力,降成本怎么會(huì)降到這種地步啊~~~
(3)關(guān)于最小系統(tǒng)
很多時(shí)候,都有人說(shuō)單片機(jī)的最小系統(tǒng),我的理解就是:CPU正常加載程序需要的最小單元。前面我們提到,MCU可以類似對(duì)應(yīng)為一個(gè)主板上放了CPU+內(nèi)存+硬盤(pán),那么,這么讓這個(gè)CPU正常加載程序呢(假設(shè)硬盤(pán)里已經(jīng)有了程序,外面外面接了一個(gè)顯示器看log標(biāo)志)?
a) 供電
不用說(shuō)大家肯定也清楚,最重要的條件之一是電源。正確的電壓+足夠的供流能力,這樣,CPU才能正常起機(jī);
b) 時(shí)鐘
CPU等等都是從晶體管發(fā)展起來(lái)的數(shù)字電路,數(shù)字電路最最重要的一個(gè)特點(diǎn)就是需要時(shí)鐘源提供數(shù)字邏輯的跳變等等,我們通常所說(shuō)的CPU的頻率,其實(shí)就是通過(guò)主板上的一個(gè)晶體接入一個(gè)倍頻系統(tǒng)提供時(shí)鐘的,51單片機(jī)這樣的低速單片機(jī)中需要采用xxMHz的晶振。這就是數(shù)字系統(tǒng)的核心——時(shí)鐘;
c) 正常的復(fù)位時(shí)序
因單片機(jī)系統(tǒng)中存在的一些邏輯順序等等,正常的復(fù)位時(shí)序是不可少的
(4)51單片機(jī)的最小系統(tǒng)
我們進(jìn)入宏晶的官網(wǎng),找到這次制作需要用到的STC12LE5A60S2的資料下載下來(lái),里面的最小系統(tǒng)如下:

后續(xù)在原理圖部分詳細(xì)講解!這里的7805就不要用了,實(shí)在是效率太低了,T_T只是給個(gè)示意哈~等每個(gè)部分都大概介紹了一下后再詳細(xì)講吧~
4、更優(yōu)架構(gòu)討論、Charger簡(jiǎn)介
在發(fā)這個(gè)博客第一節(jié)的時(shí)候,老婆問(wèn)我,這準(zhǔn)備做的這個(gè)移動(dòng)電源所采用的方案有什么優(yōu)點(diǎn)嗎?我把我存在電腦的草圖拿出來(lái)再看了一遍,想了半天,回答道:成本不低、系統(tǒng)太不簡(jiǎn)單,壓根就不是一個(gè)最佳商品化的移動(dòng)電源方案,唯一的優(yōu)點(diǎn)是可能會(huì)體現(xiàn)稍微深入一些的技術(shù)……所以這里就回答一下一些網(wǎng)友發(fā)過(guò)來(lái)的建議,實(shí)際上最簡(jiǎn)單的方案莫過(guò)于包括電源檢測(cè)溫度檢測(cè)全部用硬件最簡(jiǎn)單的方案實(shí)現(xiàn),不需要主控,不需要這么好的充電芯片……純粹的移動(dòng)電源方案大家可以私信huzylover@126.com討論……
但是,我從開(kāi)始對(duì)這個(gè)東西的定義就是,這個(gè)移動(dòng)電源不是為了特定的某款電池做的,也就是需要有兼容性,能夠?qū)囯姵氐某浞烹娞匦远甲龊茫皇窍袢f(wàn)能充一樣隨便用個(gè)簡(jiǎn)單的電壓比較模式控制充電。我希望在這個(gè)制作中,體現(xiàn)一整個(gè)的關(guān)于鋰電池應(yīng)用方面的技術(shù)。這也就是我選擇單片機(jī)+24161的原因,在鋰電池的實(shí)際應(yīng)用場(chǎng)合中,都是用在移動(dòng)設(shè)備中的,也就是說(shuō),一定是一個(gè)主控+MCU的架構(gòu),傳統(tǒng)的鋰電池充電芯片,除了單一充電外,并不能實(shí)現(xiàn)自動(dòng)分配電流(也就是系統(tǒng)邊充電邊工作的場(chǎng)合)。而現(xiàn)在我的文章中講的這種架構(gòu),適用于任一帶鋰電池的移動(dòng)設(shè)備。
好了,接下來(lái)就是大概描述一下另一個(gè)重要的部分,就是Ti公司的24161的充電芯片。(再無(wú)聊的插一句:在整個(gè)制作過(guò)程中,方案是會(huì)有變動(dòng)的,比如用的DCDC器件,LED燈的整體功能,是不是要加手電筒……想著可以就可以加的)
(1)充電芯片BQ24161的應(yīng)用結(jié)構(gòu)解析
看一個(gè)器件,先從整個(gè)應(yīng)用框圖看起,從TI的官網(wǎng)上Down下24161的器件手冊(cè)很明顯會(huì)發(fā)現(xiàn)應(yīng)用框架如下:

看到這個(gè)框圖的時(shí)候,如果有對(duì)電源芯片比較了解的兄弟看到的話,肯定會(huì)說(shuō)上面看上去怎么很熟悉。其實(shí),充電芯片本質(zhì)上就是一個(gè)輸出可變的DCDC,給一個(gè)電池充電,實(shí)際上可以看成如下等效模型:
電容可以等效為一個(gè)100mohm的電阻和一個(gè)超級(jí)電容串聯(lián),當(dāng)沒(méi)有電源接入或者電池電量充足而不充電的時(shí)候,芯片內(nèi)部有一個(gè)Out輸出端到電池的Mos開(kāi)關(guān),將該通路關(guān)斷,同時(shí)該Mos器件自身體二極管(或者認(rèn)為在該mos管DS間并接一個(gè)從電池流向Out端的肖特基二極管)用來(lái)作為電池向系統(tǒng)供電的通路。
當(dāng)電池電壓較低達(dá)到充電門(mén)限時(shí),假設(shè)這時(shí)電池電壓為3.2V,當(dāng)接入適配器啟動(dòng)充電后,實(shí)際情況是,charger的DCDC輸出會(huì)調(diào)整到稍微高于當(dāng)前電池電壓的一個(gè)值,這個(gè)差值電壓就能使得電流從DCDC輸出給到鋰電池(這個(gè)具體我在下一節(jié)再說(shuō)一下電池的充電管理)。這個(gè)電壓會(huì)一直跟隨者電池電壓知道達(dá)到充滿(通用充滿電壓時(shí)4.2V,但是現(xiàn)在有一些高壓電池可以充電到4.35V)、
(2)動(dòng)態(tài)路徑管理
前文說(shuō)道,選用這個(gè)芯片的考慮之一也是因?yàn)檫@個(gè)芯片的特色功能之一為動(dòng)態(tài)路徑管理功能,什么叫動(dòng)態(tài)路勁管理呢,簡(jiǎn)單的說(shuō)就是:如前文,Charger本身就是一個(gè)給系統(tǒng)供電的同時(shí)給電池充電的DCDC,那么充電本身有一個(gè)充電電流,電流越大,充滿電的時(shí)間肯定就越短,但是有個(gè)問(wèn)題,假設(shè)我前段接的是電腦的USB,Charger輸出最大500mA的電流,那么如果我充電用了300mA,而給系統(tǒng)200mA電流,當(dāng)系統(tǒng)因?yàn)槟承┩话l(fā)任務(wù)(開(kāi)顯示器,開(kāi)燈等等動(dòng)作),瞬間需要的電流達(dá)到400mA,沒(méi)有動(dòng)態(tài)路徑管理功能的Charger可能會(huì)出現(xiàn)輸出被拉低的情況,而有動(dòng)態(tài)路徑管理功能的Charger會(huì)重新分給system400mA的電流,而只用100mA去充電,這個(gè)過(guò)程是動(dòng)態(tài)持續(xù)的……
(3)輸入電源檢測(cè)
如上面框圖中所示,有兩個(gè)輸入,一個(gè)輸入是適配器輸入,另一個(gè)輸入時(shí)USB輸入。這個(gè)地方就必須要提到適配器的供流能力,我們知道,USB輸入因早期的規(guī)格定義以及接口問(wèn)題,標(biāo)稱的是最大500mA電流,雖然現(xiàn)在越來(lái)越多的大電流USB口出現(xiàn)(比如某些快充手機(jī)所標(biāo)配的線),但是不可否認(rèn),每一個(gè)設(shè)備商再設(shè)計(jì)的時(shí)候都要考慮用戶家里的電腦USB口的輸出電流。當(dāng)設(shè)備啟動(dòng)時(shí)需要的電流超過(guò)5V*0.5A=2.5W時(shí),過(guò)大的負(fù)載容易使電腦USB口保護(hù),更嚴(yán)重的是有可能直接把電腦拉掛掉(重啟/黑屏),所以,Charger芯片當(dāng)用在輸出電流大于500mA的場(chǎng)合時(shí),必須考慮適配器類型識(shí)別。
24161提供了這樣一種識(shí)別方案,將輸入口的電源分別接在適配器和USB電源口,兩根信號(hào)線連接在D+、D-管腳,這樣當(dāng)接入電腦USB時(shí),因電腦USB的信號(hào)線D+線是被拉低(我可能記錯(cuò)了,回頭查一下看USB協(xié)議)的。所以會(huì)識(shí)別成USB口,芯片通過(guò)中斷腳上報(bào)中斷,MCU通過(guò)IIC去查詢芯片生成的中斷標(biāo)志是什么。而大部分適配器均是將D+/D-信號(hào)線短接或者電阻分壓的(比如蘋(píng)果的適配器區(qū)分就是這個(gè)原理)。
通過(guò)這樣的方式,24161就區(qū)分出了到底是標(biāo)志USB輸入還是適配器輸入,對(duì)于我們加了ID電阻的適配器,可以放心的將電流放大到最大的標(biāo)志規(guī)格,而對(duì)于標(biāo)志USB口,芯片是會(huì)啟動(dòng)限流將最大電流限制在500mA的
|