Li-Po akkumulátor teszter

Megrendelésre fejlesztettem egy speciális akkumulátorhoz egy speciális áramkört, mely segítségével az akkumulátor beállítható szintre tölthető fel és süthető le. Távol-keleti gyártótól érkező akkumulátorok végtermékbe történő beszerelése előtti tesztek elvégzéséhez volt szükséges kialakítani egy olyan automatizált megoldást, mely segítségével nagyon pontosan elvégezhetőek az akkumulátor előkondicionálással kapcsolatos feladatok, egyúttal a minőség ellenőrzésére is tökéletesen alkalmas az eszköz.

A szóban forgó akkumulátor egy 8mAh kapacitású Li-Po cella, mely rendkívül kicsi geometriai méretekkel rendelkezik. Kapacitásából egyenesen következik, hogy a feltöltése, illetve kisütése nem történhet hatalmas áramokkal, hiszen ami a legtöbb akkumulátor számára optimális paraméter, az ebben az esetben nem megfelelő a tesztek elvégzésére, illetve a folyamatot automatizáltan szükséges megoldani, tehát nem elegendő pusztán csak egy töltőt és egy terhelést készíteni, hanem egy szabályozót tartalmazó és paraméterezhető eszközt kell létrehozni a feladatra.

Természetesen a megfelelő mikrokontroller kiválasztásával kezdtem el a tervezést, hiszen bár analóg mennyiségeket kell szabályozni és visszamérni, az elvárásoknak megfelelően viszont egy kezelőfelületet is ki kell alakítani a kérés szerinti igények megvalósításához, melyet célszerű valamilyen nyomógombos beviteli lehetőséggel és kijelzővel kombináltan kivitelezni.

Az eszközzel szemben támasztott követelmények:

  • pontos szabályozás
  • beállítható töltöttségi feszültség
  • beállítható töltőáram
  • beállítható lesütési feszültséghatár
  • beállítható kisütőáram
  • fázisok idejének mérése, időlimitek beállíthatósága
  • egyszerű kezelhetőség
  • automata működés
  • olcsó előállítási költség több darab gyártása esetén

Az egyes paraméterek beállítható tartományát a megrendelővel egyeztetve arra jutottunk, hogy a leginkább jellemző töltöttségi feszültség 4,1V lesz, de ettől lehet kevesebb, több is bizonyos esetekben, így ezen paramétert 3,7 – 4,2V között lehet megválasztani. A töltőáram 1 – 6mA között állítható be.

A kisütési folyamat vége 3 – 4V közé állítható, a kisütőáram szintén 1 – 6mA közötti értékűre választható meg.

Beállítható továbbá a töltési ciklus, illetve a kisütési ciklus maximális hossza is, így azokban az esetekben, amikor az adott ciklus túl sokáig tart, a teszter a beállított idő elteltével önmagától leállítsa a folyamatot.

A szabályozáshoz analóg feszültségeket használtam. A kapocsfeszültség és az akkumulátor ágban átfolyó áram mérésére műveleti erősítőkből felépített áramkört terveztem. A felerősített és megszűrt egyenfeszültséget a mikrovezérlő A/D konverterének bemenetére vezettem. Digitális értékké alakítva, ezeket a mennyiségeket már könnyen fel lehet használni visszacsatolásra.

A szabályozó jelem szintén egy analóg feszültség, viszont ezt digitális értékből szükséges előállítani. Erre alapvetően két egyszerű megoldás van, egyik a D/A konverter, másik pedig a PWM jel integrálása. Ez utóbbi megoldás mellett döntöttem, ugyanis ezen lényeges szempontok mellett már csak a kezelőfelületet kellett megvalósítani, ami teljes mértékben digitális elven is történhet.

Mivel maga a szabályozás nem egy túlságosan számításigényes mechanizmus, illetve a kezelőfelület sem valami nagyon bonyolult grafikus TFT kijelzőt igényel, így a legtöbb 8 bites mikrokontroller alkalmas lehet ilyen feladatra. Nagyrészt PIC vonalon mozgok, de most az Arduino rendszerekben népszerű Atmega328P kontrollert választottam. Ezt a választást két fontos tény indokolta.

Egyik, hogy ebben a mikrovezérlőben rejtőzik 2db 16bites PWM modul, amit kis okossággal munkára lehet fogni. Azért kell hozzá kis okosság, mert az Arduino rendszer alapjáraton ezt nem tudja, tehát némi átkonfigurálásra van hozzá szükség, de abszolút működik a dolog és 8 -10 bites PWM helyett egy 16 bites felbontással már tényleg nagyon precíz szabályozást lehet megvalósítani. A legtöbb mikrovezérlőben sajnos nincs ilyen lehetőség, ha akad is, nagyon ritka, illetve már abba a kategóriába tartozik, ami ide teljesen felesleges lenne teljesítményben és erőforrásban egyaránt.

Másik egyszerű okot pedig az ízlésesen kialakított kezelőfelület indokolta. Eredetileg karakteres LCD-t használtam volna, de mivel költségben egy ilyen kijelző áráért már színes TFT kijelzőt lehet kapni, arra gondoltam, hogy szebb és igényesebb lenne, ha ezt az eszközt már egy ilyennel szerelném fel. Ez a periféria SPI buszról könnyen kezelhető, illetve Arduino rendszerben kész keretprogram áll rendelkezésre a fejlesztéshez, ami könnyíti a munkát, hiszen a kijelzőt kezelő programkódot nem kell az alapoktól megírni, ezzel is több időt lehet fordítani a lényegi feladatra.

A kijelzővel annyi volt csupán a bökkenő, hogy a keretprogram által biztosított karakterkészlet kissé rondácska, illetve nem nagyítható fel optimális méretre mert vagy túl kicsi a karakter és olvashatatlan, vagy hatalmas nagy és csúnya, valamint így nem is fér ki a kijelzőre a kiírandó szöveg. Arra az elhatározásra jutottam, hogy egyedi karakterkészletet definiálok a kijelzéshez. Olyat, ami optimális méretű betűkből áll és jól mutat az általam választott kijelzőn. A karaktereket számítógépen szerkesztettem meg bitmap szintű megoldással, majd pixelenként definiáltam egy header fájlban. Ez a művelet 3 – 4 napig tartott, hiszen az angol abc használata ellenére is sok betűt és számot kellett létrehozni, hogy a kijelzés szép legyen. Ezt követte a kirajzolási rutin optimalizálása méretre és sebességre, hiszen a processzor csak 8 bites, órajele 16MHz. A lassú kijelzés pedig rontja a felhasználói élményt, illetve akadályozza a működést, ha sok erőforrás kell a grafika megjelenítésére. Amit megspóroltam a kijelzőt kezelő programkód megírásán azt szerintem duplán behoztam a grafika szerkesztésével. Sajnos a grafikus felület beprogramozása nem csak sok időt, de sok memóriahelyet is igényelt. A kész eszköz programmemóriájának nagyjából felét csak a karakterminták foglalják el.

A töltő végigcsinálja a teljes töltési ciklust, tehát a töltés minden esetben áramgenerátoros módban indul el, majd feszültséggenerátoros módban ér véget. A töltési folyamat akkor fejeződik be, ha az akkumulátor kapocsfeszültsége eléri a beállított értéket, illetve feszültséggenerátoros módban a töltőáram 100uA alá esik. A töltési folyamat a Li-Ion akkumulátorok töltési jelleggörbéjét követi. A pontos mérésnek köszönhetően a túltöltés teljes mértékben kizárható.

A szabályozás pontossága feszültség esetén +/-1mV, áram esetében pedig +/- 5uA. Ez azt jelenti, hogy a beállított érték és a mért érték között maximum ilyen eltérés lehetséges.

A paraméterezésre külön menü lett kialakítva. A teszter rendelkezik egy manuális és egy automata üzemmóddal, ami szintén a beállító menüben választható ki.

Manuális üzemmód esetén az akkucella felcsatlakoztatását követően egy gombbal indítható el a töltési folyamat, illetve egy másik gombbal a kisütés. Mindkét folyamat végén a befejező képen a végrehajtás idejének hossza látható. Ez a mód lehetővé teszi a két funkció kézileg történő szabad elindítását.

Automata módban az akkumulátor csatlakozását követően elindul egy töltési folyamat, majd a feltöltés végén automatikusan indul egy kisütési ciklus, majd a kisütés végén ismét egy töltés. A folyamat végén a kisütési ciklus ideje kerül kijelzésre.

A futó folyamatot egy sárga LED jelzi, így a gyártás során több tesztert használva messziről is látható melyik milyen állapotban van, hol van szükség beavatkozásra és hol fut, vagy fejeződött már be valamilyen folyamat.

A fejlesztés befejezéséhez közeledve a programmemória teljesen megtelt. Ahhoz, hogy a még kimaradt funkciókat is be tudjam írni a kódba, azon jelentős optimalizálást kellett végrehajtani annak érdekében, hogy szabaduljon fel némi terület a memóriából, de végül sikerült, így a 32K méretű memória gyakorlatilag teljesen ki lett használva. Az eszközből egyelőre egyetlen prototípust készítettem. A nyomtatott áramköri panel kétrétegű kivitelben készült, melyet magam gyártottam az első példány összeszereléséhez. Apró hibák még akadtak rajta, de ezeket jelen verziónál próbáltam kevésbé feltűnően kijavítani, illetve a terven is korrigálni, hogy újabb példány, vagy kisebb széria gyártása esetén már tökéletes legyen a dokumentáció.

Li-Po_charger

Li-Po_charger