Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

'Resetowanie' elektroniki baterii do laptopów - FAQ

mat_ed 09 Feb 2010 19:14 276670 2
SterControl
  • #1
    mat_ed
    Level 43  
    Opis „Resetu” elektroniki w bateriach do laptopów opartych na układach BQ2040, BQ2060, BQ2063 i pamięciach EEPROM 24C01, 24C02, 24C04 za pomocą programu SBWorkshop 3.71

    Można też skorzystać z programu Be2Works do wersji 2.85 włącznie.

    Uwaga: 12 marca 2012r wydana została nowa wersja programu Be2Works (v3.0). Niestety zrezygnowano w niej z obsługi portu LPT na rzecz USB. Do współpracy z programem niezbędny jest jeden z dwóch interfejsów: USB to GPIO firmy IT lub EV2300.

    W załączniku program Be2Works w wersji 2.82.2, która współpracuje z interfejsem I2C opisanym poniżej.

    Wielu użytkowników laptopów nęka problem niesprawnych baterii. Powodem tego są najczęściej zużyte ogniwa lub niewłaściwy zapis w wewnętrznej pamięci EEPROM o stanie ogniw w baterii. Najczęstszą przyczyną tego jest niewłaściwa eksploatacja. Nie znaczy to jednak, że bateria nadaje się tylko do wyrzucenia. Zakładając, że elektronika i ogniwa wewnątrz baterii są sprawne, możemy taką baterię przywrócić do życia. W przypadku zużytych lub uszkodzonych ogniw, niezbędna będzie wymiana ich na nowe, co jest tańszym rozwiązaniem niż zakup całej nowej baterii. Nie należy wymieniać tylko pojedynczych ogniw, lecz cały komplet, ze względu na różnicę pojemności między już częściowo zużytymi, a nowymi ogniwami. Sama wymiana ogniw, najczęściej nic nie daje i bateria dalej odmawia współpracy, czego powodem są błędne informacje zapisane w pamięci EEPROM, które należy zmienić, czyli przeprowadzić tzw. „Reset”

    Szukając w sieci internetowej informacji o sposobach przywrócenia baterii do życia, natrafiłem na wiele opisów jak to zrobić, ale wszystkie opierały się tylko na edycji zawartości pojedynczych komórek pamięci EEPROM. Co przy niewłaściwych zmianach może doprowadzić do uszkodzenia ogniw, a w najgorszym przypadku do eksplozji lub ich zapalenia.

    Najwłaściwszym rozwiązaniem okazało się użycie programu SBWorkshop, który za nas dokonuje odpowiednie zmiany w zawartości pamięci, a ponadto pozwala na odczytanie wszystkich parametrów baterii. Wersja demonstracyjna tego programu nie posiada ograniczeń dla układów BQ20xx/24Cxx, co w naszym przykładzie jest całkowicie wystarczające.

    Przykładowy opis dotyczy baterii z laptopa Fujitsu-Siemens Amilo D 7830, 755-4S4000-S1P1 o napięciu 14,4V i pojemności 4000mAh, opartej na układzie BQ2060A i pamięci EEPROM 24C02. Objawy: laptop pracuje na baterii około 5 minut. Ładowanie trwa bardzo krótko, około 30 minut.

    Co będzie nam potrzebne?
    • 1. Program SBWorkshop 3.1 Demo
      2. Interfejs do programowania pamięci EEPROM i odczytu danych z baterii
      3. Lutownica
      4. Multimetr
      5. Żarówka 12V/21W

    Elementy do budowy interfejsu I²C:
    • 1. Układ 74LS05 lub 74LS06 - 1szt.
      2. Rezystory 10 kΩ - 6 szt.
      3. Kondensator 100nF - 1 szt.
      4. Wtyk męski DB25 z obudową - 1 szt.
      5. Przewód od myszki USB lub PS2 - 1 szt.
      6. Złącza z czterema kontaktami - 4 szt.
      7. Podstawka pod układ scalony DIL14 - 1 szt.
      8. Laminat jednostronny o wymiarach 55x59 mm - 1 szt.
      9. 1m przewodu czterożyłowego.


    Budowa Interfejsu

    Pierwszą czynnością, jaką musimy wykonać, to zbudować interfejs do komunikacji z baterią i do programowania pamięci EEPROM. Jak kto woli, można go zbudować na kawałku płytki drukowanej lub na tzw. „pająka”, czyli bezpośrednio połączyć ze sobą wszystkie elementy w powietrzu za pomocą krótkich przewodów. Następnie zamknąć całość w obudowie wtyku DB25, wyprowadzając na zewnątrz jedynie przewód zasilania USB lub PS2 i łączące baterię. Należy zwrócić uwagę na to, aby obudowa złącza DB25 była nie metalizowana. W przypadku metalizowanej, należy wyłożyć wnętrze kawałkiem kartonika, aby uniknąć zwarć po włożeniu do niej zmontowanego układu.

    Do złącza J2 podłączamy przewód ze starej myszki, oczywiście wcześniej sprawdzając, która żyła przewodu jest plusem zasilania i masą, pozostałe żyły nie podłączamy. Uwaga: Do zasilania interfejsu należy użyć portów USB, PS2 lub innego źródła zasilania o napięciu +5V, a nie z diagnozowanej baterii! Złącze J3 służy do programowania pamięci EEPROM, a J4 do odczytu danych baterii. W zasadzie złącza J3 i J4 niczym się nie różnią poza brakiem w J4 zasilania +5V. Jest to celowe rozwiązanie, ponieważ do odczytu danych z baterii jest nam niepotrzebne +5V, a korzystając z tego samego przewodu, co do programowania pamięci EEPROM, wolna żyła z +5V może niechcący spowodować zwarcie. Jedynie musimy przekładać przewód do odpowiedniego złącza w zależności, co chcemy robić. Złącze J5 służy do programowania innych układów, jednak w wersji demo programu, są te układy zablokowane i wymagane jest wykupienie licencji. Pomimo, że nie będziemy używać tego złącza, to umieściłem je na płytce i schemacie, gdyby ktoś zdecydował się na zakup pełnej wersji programu.

    Po złożeniu interfejsu i sprawdzeniu poprawności montażu, możemy go podłączyć do portu równoległego komputera i zasilania, a następnie uruchomić program SBWorkshop. Powinniśmy otrzymać w dolnym lewym rogu okna komunikat „Adapter OK.”. W przeciwnym wypadku świadczy to o nie sprawnym interfejsie i należy poszukać, gdzie popełniliśmy błąd w montażu.

    Poniżej schemat i wygląd płytki interfejsu od strony druku.
    Uwaga: Wydruk ścieżek jest przygotowany pod metodę naświetlania. Jeżeli wykonujemy płytkę metodą termiczną, to trzeba obraz ścieżek odbić lustrzanie.

    'Resetowanie' elektroniki baterii do laptopów - FAQ'Resetowanie' elektroniki baterii do laptopów - FAQ'Resetowanie' elektroniki baterii do laptopów - FAQ
    'Resetowanie' elektroniki baterii do laptopów - FAQ'Resetowanie' elektroniki baterii do laptopów - FAQpłytka wykonana przez volvbast1

    Odczyt parametrów baterii

    Po pomyślnym uruchomieniu interfejsu następną czynnością, jaką zrobimy, to odczyt parametrów naszej baterii. Aby tego dokonać, należy najpierw ustalić, na których kontaktach złącza baterii, jest magistrala SM-Bus. Mierząc multimetrem napięcia pomiędzy kontaktami musimy znaleźć kontakty, na których jest napięcie odpowiadające napięciu baterii, czyli w zakresie 12 do 14 V w zależności od stanu naładowania baterii i określić gdzie jest plus i minus. W naszej baterii są pary kontaktów 1,2 plus i 6,7 minus. Na dwóch z trzech pozostałych, czyli 3,4 i 5, w takim wypadku musi się znajdować magistrala SM-Bus. Żyłę GND z przewodu ze złącza J4 interfejsu podłączamy do minusa baterii, a żyły z sygnałami SDA i SCL, kolejno do kontaktów 3,4 i 5 stosując różne kombinacje podłączenia, przy czym po każdej zmianie kombinacji próbujemy programem w zakładce „Battery data” odczytać dane, klikając na przycisk „Read Bartery”. Przy prawidłowej kombinacji, program odczyta nam dane baterii, w przeciwnym wypadku pola z parametrami pozostaną puste i otrzymamy komunikat „Battery not found”. Aby później móc porównać zmiany, jakie dokonaliśmy podczas „Resetu”, zapisujemy sobie raport klikając na „Save Report”. W przypadku całkowicie rozładowanych ogniw, odczyt jest niemożliwy!
    'Resetowanie' elektroniki baterii do laptopów - FAQ

    Odczyt i reset pamięci EEPROM

    Ostrożnie rozbieramy baterię. Jak już tego dokonaliśmy, w środku znajdziemy płytkę z elektroniką baterii. W naszym przypadku będą to dwie płytki jedna nad drugą na samym środku baterii, połączone ze sobą złączem. Na jednej z nich będzie znajdowała interesująca nas pamięć EEPROM 24C02. Teraz odlutowujemy cztery przewody od ogniw, łączące elektronikę z ogniwami. Zaczynamy od plusa pierwszego ogniwa kończąc na minusie ostatniego. Przewody idące do złącza baterii zostawiamy. Wyjmujemy płytki z baterii i szukamy na nich pamięć EEPROM 24C02. Po zlokalizowaniu kładu, sprawdzamy czy na płytce obok pamięci znajdują się jakieś pola kontaktowe i czy któreś z nich łączą się z nóżkami pamięci 5, 6, 7 i 8.

    Jeżeli istnieją takie to zadanie mamy ułatwione i nie musimy wylutowywać układu z płytki. Teraz multimetrem na zakresie omomierza sprawdzamy czy nóżka 7 pamięci ma stałe połączenie z masą.

    Jeżeli nie, to musimy połączyć ją z masą układu. Następnie z noty katalogowej pamięci odczytujemy, na których nóżkach znajdują się sygnały SDA, SCL i plus zasilania. Podpowiem, że dla serii pamięci 24Cxx w obudowie z ośmioma wyprowadzeniami, są to nóżki 5 – SDA, 6 – SCL i 8 - +5V.

    Gdy wiemy gdzie są, jakie sygnały, to pozostało nam tylko odczytać EEPROM i dla bezpieczeństwa zapisać jego zawartość na dysku Ostrożnie lutujemy żyły czterożyłowego przewodu interfejsu z polami kontaktowymi na płytce, zwracając uwagę na to, aby żyły z sygnałami SDA, SCL i +5V ze złącza J3 interfejsu, były połączone z ich odpowiednikami w pamięci. Żyłę z GND łączymy z masą płytki. Po sprawdzeniu poprawności połączeń, podłączamy interfejs do portu równoległego (drukarki) komputera i przewód zasilania do portu USB lub PS2 czy innego źródła zasilania +5V.

    'Resetowanie' elektroniki baterii do laptopów - FAQ

    W programie SBWorkshop przechodzimy do zakładki „Eeprom Read/Write/Reset”. Znajdują się tam trzy pola. W pierwszym ustawiamy, jaki posiada nasza bateria „Chipset”, czyli układ nadzorujący i EEPROM. Wybieramy BQ2060/BQ2063/24C01/24C02, bo w naszej baterii jest BQ2060 i 24C02.
    Drugie pole służy do zapisu i odczytu pamięci EEPROM. Tutaj wybieramy nasz typ pamięci, czyli 24C02 i klikamy na „Save Eeprom”, by zapisać kopię bezpieczeństwa zawartości EEPROM na dysku twardym naszego komputera. Ady przywrócić starą zawartość lub wpisać inną, w polu poniżej wskazujemy wcześniej zapisany plik i klikamy na „Write Eeprom”.
    W trzecim polu mamy podgląd podstawowych danych, jakie zawiera plik, który zamierzamy zapisać do pamięci EEPROM w polu drugim.
    Jeżeli zapisaliśmy kopię bezpieczeństwa naszej pamięci, to możemy teraz przeprowadzić „Reset”. Wracamy do pierwszego pola i klikamy na „Reset Eeprom”. Po tej czynności odłączamy interfejs od zasilania i komputera i odlutowujemy przewody od płytki. Następnie przylutowujemy ponownie przewody do ogniw, zaczynając od masy ostatniego ogniwa kończąc na plusie pierwszego. Jeżeli jest ktoś ciekawy, jakie zmiany zostały dokonane podczas resetu, to może jeszcze raz zapiać zawartość pamięci eeprom w polu drugim i porównać ich zawartość w jakimś Hexedytorem.

    Test stanu ogniw

    Teraz nadszedł czas, aby przyjrzeć się dokładniej stanowi ogniw naszej baterii. Ogniwa w naszej baterii są łączone parami w szeregu, czyli po dwa ogniwa równolegle stanowią parę i cztery takie pary są łączone szeregowo. Do tego celu potrzebna nam będzie żarówka 12V/21W. Podłączamy żarówkę do końców szeregu, czyli plusa pierwszej pary i minusa ostatniej pary. Następnie multimetrem mierzymy napięcia na pojedynczych parach. Jeżeli jakaś para ma znacznie niższe napięcie lub gwałtownie spada, niż na pozostałych, to może to świadczyć o uszkodzeniu tych ogniw lub o nierównym stanie naładowania ogniw. Należy wtedy pojedyncze pary rozładować żarówką mniej do takiego samego poziomu napięcia pod obciążeniem, jakie ma najsłabsza para ogniw. Pamiętać należy jednak o tym, aby napięcie na parze ogniw, nie spadło poniżej 3V. Jeżeli najsłabsza para ma napięcie niższe od 3 V, to należy ją podładować do napięcia pozostałych sekcji, zasilaczem z ograniczeniem napięciowym 4,2 V i prądowym 1 A.

    Uruchomienie baterii

    Tak rozładowane ogniwa wkładamy do obudowy, wkładamy płytkę z elektroniką i ponownie lutujemy połączenia płytki z ogniwami. Składamy obudowę, ale jej jeszcze nie sklejamy, bo może się okazać konieczność wymiany ogniw. Teraz na chwilę wkładamy baterię do laptopa i podłączamy zasilacz, tak, aby zapaliła się kontrolka ładowania baterii. Jest to konieczne, aby sterownik baterii podjął pracę.

    Następnie wyjmujemy baterię z laptopa i jeszcze raz dokonujemy odczytu jej parametrów, tak jak było to opisane wcześniej. Jeżeli stan cyklów ładowań baterii (CycleCount) został wyzerowany, pojemność ładowania FCC została zrównana z fabryczna DC, to znaczy, że „reset” został przeprowadzony prawidłowo. Wkładamy baterię do laptopa i ładujemy aż zakończy się proces ładowania i dopiero włączamy laptop.

    Następnie uruchamiamy program BatteryMon, odłączamy zasilacz i sprawdzamy jak długo będzie pracował oraz czy charakterystyka rozładowania jest płynna. Jeżeli czas pracy się nie wydłużył, a wykres gwałtownie opada, to świadczy to o zużytych ogniwach i konieczności wymiany ich na nowe. Jeżeli posiada ktoś sprawne używane ogniwa o tym samym napięciu i pojemności, to może wymienić uszkodzoną parę, lecz nie daje to gwarancji, że bateria będzie prawidłowo funkcjonować.

    W przypadku, gdy laptop wcale nie widzi baterii lub jej nie ładuje, to należy sprawdzić bezpieczniki. Jeśli bezpieczniki są sprawne, to należy ponownie wpisać starą zawartość eeprom i ponownie spróbować przeprowadzić „reset”. Jeżeli to nic nie dało, może to świadczyć o uszkodzeniu samej elektroniki w baterii i musimy kupić nową baterię lub zdobyć sprawną taką samą płytkę elektroniki.
    Jeżeli wszystko przebiegło pomyślnie, to możemy skleić ponownie baterię i cieszyć się z jej uratowania.



    Autorem powyższego FAQ jest Damian Nawrath [ kabelek(malpa)gmx.de ]. Poprawił i uzupełnił jarob.
  • SterControl
  • #2
    jarob
    VIP Meritorious for electroda.pl
    Instrukcja, w jaki sposób odczytać/zapisać eeprom baterii IBM T2X opartej na AS358D i pamięci SL394 (pamięć jest po drugiej stronie PCB).


    Instrukcja ta jest przeznaczona dla osób, które cokolwiek znają się na lutowaniu i ogólnie na elektronice i jest dla nich oczywiste żeby nie manewrować na żyjącym (pod napięciem) elektronicznym urządzeniu, a jak coś lutujemy to tak żeby nie pozwierać niczego itd...
    Starałem się napisać tą instrukcję w miarę możliwości czytelnie i zrozumiale i mam nadzieje że nie zawiera ona błenduf.



    No to zaczynamy:
    Należy ściągnąć program Smart Battery Workshop lub Be2Works do wersji 2.85 i zainstalować go oraz zlutować prosty programator (z postu wyżej) na 74LS05 i paru drobiazgów. Wszystko to swobodnie nawet razem z podstawką mieści się do obudowy wtyku LPT.
    Do odczytu i zapisu danych w SL394 należy go podłączyć do programatora według poniższego rysunku:
    'Resetowanie' elektroniki baterii do laptopów - FAQ

    Po uruchomieniu programatora i odpaleniu SBW w oknie, w lewym dolnym rogu ma być widoczny napis „Adapter OK”. Oznacza on, że adapter został prawidłowo zmontowany i jest gotowy do pracy.
    Należy odlutować wszystkie przewody idące do ogniw w baterii (kolejność od plusa do GND - czerwony, żółty, biały, czarny) i najlepiej wyciągnąć elektronikę na zewnątrz, żeby nic nam nie przeszkadzało.
    Jeżeli tylko raz chcemy wgrać nową zawartość pamięć do baterii - wystarczy nam do tego podlutować przewody z programatora do punktów, które są zaznaczone na zdjęciu PCB baterii, UWAGA NA "CS" - MA ON BYĆ PRZYLUTOWANY DO NÓŻKI AS358D A NIE PUNKTU LUTOWNICZEGO PD...
    'Resetowanie' elektroniki baterii do laptopów - FAQ
    Masa, czyli GND można dolutować do czarnego przewodu idącego do ogniw, natomiast VCC +5V musimy dolutować do 8mej, lub 6tej nóżki pamięci - najlepiej złapać się ścieżki oraz małego kondensatora smd w pobliżu SL394.
    Ja musiałem kilkakrotnie eksperymentować z odczytem i zapisem, dlatego dolutowałem sobie na stałe przewody zakończone wtyczką, która mieści się później w zamkniętej baterii - jest sporo miejsca.

    Teraz możemy odczytać zawartość naszej baterii. W tym celu wybramy w programie SBW zakładkę "EEPROM /FLASH Programer", następnie w górnej części ekranu wybieramy z rozwijanego menu rodzaj chip’a S29394A i wciskamy przycisk „R – read eeprom” w lewym menu. Potem zapisujemy zawartość wsadu naszej baterii na dysku, wciskając przycisk z obrazkiem dyskietki – „save file”.
    Kolejną czynnością jest zamieszczenie tak zgranego wsadu na subforum, dotyczącym regeneracji baterii, w wątku z opisem typu baterii, typu sterownika oraz parametrami baterii, prosząc o jego reset.

    Jeśli ktoś wie gdzie we wsadzie znajdują się odpowiednie komórki odpowiadające za licznik ładowań, FCC i datę produkcji, to może sam w dowolnym HexEdytorze je pozmieniać i tak przygotowany wsad wgrać powrotem do eepromu.
    W celu wgrania poprawionego wsadu w programie SBW wybieramy zakładkę "EEPROM /FLASH Programer", następnie w górnej części ekranu wybieramy z rozwijanego menu rodzaj chip’a S29394A i wciskamy przycisk z rysunkiem katalogu „open file” w lewym menu. Otwieramy odpowiedni plik i wciskamy przycisk „W – write eeprom”

    Po poskładaniu wszystkiego w kupę, wkładamy baterię do laptopa, podłączamy zasilacz i włączamy go. Ma się naładować do pełna. Dobrze jak mamy zainstalowaną aplikacje IBM-a Battery MaxiMiser. Możemy w niej od razu zobaczyć efekt naszej pracy w „Battery Information” - zakładka „Status Detail” jest w niej zawarte większość istotnych informacji. Miło jest na przykład zobaczyć w zakładce status, po kliknięciu „battery health” zielony kolor i napis "The battery is in good condition".

    Pozdrawiam i życzę powodzenia w eksperymentach!!!


    Autorem powyższego FAQ jest slimax. Poprawił i uzupełnił jarob.
  • #3
    zaradny2
    Level 10  
    A nie wystarczy przelutować układ na nowy? Czy jest taki programator z przystawka do samej baterii?