Kokemusta oman piirilevyn suunnittelemisesta/tilaamisesta? (bms rant)

Liittynyt
20.03.2026
Viestejä
4
TLDR: Pitäis keksiä oma kunnollinen suojapiiri litiumionikennoille (tai löytää sellainen mut ei ole vielä löytynyt)
Minulla ei ole aiempaa kokemusta piirilevyjen suunnittelusta, mitä ohjelmaa/ohjelmia kannattaa käyttää ja missä/miten ne piirilevyt teetetään.

Kontekstina siis diy-projekti, tarkemmin kannettava akullinen virtalähde/powerbank mihin tulisi pari litiumionikennoa.
Akkukennot on hankittu, mutta virtapiiri akkujen lataukseen ja purkamiseen turvamekanismeilla puuttuu vielä.

Virtapiirin (tai lukuisten, jos yksi virtapiiri ei voi tehdä kaikkia näistä) pitäisi:

-Ladata akku usb:n kautta mielellään 80-90% asti (tai max 4V jännitteeseen)
-Syöttää 5V ulostulona, sekä USB-portin ja suuremmalla virralla toisen liitännän kautta
-Suojata oikosululta, ylivirralta, yli/alijännitteeltä, viimeisimmän kohdalla siis estää akkuja purkautumasta alle 3V jännitteeseen

Sellasia halpoja litiumakkujen lataus/purku moduuleita löytyy kyllä (esim. TP4056-sirulla), osassa on mukavasti vielä ylivirtasuojaus, usb-portti joka tukee sekä latausta että purkua yms.
Mutta kaikissa moduuleissa mitä oon löytänyt on samat ongelmat; ne eivät suojaa kennoja alipurkaukselta tarpeeksi hyvin, eivätkä lataa akkua täyttä alemmaksi.

Litiumionikennon jännitteen ei mielellään pitäisi mennä 3V alapuolelle, mutta lähes kaikki edellämainituista moduuleista käyttää tyypillisesti DW01-sirua mikä katkasee virran vasta kun jännite on 2.5V tai jopa matalampi. Sama alijänniteraja pätee suureen osaan kennojen sisäisistä suojapiireistä.
Kennojen jännite kyllä nousee jonkin verran virran katketessa, koska niiden jännite laskee kuormituksen aikana, etenkin jos virtakuorma on huomattava (ns.voltage sag). Tällöin suojapiirin katkaistessa virran 2.5V kohdalla kennon jännite voi nousta takaisin jopa 3V yläpuolelle, tosin jännitteen laskeminen 2.5V kohdalle edes hetkellisesti laskee akun käyttöikää.
Mutta jos virtakuorma on huomattavasti pienempi kuin kennojen virranantokyky, niin jännite ei nouse takaisin juuri ollenkaan virran katketessa.
Esimerkiksi jos kennon kapasiteetti on 5Ah, ulostulovirta on 1A eli 0.2C, suojapiiri aktivoituu 2.5V kohdalla, niin kennon jännite voi jäädä 2.6 voltin tienoille tai matalammalle. Kenno ei välttämättä mene heti käyttökelvottomaksi, mutta sen elinkaari lyhenee massiivisesti.

Kennon jännitteen pitäminen 3V - 4V välillä antaisi kennolle moninkertaisesti pidemmän käyttöiän (tai lataus/purkusyklien määrän) siihen verrattuna, jos kennon jännite olisi 2.7V - 4.2V. Kennosta hyödynnettävä kapasiteetti olisi toki pienempi, mutta purkuvirrasta riippuen kärsisi vain joitain prosentteja. (~95% jos purkuvirta 1C, ~90% jos purkuvirta 2C).
1774542001984.png



Lisäongelmana on se, että kennoissani on sisäänrakennettu suojapiiri, jonka tarkat jänniterajat ovat tuntemattomat. Tarkoitus olisi rinnankytkeä näitä kennoja, mutta jos akut yliladataan/ylipuretaan ja kennojen suojapiirit aktivoituvat eri aikaan (mikä on väistämätöntä koska kennojen ja yksittäisten komponenttien ominaisuuksissa on lieviä eriäväisyyksiä), niin kennojen välille saattaa syntyä jännite-eroja, jotka taas johtavat ei-toivottuihin seurauksiin kennojen tasapainottuessa kun suojapiirit avautuvat. Todennäköisesti kennot eivät tässäkään tapauksessa heti tuhoutuisi, mutta pidemmän päälle transienttivirrat varmasti vähentäisivät käyttöikää, enkä lähtökohtaisesti pidä mistään epävarmoista seurauksista.
Eli toisin sanoen ulkoisen suojapiirin tulisi aina aktivoitua ennen kennojen sisäisiä suojapiirejä, joka on mahdollista vain tiukentamalla jänniterajoja.


Jos käytän edellämainittuja moduuleja, niin laite kyllä toimisi ja saisin sen nopeammin valmiiksi. Mutta haluan panostaa laitteen turvallisuuteen sekä kennojen pitkäikäisyyteen ilman, että joutuisin valvomaan ja manuaalisesti katkaisemaan akkujen latauksen tai purkamisen.
 
En kyllä ole ikinä tehnyt litumkennoilla mitään, mutta jos ongelma on jänniterajojen asettelu, niin eikö sen saisi ihan arduinolla käyttämällä analogiatuloa. Olen joskus tehnyt jänniterajat käyttäen LM3914N piiriä. Tai sitten näitä vastus+zener+transistori kytkentöjä.
 
En kyllä ole ikinä tehnyt litumkennoilla mitään, mutta jos ongelma on jänniterajojen asettelu, niin eikö sen saisi ihan arduinolla käyttämällä analogiatuloa. Olen joskus tehnyt jänniterajat käyttäen LM3914N piiriä. Tai sitten näitä vastus+zener+transistori kytkentöjä.
Arduinon lepovirta on tähän tarkoitukseen massiivinen ja vaikka lepovirtaa saa alemmaksi muutamalla konstilla, niin en luottaisi suojamekanismina softaan, etenkin kun softan suorittava arduino itsessään olisi riippuvainen akusta. Jälkimmäisissä lepovirta ei ole niin iso ongelma, mutta luotettavuus ja hystereesin (oskillaation estomekanismi) saavuttaminen olisi hankalaa.
 
Löytyisikö dw01:n tilalle valmiiksi piiri paremmilla tai säädettävillä jänniterajoilla? FS312F-G:n cutoff näyttää olevan 2.9V, mutta sitä ei kait enää valmisteta mutta ehkä jokin toinen. Ehkä ainakin alarajaa saisi nostettua kusettamalla piiriä laittamalla käyttöjännitteen väliin sopivan diodin jännitettä pudottamaan (näkyy mittaavan suoraan vcc:stä), jos se vaan jaksaa sitten kaikissa tilanteissa toimia..? Taitaa kyllä sotkea purkuvirran rajoituksen toiminnan samalla.

Noissa suojapiireissä näyttää olevan sisällä muutama opari ja jokin logiikka mitä ne ohjaa. Valmiin kytkennän rinnalle omat vertailijat ja ne ohjaamaan chip enablea tms? Jos dw01:n jänniterajoja saisi jollain kikkailtua sopivammiksi, voisi ehkä käyttää kahta sellaista toinen ali- ja toinen ylijännitteelle, kun näköjään muutenkin ohjaavat erillisiä fettejä noita kahta rajaa varten.
 
Viimeksi muokattu:
Löytyisikö dw01:n tilalle valmiiksi piiri paremmilla tai säädettävillä jänniterajoilla? FS312F-G:n cutoff näyttää olevan 2.9V, mutta sitä ei kait enää valmisteta mutta ehkä jokin toinen. Ehkä ainakin alarajaa saisi nostettua kusettamalla piiriä laittamalla käyttöjännitteen väliin sopivan diodin jännitettä pudottamaan (näkyy mittaavan suoraan vcc:stä), jos se vaan jaksaa sitten kaikissa tilanteissa toimia..? Taitaa kyllä sotkea purkuvirran rajoituksen toiminnan samalla.

Noissa suojapiireissä näyttää olevan sisällä muutama opari ja jokin logiikka mitä ne ohjaa. Valmiin kytkennän rinnalle omat vertailijat ja ne ohjaamaan chip enablea tms? Jos dw01:n jänniterajoja saisi jollain kikkailtua sopivammiksi, voisi ehkä käyttää kahta sellaista toinen ali- ja toinen ylijännitteelle, kun näköjään muutenkin ohjaavat erillisiä fettejä noita kahta rajaa varten.
Luin kanssa tosta FS312:sta, olisi parempi mut ikävä kyllä ei enää valmisteta. Oma piirilevy on muutenkin ehkä parempi vaihtoehto koska TP4056 on lineaarinen ja noi halvat bms-boardit/moduulit on monella muullakin tapaa aika matalalaatuisia.
Olen nyt aloitellut KiCadissa piirin suunnittelun ja löysin pari hyvää sirua mitä aattelin käyttää:
BQ25300 latauspiiriin, 3A max.latausvirta ja max.latausjännitteeks saa muutaman vaihtoehdon joiden välillä voi vaihdella muuttamalla ulkoista resistoria.
TPS61235P boosterpiiriin, 5.1V ja 4A pitäs onnistua isolla induktorilla.
TP3840 ali/ylijännitesuojaks, lähinnä alijännitteelle mut jos en löydä parempaa sirua ylijännitteelle niin toimii. Lepovirta on joitain satoja nanoampeereja, eli mosfetti mukaan lukien lepovirta on ehkä muutama mikroampeeri huonoimmas tapauksessa, mikä olis samaa luokkaa kuin itse kennon sisäänrakennettu piiri.

Tässä kohtaa viimeinen siru jota etin olis USB-piiri, sellanen joka pystyis neuvottelemaan 5V 3A sekä sisään- että ulostulona (DRP). Oon löytänyt muutamankin sirun mis olis Try.SRC-toiminto, mut niiden asetukset pitäis ohjelmoida joka bootissa I2C:n kautta mikä edellyttäis mikrokontrolleria. Tehtävissä toki, mutta hinta ja monimutkasuus kasvais huomattavasti, sekä myös lepovirta.
Jos en löydä sirua mikä tekis noi automaattisesti GPIO/analogisella menetelmällä, niin lisään kytkimen jolla source/sink voidaan määrittää manuaalisesti.

Jos tulee ideoita USB-sirusta (tai muistakin) niin saa oikein mielellään ehdottaa/kritisoida.
Voin jakaa mun piirikaavion sit kun oon saanu sen valmiiksi. (Tai lähemmäs valmista)
 
Jos sinne kontrollerin haluaa, niin ainakin avr:n saa ohjelmallisesti power down modeen, mikä pudottaa virran alle mikroampeeriin.
 

Statistiikka

Viestiketjuista
304 587
Viestejä
5 166 747
Jäsenet
82 505
Uusin jäsen
Marko Salo

Hinta.fi

Back
Ylös Bottom