logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Hartenberger Maxi Compact LCD – reset EEPROM DS2438 po wymianie ogniw

kumdzio 05 Sie 2025 09:44 240 3
REKLAMA
  • #1 21626344
    kumdzio
    Poziom 10  
    Posty: 30
    Pomógł: 1
    Ocena: 4
    Witam!
    Próbuję naprawić baterię do latarki nurkowej Hartenberger Maxi Compact LCD. Niestety po wymianie ogniw bateria nadal nie chce działać tak jak powinna. Po wielokrotnym sprawdzeniu podzespołów pasywnych na PCB baterii doszedłem do wniosku, że może producent będzie w stanie coś podpowiedzieć. Niestety producent mówi, że tylko u niego można regenerować baterie. Z tego co zrozumiałem z jego odpowiedzi ta bateria zablokowała się gdy napięcie na ogniwach spadło poniżej poziomu X.

    Zacząłem więc analizować co dalej zrobić i po sprawdzeniu mikrokontrolera doszedłem do wniosku, że nie ma możliwości zapisania danych w pamięci tego mikrokontrolera które zachowały by się między włączeniami. Mikrokontroler to PIC16f716 20-pinowy. Nie posiada on EEPROMu i nie znalazłem, żadnej wzmianki o mechanizmach zapisywania danych w pamięci flash. Szukałem więc dalej i znalazłem na płytce układ DS2438, który jest układem monitorującym baterię i posiada on możliwość zachowywania danych w pamięci EEPROM więc jeśli bateria naprawdę jest w stanie zapamiętać swój stan to będzie to zapisane w tym układzie.

    Udało mi się dostać do zawartości tej pamięci i mogę ją modyfikować. Problem polega na tym, że nie wiem co powinienem zmodyfikować. Dlatego potrzebuję pomocy. Każda będzie mile widziana. Jeśli ktoś ma taką baterię i byłby w stanie dla mnie odczytać zawartość tej baterii to będę super wdzięczny. Również, jeśli ktoś ma doświadczenie w takich zabawach i chciałby mi podpowiedzieć co robić lub w którym kierunku iść to też będę super zadowolony.

    Załączam zdjęcie PCB baterii.
    Widok z góry na obwód PCB baterii Hartenberger z mikrokontrolerem i przewodami

    Ach, nie napisałem jak zachowuje się bateria: uruchamia się "normalnie" po podłączeniu części sterującej lampa się uruchamia i można sobie robić wszystko na co ten model pozwala poza jedną rzeczą czyli uruchomieniem żarówki. Po uruchomieniu żarówki (po około 1 sekundzie) bateria odcina zasilanie części sterującej i wszystko staje się ciemne. Na zdjęciu po lewej widać zrobiony z cyny mostek na rezystorze pomiarowym - wtedy bateria nie wykrywa poboru prądu i się nie wyłącza. Jednak obawiam się, że zostawiając tak, naraziłbym latarkę i nurka na niebezpieczeństwo.

    Już trochę szukałem po omacku co zmienić w tej pamięci i pewien postęp udało mi się osiągnąć. Wcześniej (z mostkiem z cyny obecnym) latarka uruchamiała się ale moduł sterujący zamiast świecić to "mrygał" nieustannie żarówką, po tym jak pogrzebałem to przestał i jak jest mostek cynowy to działa normalnie.
    Zastanawiałem, się też czy to nie jest problem tego, że bateria źle widzi pobór prądu i myśli, że jest przeciążona więc podłączyłem zasilanie do baterii z ograniczeniem prądowym i DS2438 poprawnie wykrył prąd ładujący o wartości 1A. Sprawdzałem, też rozładowujący i też wygląda na poprawną wartość ujemną.

    Poniżej zawartość pamięci EEPROM:
    Strona/Bajt 0 1 2 3 4 5 6 7
    Strona 0 07 C8 1C 15 02 FF FF 80
    Strona 1 B3 0E 00 00 FC 00 00 FC
    Strona 2 00 00 00 00 00 00 00 00
    Strona 3 FD 02 FF FF FF FF 10 00
    Strona 4 FF FF FF FF FC D6 1C 00
    Strona 5 0B 00 04 00 30 00 07 00
    Strona 6 44 4 0 0 2 0 FF FF
    Strona 7 00 00 FC F0 00 00 0B 00

    Co już udało mi się ustalić:
    1. strony 0-2 to strony pamięci używane przez DS2438 więc tutaj na pewno nie ma informacji o zablokowaniu baterii
    2. Na stronie 3 bajt 0 -  w nim zapisany jest obecny stan naładowania baterii. Przy zmianie tego bajtu zmienia się wartość ile % baterii zostało wyświetlana na części sterującej
    3. Strona 3 bajt 1 - tutaj zapisany jest tryb w jakim lampa ma świecić. Jest do wyboru A, B, C, T.  Jak zmieniam ten bajt to zmienia się tryb świecenia.
    4. Strona 4 bajty 3-6 są ze sobą powiązane, jak zmieniam bajt 5 to 3 i 4 zmieniają się po uruchomieniu latarki, a jak zmieniam bajt 6 to 3 poprzednie się zmieniają.
    5. Przy zmienianiu wartości bajtów 0 i 1 na stronie 6 bateria w niektórych przypadkach nie wstawała. (nie uruchamiała się) 
    6. Strona 7 bajty 4-7 są używane przez DS2438 więc tutaj na pewno też nie ma "tej blokady"

    Moja procedura wygląda tak, że zwieram do masy reset PICa, zmieniam dane w EEPROM i rozwieram linię reset od masy, następnie podłączam część sterującą i sprawdzam czy działa. Do tej pory próbuję zmieniać bit po bicie (neguję pojedyncze bity) i sprawdzać czy to działa i doszedłem do  strony 6 bajtu 1. 
    AI: Czy posiadasz może schemat elektryczny tej baterii lub samego PCB, albo próbowałeś go odtworzyć? Może to pomóc w dokładniejszym zrozumieniu, jak DS2438 współpracuje z resztą układu i gdzie może być realizowana blokada.
    Nie mam schematu i nie rysowałem. Jeśli będzie taka potrzeba to mogę się tym zająć.
    AI: Czy próbowałeś już całkowitego wyczyszczenia (wyzerowania) pamięci EEPROM DS2438 lub wgrania jakichś domyślnych wartości? Jeśli tak, to jakie były efekty takich prób?
    Próbowałem wgrywać same 00 i próbowałem też FF. Nie przywróciło to baterii do życia.
  • REKLAMA
  • #2 21628386
    Jarek Pi.
    Poziom 27  
    Posty: 1026
    Pomógł: 55
    Ocena: 124
    Może to było zbyt mocne rozładowanie. Przy braku możliwości ładowania z zewnątrz moźe pomóc bezpośrednie odpowiednim regulowanym napięciem lub małym prądem.
  • REKLAMA
  • #3 21628391
    kumdzio
    Poziom 10  
    Posty: 30
    Pomógł: 1
    Ocena: 4
    Ach, przepraszam!
    Nie napisałem tego nigdzie, że ogniwa zostały wymienione na nowe oraz są w pełni naładowane. Ładowarka dołączona do latarki ma swój własny mechanizm ładowania i podłącza się ją bezpośrednio do plusa i minusa baterii. Więc ogniwa myślę, że możemy wykluczyć. 

    Właśnie dotarł do mnie analizator stanów logicznych i będę próbował podsłuchać komunikację między pamięcią, kontrolerem baterii i kontrolerem latarki.


    Edit: po analizach chyba znalazłem nieprawidłowość. Latarka świeci sekundę po czym się wyłącza. Przez całą sekundę DS2438 odczytuje prąd, temperaturę i napięcie baterii.
    I jak temperatura wygląda ok (25 stopni), napięcie też (~5V po podzieleniu dzielnikiem), tak już prąd przez całą sekundę utrzymuje się na poziomie 24A (według układu DS2438).
    Jest to żarówka 12V 50W i bateria o napięciu 16V. Żarówka jest uruchamiana za pomocą sygnału PWM. Wydaje mi się, że to jest przyczyna wyłączania się żarówki.
    Zamówiłem układ, jak dotrze to się przekonam czy mam rację :P
  • #4 21706909
    kumdzio
    Poziom 10  
    Posty: 30
    Pomógł: 1
    Ocena: 4
    Okazało się, że umarł główny mikrokontroler. Latarka poszła na cmentarz :(
REKLAMA