在嵌入式系統中使用鋰電池系列1

2021-08-28 23:43:46 字數 2688 閱讀 3652

by toradex andrija stojkovic

相比與其他電池技術,可充電鋰電池具有最高的能量密度。歸功於其在消費領域和高速增長的汽車市場的廣泛使用,鋰電池的**也變得更容易接受。但如果處理不當,鋰電池將會帶來危險。因此,開發流程中的乙個主要任務就是選擇合適的方案為您自己的嵌入式裝置執行規定時間提供所需的能量。本文將關注電池充電和管理系統,並考慮安全性。希望通過我的逐步解釋鋰電池的基本特性,能為您提供有用的提示和參考鏈結。很快你將有信心開始使用鋰電池的專案。我也將向你展示 usb 充電方案。在文章結尾,我會很榮幸地介紹我們基於 colibri imx7 的鋰電池低功耗演示板。該演示品的開發資料可以向我們免費索要,作為參考設計。該演示品在全球多個展會上成功展出。

第一部分:鋰電池基本知識

讓我從最簡單的方面開始:電壓。每個電池單元的電壓取決於實際的充電狀態,這通常用百分之幾來表示。完全放電(0%)的電池單元的最小電壓約為 2.5v,100% 完全充電狀態下最大電壓約為 4.2v。這些值和電池的化學物質有關,一般在相應的技術***中有說明。市面上大多數 18650 封裝或者扁平聚合物鋰電池電壓都在該範圍之內。電壓限制由化學物質決定,禁止超出,否則欠壓會永久損壞電池,過壓則可能引起**。因此,需要有保護電路。我推薦使用具有內部保護電路的電池。額外的內建保護 pcb 使電池免受超出範圍的溫度、充電和放電的影響。電池關閉是暫時的,在正常環境中會恢復工作。最有效的保護是電流切斷裝置 cid。當機械結構過度受壓被觸發後例如過度充電,為防止進一步危險發生,,電池將無法繼續使用。

18650 電池的典型值是 3ah。 這意味著我們可以為嵌入式裝置以 3a 電流持續供電 1 個小時,而電壓從 4.2v 下降到 2.5v。這是通常使用的電池放電 c 倍率定義。1c 指電池單元在乙個小時內完全放電。我們舉例,假設我們的裝置品均消耗 300ma。這相當與1/10c,所以我們的系統能夠執行 10 個小時。如果想要更長的時間我們將如何實現?

我們首先討論電池充電。充電可以分為恆流 cc 和恆壓 cv。當恆流充電開始時,充電狀態和電壓開始增長,最高電壓到 4.2v。因為我現在知道,在最大電壓時停止充電。這由電池充電電路執行。此時就是恆壓充電開始的時候。電壓無法繼續公升高,電流以指數形式減小。通常情況下,當實際電流小於設定的 c 倍率,如 1/10 或者 1/20 時,就認為電池完全充電。

恆流cc

和恆壓cv 

充電,**

從上面圖表中可以看到,大部分充電在恆流階段完成。這就是部分產品**商宣稱他們的產品可以在多少分鐘內充電 80% 而不是 100%。更多關於電池的資訊可以參考這裡。

讓我回到尚未解決的問題,我們需要從**提供容量。最簡單的方法是增加第二塊電池單元。但是多少容量?wh 還是 ah?我們需要增加的可用的電量(wh),這是電壓和電流的乘積。對於嵌入式系統來說,併聯或者串聯兩個電池單元都無關緊要。可用的電量都會翻倍。

那麼現在我們應該如何連線兩個電池單元?併聯或者串聯?如果我們的系統需要 12v,那麼可以串聯,提高電壓。電流取決於電池單元中最大的乙個。當然,你需要使用 dc/dc 電源轉換器獲得系統所需的規定輸入電壓,這將在本系列博文的後面部分涉及。整個電池組的充電和放電電壓範圍會高於每乙個電池單元。

我建議電池輸出電壓可以完全高於或者低於系統所需的輸入電壓,這樣可以只使用降壓或者公升壓轉換器。這麼做的目的是避免使用降壓-公升壓拓撲,這種電路會更加複雜和昂貴。我們舉乙個簡單的例子:我們的系統需要 3.3v,我們有乙個併聯和串聯電池方案。18650 電池的電壓範圍在 2.5v 到 4.2v 之間。當低於 3.3v 時,我們需要提公升電壓,當有較高的電壓時,則需要使用降壓轉換器。這是我們想要避免的。那麼,把兩個電池單元串聯會怎麼樣呢?

當我們把乙個完全充電和乙個完全放電的電池單元串聯起來會發生什麼?在不違反電壓限制的情況下,我們既無法充電也無法放電!在組裝電池組的時候需要用相同充電狀態的電池單元,以避免上述情況的發生。在電池的整個生命週期內,其特性會出現不同的變化。這就意味著在整個電池組內不同的單元會出現不同的充電狀態。因此,我們需要整個生命週期內平衡電池單元,使其保持同樣的充電狀態。電池單元平衡可以分為主動和被動方式,在被動方式中通過電阻消耗電量。主動平衡方式在不同的電池單元之間轉移電量。

如果併聯電池單元又會發生什麼呢?併聯時可以提供更大的輸出電流,電壓則由其中乙個電池單元決定。當把兩個不同充電狀態的電池單元併聯後會怎麼樣呢?這時會有乙個高電流從較滿充電狀態電池單元流向較低充電狀態的電池單元,這是我們需要防止發生的事情。高電流會帶來不可控的發熱,並可能引起**。我不建議你自己組裝併聯電池組,但是可以購買現成的。

選擇正確的電池並不容易。第一步當然是查閱技術***。但是在手冊上你只能找到一些基本的引數。我一般會訪問 www.lygte-info.dk 之類的**,上面可以找到大量的測試報告以及不同電池的排名。電池的生命週期至關重要,需要認真考慮。使用環境也不能被忽略。有乙個指標稱為健康狀態 soh,會隨著充電次數而降低。電池容量也會隨著使用時間而降低。所以,設計的容量需要高於系統的需求,並取決於為額外容量所支付的費用。避免過度使用電池(高於或者低於電池極限電壓),這有利於延長使用壽命和容量穩定性。然後這就意味著減少了實際使用的電池容量。這往往是乙個在容量(費用)和使用壽命之間的平衡。

我們來總結下我們需要的設計標準,從而可以過渡到本系列博文的下一部分。我們必須知道或者確定嵌入式系統的需求如輸入電壓、功耗、電池供電時間。然後可以著手乙個基本的電池配置。當然,這是基礎,我們將由此開始。在接下來的文章中,我將會討**率元件部分和充電注意事項,這在我們的設計中也是值得考慮的地方。

參考

在嵌入式系統中使用鋰電池系列2 電池管理系統

by toradex andrija stojkovic 正如我們已經知道的,我們需要在載板上使用智慧型系統為電池組實現控制 保護和充電功能。其必須具備電流和電壓保護。我們希望能夠在任何時刻都可以監控每個電池單元的準確電壓。如果我們使用串聯配置,那麼還需要有平衡系統,用於保持每個單元在相同的充電水平...

在ARM交叉編譯器中使用嵌入式彙編

最近在做專案的過程中碰到這樣的需求,提取了商業資訊之後,技術上的說法就是呼叫的程式要返回自己的位址。開始考慮內嵌彙編。可是問題很多。最大的問題就是在gaio編譯器中不支援c的變數位址傳遞。可能是和arm彙編中使用十位的第一有關係。最後可用的解決方法是呼叫是先呼叫一段組合語言,這段組合語言得到呼叫的位...

在嵌入式軟體中使用斷言的一點想法

嵌入式軟體中的斷言應該分成三個級別,而不是僅有啟用和關閉兩種。1 啟用斷言並列印可讀資訊 2 啟用斷言並列印 位址 3 關閉斷言。原文 mingdu.zhengatgmaildotcom 斷言可以幫助開發人員在軟體開發過程中比較容易地發現軟體缺陷。典型的做法是在開發過程中啟用斷言,而在最終發布時關閉...