Baterie DELL PERC5i
Moderátor: Moderátoři
Baterie DELL PERC5i
"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?
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.
Este je otazne, co to urobi po prekroceni "designed capacity" 1900mAh (resp. 1700mAh pri inom kuse) - ale dufam, ze nic.
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
doneDruhy kus sa ale sprava inak - zjavne ma iny firmware. Kapacita je 105mAh a nezvacsuje sa ani po viacerych cykloch
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
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 4cTak 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 0x0517Dostupne prikazy po odokmnuti (po niektorych to zamrzlo - musel som skenovat viackrat s resetom a opakovamym odomknutim):
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 writableA smbusb_m37512flasher funguje
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x40 -w 0xe00f --no-pechttp://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_sbsreport2. Prepnut to bootloadera:
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x71 -w 0x0214
smbusb_comm -a 0x16 -c 0x70 -w 0x05173. Vydumpovat oba datove bloky A a B:
Kód: Vybrat vše
smbusb_m37512flasher -d ba.bin -p ba
smbusb_m37512flasher -d bb.bin -p bb4. 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:
Kód: Vybrat vše
smbusb_m37512flasher -w reset.bin -p ba --confirm-delete6. Vymazat datovy blok B:
Kód: Vybrat vše
smbusb_m37512flasher --erase -p bb --confirm-delete7. Ukoncit bootloader:
Kód: Vybrat vše
smbusb_comm -a 0x16 -c 0x40 -w 0xe00f --no-pec8. Skontrolovat stav:
Kód: Vybrat vše
smbusb_sbsreport9. Otestovat bateriu - pripojit na radic, nechat nabit a spustit learn cycle:
Kód: Vybrat vše
megacli -AdpBbuCmd -BbuLearn -a01. Pripojit bateriu na dosku (GND, SDA, SCL, napajanie netreba), overit komunikaciu:
Kód: Vybrat vše
smbusb_sbsreport2. Prepnut do bootloadera:
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 0x05173. Vydumpovat EEPROM:
Kód: Vybrat vše
smbusb_bq8030flasher -e data.bin4. 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:
Kód: Vybrat vše
smbusb_bq8030flasher -w reset.bin --execute6. Skontrolovat stav:
Kód: Vybrat vše
smbusb_sbsreport7. Otestovat bateriu - pripojit na radic, nechat nabit a spustit learn cycle:
Kód: Vybrat vše
megacli -AdpBbuCmd -BbuLearn -a0Takze 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.