LTO BMS – zápisky z vývoje

LTO neboli Lithium Titanium Oxid baterie mají jednu obrovskou výhodu – dají se nabíjet i vybíjet při záporných teplotách. To je dělá ideální volbou například pro meteostanice, Meshtastic nody a všude, kde je potřeba napájet elektroniku ve venkovním prostředí.

Jejich použití je ale pro běžného bastlíře trochu komplikovanější protože mají nižší napětí jak běžné Li-Ion nebo Li-Pol a na jednočlánkové LTO se nedá sehnat elektronická ochrana. Proto jsem se pustil do vlastního designu, který bude kromě OVLO/UVLO/OC i průběžně měřit parametry článku a komunikovat je po I2C. V následujícím textu najdete moje poznámky z vývoje této BMS.

Trocha teorie

Porovnání různých typů baterií

Pro představu o vlastnostech LTO baterií je níže tabulka, která porovnává různé chemie Lithiových článků (a pro zajímavost i nová chemie Sodium-Ion). Hodnoty jednotlivých parametrů jsou orientační, jelikož se hodně liší výrobce od výrobce. Pro úvodní seznámení se s LTO ale stačí.

ParametrJednotkaLi-Ion/Li-PolLiFePo4Sodium-IonLTO
Min. napětíV2,5 – 3,02,51,5 – 2,01,5 – 1,7
Max. napětíV4,2 – 4,43,653,6 – 3,82,8 – 2,9
Hustota energieWh/kg150-25090-160100-16070-110
Pracovní teplota (nabíjení)°C0 – 450 – 450 – 40−10 – 55
Pracovní teplota (vybíjení)°C−20 – 60−20 – 60−20 – 60−30 – 60
Maximální nabíjecí proudC1 – 21 – 20,5 – 15 – 10
Maximální vybíjecí proudC1 – 1010 – 251 – 510 – 20
Počet cyklů500 – 15002000 – 50001000 – 20003000 – 7000
BezpečnostPrůměrná, nutné použít elektrickou ochranuVelmi bezpečnéBezpečnéVelmi bezpečné

LTO baterie mají menší hustotu energie než jiné typy, takže se do stejného pouzdra vejde méně Ah. Mají menší pracovní napětí, minimálně 1,5 V (některé zdroje a výrobci uvádějí 1,7 V) a maximálně 2.8 V (opět, někde se dočtete 2,9V). Mají velké nabíjecí a vybíjecí proudy díky malému vnitřnímu odporu. To by mělo být díky titanové nanostruktuře uvnitř, která má velkou plochu (stovky m2.g-1 na rozdíl od jednotek m2.g-1 u Li-Ion) a tím pádem se mohou elektrony pohybovat přes anodu mnohem rychleji. Další velká výhoda je větší životnost, uvádí se až 7000 cyklů.

Chemicky jsou LTO baterie velmi stabilní a nehrozí nafouknutí, hoření nebo exploze jako u Li-Ion nebo Li-Pol článků. Někteří výrobci uvádí, že je možné LTO vybít až do 0 V a přebít nad 3 V aniž by došlo k výbuchu nebo zničení. Takovéto zacházení ale zkrátí životnost článku, takže není doporučováno.

No a pak ten (pro nás) nejdůležitější parametr: rozsah pracovní teploty pro nabíjení a vybíjení. LTO jako jediné Lithiové články snesou nabíjení i při teplotách kolem −10°C aniž by došlo ke zničení baterie nebo drastickému snížení životnosti. Pro teploty ve střední Evropě je to ideální typ baterie pro venkovní použití.

Vybíjecí křivka

Napětí na LTO bateriích při vybíjení velmi rychle klesne s 2,8 V na zhruba 2,6 V a pak jen velmi pomalu klesá až na 2,3 V. Jakmile je baterie téměř vybitá, tak napětí prudce klesne z 2,3 až pod 1,7 V i při velmi malé zátěži.

Při větší zátěži (rychlejší vybíjení) je křivka obdobná, jen je položena trochu níže (cca o 0,3 V níže při 1C a 0,5 V níže při 5C) a prudký pokles v téměř vybitém stavu začne dříve.

Napětí na článku a zbývající energie při vybíjení velmi malým proudem 0,05C. Zdroj: vlastní měření na 1S3P, kapacita 4100 mAh.

Proč BMS pro 1S LTO?

Moje motivace pro návrh vlastní elektronické ochrany pro jednočlánkové LTO baterie je především použití v projektu Meshtastic. Nody napájené z baterie a nabíjené ze solárního panelu jsou typicky umístěny venku a chci, aby je bylo možné nabíjet i v zimě při nízkých teplotách, když na chvíli zasvítí slunce. V současné chvíli používám 1S Li-Pol baterie, ale s příchodem zimy je potřeba podívat se po alternativě.

Odtud vychází i mé potřeby:

  • Ochrana musí být pro 1S LTO baterie. Jednak mám pro ně nachystanou Mesthastic desku a jednak taková ochrana zatím neexistuje (všechny ochrany/BMS co jsem našel jsou od 4S LTO a více), takže vlastní vývoj dává smysl.
  • Malé vybíjecí proudy v řádu desítek mA, maximálně stovky mA.
  • Nabíjecí proudy do 1 A (resp. do maximálního výkonu solárního panelu).
  • Ochrana proti podpětí (UVLO), přepětí (OVLO) a nadproudu (OC).
  • Omezení nebo úplně vypnutí nabíjení/vybíjení při teplotách mimo povolený pracovní rozsah.
  • Cokoliv navíc (možnost konfigurace, měření, …) bude fajn, ale ne nutné.

Prototyp č. 1

První nápad bylo udělat ochranu LTO čistě analogově. Vytipoval jsem vhodný komparátor, který umí na výstupu rail-to-rail, má minimální spotřebu a zvládne rozsah napájení alespoň 1,3 až 3,0 V. Toto všechno splňuje NCS2220A od Onsemi.

Další důležitá komponenta jsou P-channel MOSFET tranzistory pro omezení proudu v jednom nebo druhém směru. Po opravdu dlouhém procházení datasheetů jsem nakonec skončil u EV3415, protože z výběru u JLCPCB byly nejlepší a hlavně skladem.

Naopak vybrat dobrou napěťovou referenci, která funguje i pro napětí kolem 1.3 V se ukázalo skoro nemožné. Vybral jsem nakonec AZ431, ale dobrá volba to není, viz dále.

Myšlenka zapojení je následující:

  • Pokud je napětí na článku menší jak 1,513 V, pak bude mít komparátor U2A na výstupu napájecí napětí, čímž se zavře Q1 a proud z baterie do zátěže přestane téct. Díky body-diode Q1 ale může pořád téct proud ve směru od zátěže do baterie a tedy je stále možné článek nabíjet. Toto je stav UVLO, neboli under-voltage lockout.
  • Pokud je napětí na článku větší jak 2,85 V, pak se aktivuje komparátor U2B a zavře tranzistor Q2. Tím přestane téct proud ze zátěže do baterie a vypne se nabíjení. Toto je stav OVLO, neboli over-voltage lockout.
  • Pokud je napětí v rozsahu 1,513 – 2.850 V, tak jsou oba komparátory neaktivní, gate obou tranzistorů je spojen s GND a tím pádem jsou otevřeny. Proud může téct oběma směry.
  • Pro nadproudové situace (over-current) je v zapojení PPTC F1, která odpojí zátěž pro proudy větší jak 3 A. Jakmile se proud sníží, PPTC opět začne fungovat normálně.
  • Pro komparátory je nutná napěťová reference, v tomto případě AZ431, která má ale přiliš velkou spotřebu a zbytečně vybíjí baterii.
  • Pokud by komparátor nebo napěťová reference přestali z jakéhokoliv důvodu fungovat, pak bude baterie odpojena od zátěže. To je výchozí stav.

Návrh zapojení byl výstup z mé „digitální“ komfortní zóny :) Alespoň jsem měl důvod oprášit znalosti. Kvůli miniaturnímu pouzdru UDNF8 komparátoru U2 jsem zvolil strojové osazení prvních 5 prototypů. Ani ne za týden jsem mohl začít testovat.

A dopadlo to neslavně, analogový mág ze mě nebude. Obvod neshořel a skoro i dělá co se od něj chce, ale:

  • Odpojování při podpětí funguje – 1,519 V @ 100 µA a 1,560 V @ 1.05 A.
  • Při přepětí k odpojení nedojde, ale je vidět změna, takže komparátor funguje. Q2 se pravděpodobně otevírá napětím S-G, protože napětí z nabíječky je vyšší, než napájení U2.
  • V obou přechodových stavech (UVLO i OVLO) obvod kmitá. To je způsobeno skokovou změnou napětí na článku při odpojení/připojení zátěže nebo nabíjení. Hystereze na vstupech komparátorů není dostatečná.
  • Spotřeba napěťové reference je příliš velká. To jsem sice čekal už při návrhu schématu, ale je nutné to zmínit.

Začal jsem s úpravou zapojení a snažil jsem se vyřešit všechny problémy, ale celý obvod se začal hodně komplikovat, přibývalo součástek a nakonec jsem ani nemohl najít lepší napěťovou referenci. Nakonec jsem se rozhodl tuto cestu zavrhnout a použít levný a malý mikrokontrolér, ve kterém bude vše: sledování napětí, směru proudu, napěťová reference, hysterezi vyřeší kód a to vše v jedné součástce za méně jak 1 USD.

Prototyp č. 2

Z prvního prototypu nakonec zůstaly jenom P-channel MOSFET tranzistory a PPTC pojistka. Vše ostatní se změnilo.

Základem zapojení je mikrokontrolér ATtiny824, který je součástí rodiny 2-series ATtiny od Microchipu. Tato rodina MCU byla uvedena do prodeje někdy v roce 2022, takže je relativně nová, programuje se pomocí UPDI rozhraní (na rozdíl od dřívějšího AVR SPI), má interní 20 MHz krystal, low-power 32,768 kHz krystal, 12-bitový vícekanálový signle-ended nebo differenciální ADC, RTC, UART, TWI a mnoho dalšího. Navíc mám s AVR velké zkušenosti a už jsem pracoval se series-0 i series-1. ATtiny824 se zdá jako ideální kandidát pro LTO BMS, jen to má jeden háček…

Pracovní napětí tohoto MCU je od 1,8 V (při maximální CPU frekvenci 5 MHz) do 5,5 V, my ale potřebujeme alespoň 1,3 V. Je nepřijatelné, aby BMS přestávala fungovat při plně vybité baterii (1,5 V). Pokud nebude fungovat MCU, neotevřou se tranzistory a nebude možné baterii nabít. Pokud se baterie nechá bez nabití delší dobu, napětí může klesnou ještě víc, klidně i k 1 V.

Ke zvýšení napětí pro MCU jsem nakonec zvolil nábojovou pumpu. Jednoduchý a rozšířený ICL7660 se dá zapojit jako zdvojovač napětí a potřebuje k tomu pouze 2 Schottkyho diody a 4 kondenzátory. Oscilátor pumpy kmitá na relativně nízkých frekvencích a pro zátěže v řádu jednotek mA se dá zpomalit až na ~1 kHz. To jsem považoval za výhodu oproti boost měniči s cívkou a spínací frekvencí kolem 1 MHz. Od zapojení jsem si sliboval lepší účinnost a menší riziko EMI.

Funkce BMS je následující:

  • ATtiny bude mít napěťovou referenci pro ADC 1,024 V. To nám při 12 bitech dává rozlišení 250 µV na LSB. Pokud se implementuje over-sampling, pak se dá přesnost ještě zvýšit (pro zvýšení přesnosti např. o 2 bity bude potřeba 16 vzorků, což zvýší přesnost na 62,5 µV/LSB).
  • Napětí na baterii sleduje ADC_BATT přes napěťový delič s poměrem 0,3. Tím se napětí 1.3 až 2.8 V na článku změní na 0,43 – 0,93 V na ADC vstupu. Napětí baterie tedy budeme schopní sledovat s přesností 187,5 µV/LSB. To je víc než dostatečné.
  • Napětí na zátěží sleduje ADC_OUT přes stejný napěťový dělič jako v předchozím případě. Platí vše výše uvedené.
  • Proud z a do článku budeme měřit pomocí ADC v diferenciálním módu přes shunt rezistor 0,1 Ω. To znamená 100 µV až 200 mV pro proudy 1 mA až 2000 mA. To je maximálně 0,4 W ztrátový výkon na rezistoru, takže je potřeba zvolit větší SMD pouzdro. Použitý rezistor je nakonec SMD1812 na 750 mW.
  • ADC převodník v ATtiny má tzv. Programmable Gain Amplifier (PGA), kterým je možné sledované napětí na shunt rezistoru nejdříve zesílit v krocích 1×, 2×, 4×, 8× a 16× a teprve pak převádět. Díky tomu můžeme dosáhnout vyšší přesnosti měření pro malé proudy.
  • Kód v ATtiny bude pravidelně měřit všechna napětí a podle nastavených pravidel vypínat nebo zapínat oba MOSFET tranzistory současně pomocí signálu CUTOFF.
  • Pojistka PPTC hlídá nadproudové stavy a pokud by došlo například ke zkratu, pak ochrání článek odpojeném zátěže. V běžném provozu, kdy nedojde ke zkratu, ale jen k malému překročení povoleného proudu bude zátěž odpojovat MCU.
  • Měření teploty okolí zvládne vnitřní termistor v MCU. Ten ja napojen na jeden z kanálů ADC, takže můžeme pro měření teploty použít stejný kód jako pro napětí baterie. To nám umožní vypnout nabíjení nebo vybíjení při extrémních teplotách mimo povolený pracovní rozsah.
  • Zapojení je doplněno o konektor se sběrnicí I2C. To umožní celou BMS připojit k nadřazenému systému a sledovat vývoj napětí, proudy, zbývající kapacitu, počet cyklů a další parametry. Příjemný bonus, který nebylo možné mít v předchozí verzi zapojení.

Návrh schématu a layout PCB byl přímočarý, k desce s BMS jsem navrhnul ještě další PCB, kterou nazývám LTO-PACK. Slouží pouze k propojení 3 LTO článků do konfigurce 1S3P a následnému propojení pomocí dvou M3 šroubů k PCB LTO-BMS. Výroba a osazení opět u JLCPCB, za týden bylo vše doma a mohlo se začít s oživením a psaním kódu.

První verzi kódu, který implementuje OVLO, UVLO, OC a podle nastavených pravidel odpojuje zátěž jsem napsal asi za dva večery. Pro účely testování jsem si nechal každou sekundu vypisovat všechny měřené veličiny na UART, kde jsem přes můj USB-UART převodník (který používám i pro UPDI programování ATTiny) data sbíral v PC a ukládal do InfluxDB. Pak jedna rychlá nástěnka v Grafana a několik dní testování vybíjení/nabíjení mohlo začít.

Základní funkcionalita BMS funguje. Hurá!

Nedalo mi to a nakonec jsem implementoval i I2C rozhraní. Napodobil jsem registry pro INA260, integrovaný obvod pro měření napětí a proudu, který má podporu ve firmware Meshtastic. Díky tomu jsem mohl BMS zapojit k mojí základové desce a okamžitě jsem viděl napětí baterie a vybíjecí/nabíjecí proudy v Meshtastic aplikaci.

Když jsem se o svých dílčích úspěších pochválil na Twitteru, tak se ukázalo, že je o téma LTO a celou BMS velký zájem. Strašně moc děkuji všem, kteří mi napsali zajímavé dotazy a postřehy. Donutilo mě to zamyslet se nad několika úpravami, které chci realizovat v další revizi BMS PCB.

Prototyp č. 3

Schéma předchozího prototypu jsem na základě mého testování a připomínek od ostatních rozšířil o:

  • Nábojová pumpa v prototypu 2 není ideální, vyměnil jsem ji za step-up měnič, který z napětí LTO udělá stabilních 3,3 V.
  • Na I2C konektor jsem vyvedl toto stabilizované napětí přes PPTC a MOSFET tranzistor ovládaný z MCU. To umožní baterii jednoduše připojit k čemukoliv, co vyžaduje 3,3 V a maximálně 200 mA. Doufám, že to dramaticky zjednodušší použití LTO baterií ve vašich projektech.
  • Přidal jsem další shunt rezistor pro měření proudu na stabilizovaný 3,3 V výstup. To umožní měřit proud jak z nestabilizovaného výstupu baterie, tak i stabilizovaného výstupu step-up měniče zvlášť.
  • MOSFET tranzistory EV3415 jsem nahradil za SI2333. Mají o něco lepší RDS(on) a hlavně jsou dostupnější a skladem u výrobce.

Nová verze teprve půjde do výroby. Čekám, až bude naskladněna ATtiny824 a pak objednám několik kusů na další testy. Zároveň si na pohodlnější programování a testování chci vyrobit „testbed“ s pogopiny, abych nemusel mít na stole velké klubko vodičů, jako doposud.

Závěr

Jakmile budu mít aktualizaci a revizi B otestovanou, tak informace doplním sem do článku. Držte mi palce a sledujte mě na Twitteru nebo Instagramu. Většinou tam sdílím zajímavosti v reálném čase a teprve potom píšu delší články sem na web.

Uvítám a velmi ocením dobrovolníky pro testování LTO BMS. Napište mi, pokud chcete s projektem pomoct. Zájemcům zapůjčím 1S3P LTO battery pack, který bude možné zapojit k Meshhastic základové desce nebo čemukoliv jinému. Jediné co od testerů potřebuji je sbírat logy z UART (k BMS přidám UART logger na SD kartu, takže po pár dnech stačí kartu vzít a poslat mi její obsah).

A ještě jedna zajímavost na závěr. Snažím se najít spolehlivého dodavatele LTO baterií, které bych v battery packu použil. Jak moc tristní a časově náročný proces to je ukážu na několika příhodách :)

  • První prodejce mi na moje požadavky (LTO baterie v 18650 pouzdru, kapacita kolem 1400 mAh, kovové kontakty na jedné straně) poslal datasheet k Li-Ion na 2500 mAh, technický nákres k jinému typu baterie a vybíjecí křivky k LTO, které mají maximální vybíjení 1C. Po 3 dnech diskusí a otázek jsem to vzdal, tento prodejce očividně neví, co prodává.
  • Druhý prodává 18650 LTO s 3000 mAh (!) Tyto články vidíte na fotografiích v článku a používám je pro testování. Byl jsem totiž strašně zvědavý jaké parametry doopravdy mají. LTO baterie to opravdu jsou, ale podle mého měření mají kapacitu ~1400 mAh. Na můj dotaz, jak udávanou kapacitu 3000 mAh měřili, mi nedokázal prodejce odpovědět, ale prý to jsou ty nejvíc nejlepší super-duper LTO baterie. Anebo jen používají „čínské mAh“, protože 3 Ah není technicky možné do 18650 pouzdra a váhy 39 g dostat (viz tabulka na začátku článku o hustotě energie LTO)?
  • Třetí výrobce/prodejce zatím nereaguje.

A to je prozatím všechno.