Baterie DELL PERC5i
Moderátor: Moderátoři
Baterie DELL PERC5i
Mame niekolko serverov DELL s radicmi PERC5i a zaloznymi li-ion bateriami 0U8735, resp. 0NU209 alebo 0UF302 (P9110). Niektore baterie odisli a s vymenou je problem.
"Novych" baterii je plny eBay, ale je problem s kvalitou. Napr. "nove" baterie od VHBW boli totalny podvod - stare nepouzitelne baterie prelepene novou nalepkou. Naposledy som kupil radsej nejake cinske - zjavne recyklovany original. Jedna odisla po 9 mesiacoch, druha zatial funguje (ma kapacitu 537mAh, nominalna je 1700mAh, vyrobca SANYO, 2009). Zaujimave je, ze v inom serveri je este povodna bateria z roku 2007 - kapacita 1193mAh, nominalna 1900mAh, vyrobca SMP-PA.
Takze namiesto kupovania dalsich smejdov skusim rozobrat a vymenit clanok. Rozobera sa to lahko - staci odlepit foliu, samotne telo nie je zlepene. Vnutri je doska s procesorom M37512 a clanok li-ion 103450 bez oznacenia typu (rozobral som tri a na kazdom su ine napisy, na webe neexistujuce). Skusim tam cvicne pripojit iny clanok a spustit "learn" cyklus na radici (nabije doplna, vybije a zmera kapacitu).
Pri troche stastia by firmware v baterii nemusel robit problemy. Ked sa to podari, tak kupim nejake 103450. V TME maju nieco znacky MOLICEL - nikdy som tuto znacku nevidel, ale vraj robia slusne clanky. Nemate s nimi skusenosti?
"Novych" baterii je plny eBay, ale je problem s kvalitou. Napr. "nove" baterie od VHBW boli totalny podvod - stare nepouzitelne baterie prelepene novou nalepkou. Naposledy som kupil radsej nejake cinske - zjavne recyklovany original. Jedna odisla po 9 mesiacoch, druha zatial funguje (ma kapacitu 537mAh, nominalna je 1700mAh, vyrobca SANYO, 2009). Zaujimave je, ze v inom serveri je este povodna bateria z roku 2007 - kapacita 1193mAh, nominalna 1900mAh, vyrobca SMP-PA.
Takze namiesto kupovania dalsich smejdov skusim rozobrat a vymenit clanok. Rozobera sa to lahko - staci odlepit foliu, samotne telo nie je zlepene. Vnutri je doska s procesorom M37512 a clanok li-ion 103450 bez oznacenia typu (rozobral som tri a na kazdom su ine napisy, na webe neexistujuce). Skusim tam cvicne pripojit iny clanok a spustit "learn" cyklus na radici (nabije doplna, vybije a zmera kapacitu).
Pri troche stastia by firmware v baterii nemusel robit problemy. Ked sa to podari, tak kupim nejake 103450. V TME maju nieco znacky MOLICEL - nikdy som tuto znacku nevidel, ale vraj robia slusne clanky. Nemate s nimi skusenosti?
Prvy poznatok: vsetky 3 stare baterie boli vybite. Clanky som ciastocne nabil lab. zdrojom. Baterie komunikovali cez I2C ale odmietali sa nabijat a vybijat - poistka OK, ale MOSFET zavrety. Poistka je tu klasicka, nie viac-pinova (procesorom aktivovatelna) ako v notebookovych bateriach.
Skusil som odpojit a pripojit clanok a vsetky 3 baterie ozili. Teraz nabijam tu najhorsiu (ukazuje 96mAh). Som zvedavy, ci sa po learn cykle kapacita zvysi.
Skusil som odpojit a pripojit clanok a vsetky 3 baterie ozili. Teraz nabijam tu najhorsiu (ukazuje 96mAh). Som zvedavy, ci sa po learn cykle kapacita zvysi.
Takze konecne sa to nabilo a po learn cykle tam je 105mAh. Takze kapacita sa moze aj zvysovat. Buduci tyzden skusim pripojit nejaky lepsi clanok a ked to normalne skoci na 1000+ mAh, tak objednam tie MOLICEL 103450.
Este je otazne, co to urobi po prekroceni "designed capacity" 1900mAh (resp. 1700mAh pri inom kuse) - ale dufam, ze nic.
Este je otazne, co to urobi po prekroceni "designed capacity" 1900mAh (resp. 1700mAh pri inom kuse) - ale dufam, ze nic.
Skript na automaticke opakovanie learn cyklu - caka, kym sa bateria nabije a potom spusti learn:
Kód: Vybrat vše
#!/bin/sh
while true; do
STATUS=`megacli -AdpBbuCmd -GetBbuStatus -a0 | grep "Charging Status" | cut -d: -f 2`
if [ "$STATUS" = " None" ]; then
date
megacli -AdpBbuCmd -BbuLearn -a0
fi
sleep 120
done
Tak prvy kus sa dostal asi na 800mAh, co je realna kapacita clanku.
Druhy kus sa ale sprava inak - zjavne ma iny firmware. Kapacita je 105mAh a nezvacsuje sa ani po viacerych cykloch![Sad :(](./images/smilies/icon_sad.gif)
Prvy kus pri nabijani isiel s kapacitou postupne podla dodaneho naboja a kedze realna kapacita clanku bola vacsia, zastavil sa pod 100% a tam cakal do plneho nabitia. Tento druhy to nejako 🤐 prepocitava - pomaly to rastie az to na konci dosiahne 105mAh (po 3-hodinovom nabijani prudom >200mA
)
Druhy kus sa ale sprava inak - zjavne ma iny firmware. Kapacita je 105mAh a nezvacsuje sa ani po viacerych cykloch
![Sad :(](./images/smilies/icon_sad.gif)
Prvy kus pri nabijani isiel s kapacitou postupne podla dodaneho naboja a kedze realna kapacita clanku bola vacsia, zastavil sa pod 100% a tam cakal do plneho nabitia. Tento druhy to nejako 🤐 prepocitava - pomaly to rastie az to na konci dosiahne 105mAh (po 3-hodinovom nabijani prudom >200mA
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Skusil som smbusb_m37512flasher, ale s tymito bateriami nefunguje. Skusal som dve. Asi maju iny bootloader (da sa vraj prepisat pri paralelnom programovani)... Piny 9 a 12 mam, samozrejme, pripojene na VCC.
smbusb_sbsreport funguje (piny 9 a 12 volne), takze zapojenie je spravne:
smbusb_sbsreport funguje (piny 9 a 12 volne), takze zapojenie je spravne:
Kód: Vybrat vše
./smbusb_sbsreport
SMBusb Firmware Version: 1.0.1
-------------------------------------------------
Manufacturer Name: SANYO
Device Name: DLX8483
Device Chemistry: LION
Serial Number: 644
Manufacture Date: 2006.06.30
Manufacturer Access: 0106
Remaining Capacity Alarm: 190 mAh(/10mWh)
Remaining Time Alarm: 10 min
Battery Mode: 6000
At Rate: 0 mAh(/10mWh)
At Rate Time To Full: 65535 min
At Rate Time To Empty: 65535 min
At Rate OK: 65535
Temperature: 26.65 degC
Voltage: 3703 mV
Current: 0 mA
Average Current: 0 mA
Max Error: 100 %
Relative State Of Charge 0 %
Absolute State Of Charge 0 %
Remaining Capacity: 0 mAh(/10mWh)
Full Charge Capacity: 797 mAh(/10mWh)
Run Time To Empty: 0 min
Average Time To Empty: 0 min
Average Time To Full: 65535 min
Charging Current: 1000 mA
Charging Voltage: 4100 mV
Cycle Count: 58
Manufacturer Data: 44 45 4c 4c
Potrebujem dalsie kusy - clanky mam nove Panasonic NCA103450 (maju ich teraz v TME namiesto Molicel) - a z dvoch ani jeden nechce zvysovat kapacitu.
Tak som to trochu potrapil skriptami a zistil som, ze bootloader sa odomyka takto:
Dostupne prikazy po odokmnuti (po niektorych to zamrzlo - musel som skenovat viackrat s resetom a opakovamym odomknutim):
A smbusb_m37512flasher funguje ![Very Happy :D](./images/smilies/icon_biggrin.gif)
Tak som to trochu potrapil skriptami a zistil som, ze bootloader sa odomyka takto:
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x71 -w 0x0214
smbusb_comm -a 0x16 -c 0x70 -w 0x0517
Kód: Vybrat vše
[0] ACK, Byte writable, Word writable, Block writable, >Block writable
[20] ACK, Byte writable, Word writable, Block writable, >Block writable
[40] ACK, Byte writable, Word writable, Block writable, >Block writable
[50] ACK, Byte writable, Word writable, Block writable, >Block writable
[70] ACK, Byte writable
[72] ACK, Byte writable
[f0] ACK, Byte writable
[f2] ACK, Byte writable, Word writable, Block writable, >Block writable
[f4] ACK, Byte writable, Word writable, Block writable, >Block writable
[f5] ACK, Byte writable, Word writable, Block writable, >Block writable
[fe] ACK, Byte writable
[ff] ACK, Byte writable, Word writable, Block writable, >Block writable
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Na navrat z bootloaderu nie je prikaz, ale treba zapis do registra FMCR0 (na adrese 0x0fe0):
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x40 -w 0xe00f --no-pec
Potrebne nastroje pre reset: doska s Cypress FX2LP, SW SMBusb:
http://www.karosium.com/2016/08/smbusb- ... eries.html
Postup resetu po vymene clanku:
1. Pripojit bateriu na dosku (GND, SDA, SCL, napajanie netreba), overit komunikaciu:
2. Prepnut to bootloadera:
3. Vydumpovat oba datove bloky A a B:
4. Najst aktivny blok (ten, ktory nie je prazdny) a upravit ho:
- blok je rozdeleny na 32 sub-blokov, kazdy ma 64 B
- prvy sub-blok je index, ostatne su datove, kazdy bajt v indexe reprezentuje jeden datovy sub-blok, 00 = pouzity, FF = prazdny
- pri zmene sa novy datovy sub-blok zapise do prveho volneho miesta a v indexe sa oznaci ako pouzity (00) - ked je cely blok plny, pravdepodobne sa vymaze a pokracuje druhym blokom (A->B->A...)
- takze upravit index, nechat len prvy bajt nulovy, ostatne FF
- vymazat (vyplnit FF) vsetky datove sub-bloky okrem prveho (0x40-0x7F)
- upravit prvy sub-blok: vynulovat prve 4 bajty (prve dva su asi nejake flagy, druhe dva pocet cyklov), dalsie dva bajty nastavit na 0x6c 0x07 (1900mAh)
5. Zapisat upraveny datovy blok ako A:
6. Vymazat datovy blok B:
7. Ukoncit bootloader:
8. Skontrolovat stav:
9. Otestovat bateriu - pripojit na radic, nechat nabit a spustit learn cycle:
http://www.karosium.com/2016/08/smbusb- ... eries.html
Postup resetu po vymene clanku:
1. Pripojit bateriu na dosku (GND, SDA, SCL, napajanie netreba), overit komunikaciu:
Kód: Vybrat vše
smbusb_sbsreport
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x71 -w 0x0214
smbusb_comm -a 0x16 -c 0x70 -w 0x0517
Kód: Vybrat vše
smbusb_m37512flasher -d ba.bin -p ba
smbusb_m37512flasher -d bb.bin -p bb
- blok je rozdeleny na 32 sub-blokov, kazdy ma 64 B
- prvy sub-blok je index, ostatne su datove, kazdy bajt v indexe reprezentuje jeden datovy sub-blok, 00 = pouzity, FF = prazdny
- pri zmene sa novy datovy sub-blok zapise do prveho volneho miesta a v indexe sa oznaci ako pouzity (00) - ked je cely blok plny, pravdepodobne sa vymaze a pokracuje druhym blokom (A->B->A...)
- takze upravit index, nechat len prvy bajt nulovy, ostatne FF
- vymazat (vyplnit FF) vsetky datove sub-bloky okrem prveho (0x40-0x7F)
- upravit prvy sub-blok: vynulovat prve 4 bajty (prve dva su asi nejake flagy, druhe dva pocet cyklov), dalsie dva bajty nastavit na 0x6c 0x07 (1900mAh)
5. Zapisat upraveny datovy blok ako A:
Kód: Vybrat vše
smbusb_m37512flasher -w reset.bin -p ba --confirm-delete
Kód: Vybrat vše
smbusb_m37512flasher --erase -p bb --confirm-delete
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x40 -w 0xe00f --no-pec
Kód: Vybrat vše
smbusb_sbsreport
Kód: Vybrat vše
megacli -AdpBbuCmd -BbuLearn -a0
Niektore baterie (vyrobca tiez Sanyo) maju namiesto M37512 bq8030DBT. Tam je postup iny, nastastie pristup funguje rovnako ako pri inych bateriach Sanyo s tymto IO.
1. Pripojit bateriu na dosku (GND, SDA, SCL, napajanie netreba), overit komunikaciu:
2. Prepnut do bootloadera:
3. Vydumpovat EEPROM:
4. Upravit data:
- vynulovat bajty 0x600-0x601 (pocet cyklov)
- nastavit bajty 0x602-0x603 na 0x02 0x75 (1700mAh = kapacita vydelena cislom 2,7 - WTF?)
- rovnake data su aj na 0x500-0x503, ale asi ich netreba menit?
5. Zapisat upravenu EEPROM naspat a ukoncit bootloader:
6. Skontrolovat stav:
7. Otestovat bateriu - pripojit na radic, nechat nabit a spustit learn cycle:
1. Pripojit bateriu na dosku (GND, SDA, SCL, napajanie netreba), overit komunikaciu:
Kód: Vybrat vše
smbusb_sbsreport
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x71 -w 0x0214
smbusb_comm -a 0x16 -c 0x73 -r 2 # => vrati 03b0
smbusb_comm -a 0x16 -c 0x71 -w 0xfc50 # 0xfc50 = 0x10000-0x3b0 (hodnota, ktoru vratil predchadzajuci prikaz)
smbusb_comm -a 0x16 -c 0x70 -w 0x0517
Kód: Vybrat vše
smbusb_bq8030flasher -e data.bin
- vynulovat bajty 0x600-0x601 (pocet cyklov)
- nastavit bajty 0x602-0x603 na 0x02 0x75 (1700mAh = kapacita vydelena cislom 2,7 - WTF?)
- rovnake data su aj na 0x500-0x503, ale asi ich netreba menit?
5. Zapisat upravenu EEPROM naspat a ukoncit bootloader:
Kód: Vybrat vše
smbusb_bq8030flasher -w reset.bin --execute
Kód: Vybrat vše
smbusb_sbsreport
Kód: Vybrat vše
megacli -AdpBbuCmd -BbuLearn -a0
V pricnipe je to dobra vec, ale "dopadlo to ako vzdy".
Takze vysledkom su totalne uzavrete riesenia (bez datasheetov, procesory s neznamou instrukcnou sadou) so zabugovanym firmwarom, ktory ti znici bateriu, ked ju nechas pol roka lezat - aj ked clanky su dobre.
Ten M37512 je svetla vynimka - datasheet existuje.
Takze vysledkom su totalne uzavrete riesenia (bez datasheetov, procesory s neznamou instrukcnou sadou) so zabugovanym firmwarom, ktory ti znici bateriu, ked ju nechas pol roka lezat - aj ked clanky su dobre.
Ten M37512 je svetla vynimka - datasheet existuje.