BMS za LiFePo4 – Izdelava

Posted on Posted in Druge predelave

Izdelava: Arber Kramar

Verzija 3.0

1. UVOD

Pred vami so navodila za izdelavo in uporabo doma razvitega sistema za nadzor in balansiranje LiFePo4 baterijskih celic. Sistem za enkrat ni uporaben za druge tipe baterij – LiPo ali Pb preprosto zaradi vzorčenja napetosti. BMS stabilno deluje tudi med vožnjo pri 700A. So sicer določeni primeri, ko komunikacija pade, vendar se ponovno zažene in čez kake pol sekunde normalno deluje. Po navadi po ustavljanju na križišču – full stop, zadeva pade iz faze. Zna pa se zgodit, da pri motnjah ob močnem pospeševanju pokaže maksimalne vrednosti, spet za pol sekunde. Nič strašnega…

2. PRINCIP DELOVANJA

Sistem sestavljajo naslednji elementi; Celične PCB ploščice, Master enota in LCD zaslon. Komunikacija med slednjimi je izvedena z UTP CAT3 mehkim (!) kablom, ki ima znotraj 4 zvite pare žic. En par je uporabljen za komunikacijo »IZ« drugi pa komunikacijo »V« master enoto. Vsak celični PCB je povezan s sosednjim z dvema žicama/parico. Vhod na ploščici je zaščiten z optocouplerjem. Celični moduli so v funkciji Slave in ne odločajo o ničemer. Master komunicira z oddanim bytom, nato pa vsak modul doda svoj byte/paket v linijo. Na koncu skupek paketov konča na vhodu v master, ki informacijo vloži v pomnilnik in vsakemu paketu podeli zaporedno številko. Prvi byte iz masterja je ukaz modulom, zadnji pa je FF terminator, ki zaustavi komunikacijo. S tem kontrolira tudi integriteto komunikacije. Hitrost prenosa je 9600 BAUD, protokol pa je serijski UART.

A. CELIČNE PCB PLOŠČICE

Srce je PIC12F1822 in pa referenčna dioda LM385. Vzrok za omejitev BMSa na LiFePo celice je vzorčenje napetosti v modulih. Sistem zaznava napetost glede na referenčno diodo LM385 – 1,235V. Vrednost se digitalizira v PIC12F. Dodeli se ji primerjalna velikost, ki je inverzna glede na vrednost. Vrednosti imajo razpon od 0 do 255. Zaradi kompresije napetosti v en byte 0 predstavlja 3,99V in 255 predstavlja 2,21V. Natančnost meritve je torej zaradi kompresije cca 10mV, kar je še vedno zadovoljivo. Glavna prednost take kompresije pa je, da lahko z eno master enoto nadziramo do 200 celic! Omejitev je seveda pomnilnik čipa v master enoti. Vendar bi tudi tu lahko uporabili Pic16F z večjim pomnilnikom in nadzorovali tudi do 400 celic. Celični PCB vsebuje tudi termistor, ki deluje kot delilnik napetosti. Modul tako v paket dodaja tudi informacijo o temperaturi nad celico. Sistem je narejen, da je čim bolj preprost in centralno krmiljen. Noben od PCB modulov ne more sam posredovati brez ukaza iz master enote, kar je še dodatna zaščita pred izpraznjenjem baterij. Celični moduli imajo zelo nizko porabo le nekaj mA, kar je manj kot samo praznjenje celice.

BMS_2

 

 

 

 

 

 

 

 

V zadnji reviziji Celičnega PCB sem uporabil N-channel mosfet za prevajanje toka skozi 3R3 5W upor, ki uspe prevajat 1A. V primeru močnejšega upora 2R 7W bi sistem uspel požirati 1,8A ali več ampak nisem prepričan, da bi PCB ploščica zdržala. EDIT: Po najnovejših ugotovitvah kaže, da bi PCB zdržal 2A balansiranega toka, vendar priporočam pokončno postavitev baterij, ker je v osnovnem formatu 2R 7W upor nameščen na BMS ploščici ravno ob pozitivnem terminalu celice in ga lahko segreva. Posledice so še neznane, vendar mislim, da ni nič dobrega.

BMS_3

 

 

 

 

 

B. MASTER ENOTA IN LCD ZASLON

Master je enota, ki procesira vrednosti celic, odloča o proženju balansiranja, izklopi polnilec in prikazuje vrednosti na zaslonu. Temelji na čipu PIC16F1827, ki ima dovolj pomnilnika za 200 celic. Vrednosti od 2,21V do 3,99V se smatrajo dovolj relevantne za LiFePo celice. V primeru 1,8V na celico je že nevarno za uničenje celice, hkrati pa moduli tudi izgubijo napajanje, kar opazimo kot »no comms« signal na LCD. Vrednost alarma nizke napetosti je 2,5V, tu se prižge opozorilna LED. Vrednost izklopa polnilca pa je 3,6V.
Oba izhoda sta ojačena preko N-channel mosfeta, ki drenira 12V napetosti proti zemlji. Priklop imenujemo tudi »open drain« torej moramo signalni rele med +12V in mosfet. Drugi izhod pa lahko deluje tudi kot RS232 serijski izhod za priklop Pcja. Po tej liniji sistem oddaja vrednosti celic v eni zanki.

Na LCD master prikaže napetost najvišje celice (Vh), napetost najnižje celice (Vl), pozicije teh celic(hXX, lXX) in skupno napetost v sistemu (Vt). Omeniti pa moram, da sistem šteje prvo celico od najbližje vhodu masterja – Din. Ta je celica št. 0, torej število celic je n-1. S pritiskom na gumb pa lahko spodnja vrstica prikaže najvišjo in najnižjo temperaturo celic. V primeru balansiranja LCD prikaže število ploščic z vklopljenimi upori. In v primeru padca komunikacije »no comms« in utripajoča LED.
BMS_4

 

 

 

 

 

3. IZDELAVA CELIČNIH PCB MODULOV

Celični moduli so izdelani dvoslojno v SMD tehniki. Pri premisleku so se pokazale prednosti SMD pred DIP načinom. Manjši profil ploščic, več prostora za praznilni upor, boljše odvajanje temperature. Predvsem pa ni potrebno vrtati lukenj za elemente ˘. Ploščice sem po načrtu naročil pri kitajskemu dobavitelju PCBjev. Poslal sem mu gerber datoteke, točno tako, kot so shranjene v tem paketu. Sporočil sem število želenih PCB – po izkušnjah predlagam, da naročiš za 10 več kot jih potrebuješ. Izdelali so kvalitetne dvoslojne ploščice, z izrisom elementov, platirane kontaktne površine in lakiran ostali baker. Po pregledu glavnih točk zaradi možnega prevajanja sem ugotovil, da so bile ploščice vse dobre.

BMS_5

 

 

 

 

 

 

 

Za vgradnjo elementov na PCB potrebujemo naslednje:

  • Lot postajo z nastavljanjem temperature Konico 0,8mm Cin 0,5mm
  • Vakuumsko črpalko za odstranjevanje elementov v primeru napake

Jaz sem se izdelave lotil sistematično med vikendom. Za 40 ploščic sem porabil dva dni, vendar so izdelki na koncu zgledali kot profesionalni. V kolikor imate reflow pečico bi zadevo rešili še hitreje, zamudno bi bilo le postavljanje elementov na PCB. Po spajkanju je potrebno pregledati elemente z lupo, še posebno nogice PIC12F, ki lahko hitro potegnejo nase cin s sosednjih povezav.

Seznam potrebnih elementov za en kos:

  • 1x Izdelana PCB ploščica
  • 4x Dupont header moški enovrstni, jaz uporabljam 90°
  • 1x PIC12F1822 SMD ohišje SOIC8
  • 1x VO615A6 SMD optocoupler, po izkušnjah dela točno ta, in nič drugega!!!
  • 1x tranzistor mosfet N channel PMV30UN, ohišje SOT23 (v shemi je bipolaren DNBT)
  • 1x LM385-12 referenčna dioda ohišje SOT23

Upori SMD ohišje 0805:

  • 2x 330R
  • 2x 1K
  • 1x 2K7
  • 2x 10K
  • 1x 6K8
  • 1x upor 3R3 5W DIP

Kondenzatorji:

  • 1x 0,01uF ohišje 1206
  • 1x 10uF elektrolitski smd 16V
  • 1x Termistor NTC AVX – NB12K00103KBB 10K ohišje 0805

BMS_6

 

 

 

 

 

 

 

Za LM diodo lahko uporabimo tudi TO92 ohišje samo se je treba igrat s krivljenjem nožic. Prednost imajo LM285-1.2 ker so prirejene za delovanje pod pri -25°C in tudi cenejše. Posebno bi rad OPOZORIL!, da se kakršno koli igranje z optocouplerji ne izplača. Taki kot so navedeni v listi morajo biti vgrajeni. V primeru drugih ne morem garantirati komunikacijo brez motenj!

BMS_Modul_Shematic

 

 

 

 

 

 

4. IZDELAVA MASTER PLOŠČICE

Tudi ta je izdelana dvoslojno v SMD tehniki. Enako velja za izdelavo kot za celične PCBje.

Seznam potrebnih elementov za en kos:

  • 1x Izdelana PCB ploščica
  • 26x Dupont header moški enovrstni, jaz uporabljam 90°
  • 16x Dupont header ženski za LCD
  • 1x LCD modul 1602, najboljši je kitajski z ebaya…
  • 1x PIC16F1827 SMD ohišje SOIC18
  • 1xLM78L05ACM voltage regulator ohišje SOIC8
  • 1x VO615A6 SMD optocoupler, po izkušnjah dela točno ta, in nič drugega!!!
  • 2x tranzistor mosfet N channel PMV30UN, ohišje SOT23
  • 1xLED dioda rdeča 5mm

Upori SMD ohišje 1206:

  • 1x 10R
  • 2x 330R
  • 2x 2K2
  • 2x 10K
  • 2x 270R
  • 2x 22K
  • 1x 4k7

Kondenzatorji:

  • 2x 0,01uF ohišje 0603
  • 1x 10uF elektrolitski smd 16V v ohišju 3527
  • 1x 0,01uF keramični kondenzator 103 (v DIP izvedbi)

Po izdelavi vezja je potrebno dodati 0,01uF keramični kondenzator med kontakte upora R1. To v efektu povzroči RC filter na izhodu iz optocouplerja, kar izloči velik del motenj v liniji. Moram pa poudariti, da RC filter deluje samo z omenjenim optocouplerjem. Za druge modele, je potrebno določiti vrednost RC z osciloskopom. Verjemite mi na besedo, ker sem zaradi različnega optocouplerja izgubil cel mesec dela!

BMS_7

 

 

 

 

 

Tudi LCD priporočam, da nabavite kitajskega na ebayu, ker je v softweru že predviden driver. Nanj pri spajkamo ženske kontakte, da lahko LCD snamemo po potrebi. V kolikor bi želeli uporabiti drug LCD je potrebno vključiti drug driver in software na novo kompilirati. Za navadnega uporabnika je dovolj obstoječ sistem.

EDIT: z najnovejšim softwerom zdaj deluje vsak LCD. Trik je bil v časovni zanki. Zdaj je to rešeno z ukazom o osveževanju v kodi. Prav tako je ukinjen en pin LCDja, kar sprosti A4 pin na PIC16F

BMS_Master_Shematic

 

 

 

 

 

 

 

5. PROGRAMIRANJE IN NASTAVLJANJE MODULOV IN MASTER ENOTE

Po izdelavi modulov je potrebno čipe programirati z našo kodo. To izvršimo z usb programatorjem za PIC. Lahko ga dobite na ebayu ali pa kupite v trgovini z elektroniko. Pristop je enostaven. Luknje za programator so malenkost razmaknjene med seboj, zato lahko na programator nataknemo Dupont headerje in držimo v roki. Programator priklopimo v PC, zaženemo software in ta sam najde ustrezen čip. Po navadi je prazen, zato naložimo naš program s končnico .hex.

BMS_9

 

 

 

 

 

 

 

Nato priklopimo master na 12V in vežemo posamezne module v komunikacijo. Seveda jih priklopimo na vir napetosti 3,6V. Jaz sem uporabil kar polnilec za eno celico do 3,8V. Preverimo delovanje modulov in na masterju ukažemo balansiranje. Upor se mora vklopit in prevajat 1A. Ko potrdimo, da vsi moduli delujejo jih lahko vgradimo na celice. V tem trenutku lahko na zadnji strani LCD priredimo kontakte, da lahko izklopimo osvetlitev. Med vožnjo ponoči lahko svetel LCD kar pošteno moti.

BMS_10

 

 

 

 

 

 

 

6. POVEZOVANJE CELIC

Po izdelavi ploščic lahko priporočim uporabo Dupont kablov 200mm ali 300mm z že dodanimi Dupont kontakti. Ker je med celicami nesmiselno izdelovati in krimpati parice na kratko dolžino predlagam nakup teh kablov. Parice pa zvijemo tako: v baterijski vrtalnik vložimo žico z enega konca, izberemo ustrezno smer vrtenja in držimo drugi konec trdno. V hipu sta parici zviti. Uporabimo različne barve, da ločimo med kontakti. Lahko na obeh koncih dodamo še kapljico vročega lepila, da se parici ne odvijeta. Za izdelavo komunikacije med škatlami in masterjem, kjer je razdalja večja priporočam UTP CAT3 mehki kabel. Not so 4 pari že zviti, tako, da je najlažje skrimpati konce in dodati Dupont konektorje. Pazite na barvo in orientacijo konektorjev. EDIT: V kolikor že imate svoje konektorje, ki bi bili boljši od mojih dupont za priključke na PCB jih brez skrbi dodajte, omejitev je le dimenzija terminala za v PCB.

Iz master enote gre kabel iz izhoda OUT proti najbližji ploščici na vhod označen IN. Ta je zaščiten z optocouplerjem. Izhod iz te ploščice je nato iz OUT na najbližjo ploščico v IN in tako dalje, dokler ne pride komunikacija do zadnje ploščice od koder gre na master IN vhod, ki je tudi varovan z optocouplerjem.

Master ima še 5 kontaktov. Označeni so od 1 do 5.

  1. Stikalo za balansiranje celic
  2. Stikalo za temperature na LCD
  3. Izhod za serijski RS232 port
  4. Izklop polnilca
  5. – oz. GND skupen vsem zgornjim izhodom.

BMS_11

 

 

 

 

 

Predlagam tudi vgradnjo reset stikala na +12V dovod v master enoto, s katerim lahko v primeru zamrznitve resetiramo komunikacijo. Sedaj se to nič več ne dogaja, vendar sem imel v začetku nekaj primerov, kjer je komunikacija zmrznila.
Drug predlog pa je, da med 12V baterijo vstavite 12V galvansko ločen 2W DCDC pretvornik. Lahko pomaga pri izločanju motenj iz napajanja v vozilu. Master porabi okoli 100mA toka torej bo 2W dovolj.
Predlagam tudi vezavo izklopa releja 230VAC preko master izhoda. Master IZKLAPLJA! 12V rele, ki na svojih kontaktih izvrže 230VAC 25A kontaktorja polnilca. Poskrbeti je potrebno še za povratno diodo na navitju 12V releja, da ne bi uničili mosfeta.
Tako imamo sistem varovan tudi v primeru, da nam zmanjka 12V v avtu. V vsakem primeru izklopi polnilec, kar zavaruje celice!

Pozor! Izhod za izklapljanje je potrebno napeljati ločeno od ostalih komunikacijskih paric, ker vzporedno napajan 12V rele moti komunikacijo dovolj, da lahko resetira master enoto.

BMS_12

 

 

 

 

 

 

 

7. DELOVANJE

Sistem lahko deluje na dva načina. Bottom balancing ali top balancing. Vsak ima svoje prednosti in slabosti. Naj vsak presodi, kateri način je boljši.

A. BOTTOM BALANCING

Sistem v delovanju avta prikazuje napetosti celic v realnem času. V primeru nizke napetosti prižge opozorilno LED. Oddaja tudi podatke po RS232 portu.
Ko želimo balansirati, izpraznimo baterije dokler lahko, zapeljemo avto v garažo in vklopimo stikalo. Moduli začnejo prazniti z 1A in LCD izpiše »balancing XX«. Po določenem času vse celice padejo na 2,8V in sistem prikazuje »Balancing 0« na LCD. Takrat lahko vklopimo polnilec in polnimo. Med polnjenjem prva celica doseže 3,6V in sistem izklopi polnilec. Sistem je torej napolnjen po merilu celice z najmanjšo kapaciteto. To na začetku ponovimo enkrat na teden, kasneje pa so celice že tako balansirane, da skupaj dosežejo nič-ti nivo in jih praznimo le še na 3 mesece ali pol leta.

B. TOP BALANCING

Sistem v delovanju prikazuje napetosti celic v realnem času. V primeru nizke napetosti prižge opozorilno LED. Oddaja tudi podatke po RS232 portu.
Sistem je pripravljen tako, da priklopimo polnilec, balansirno stikalo in polnimo. Ena celica doseže 3,6V in vklopi se shunt, ki odvaja 1A z njenih kontaktov. Vklopi se izhod, s katerim lahko ukažemo polnilcu na nižji tok polnjenja. Po določenem času bodo celico ujele tudi ostale. Pogoj za izklop polnilca pa so vsi prižgani moduli. Ker obstaja stikalo za balansiranje, je možno polnit tudi brez balansiranja. V tem primeru se polnilec izklopi, ko vse celice dosežejo 3,6V. Delam pa na varnostnem mehanizmu, ki bi izklopil polnilec, ko ena celica preseže 3,8V.

 

8. PRENOS DATOTEK POTREBNIH ZA IZDELAVO

BMS datoteke PRENOS

V mapi sheme najdete vezalne sheme za razumevanje in lažje sestavljanje.
V mapi gerberji najdete pripravljene načrte za izdelavo PCB
V mapi software najdete programsko kodo

 

Kaj dejansko pa pomeni (Batery Managment System) pa si lahko strokovno v angleščini preberete na tej povezavi.