Elektroda.pl
Elektroda.pl
X
Testo
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?

18 Sie 2019 19:32 189 4
  • Poziom 9  
    Witam,
    Na wstępie napiszę że mam nadzieje iż jestem we właściwym miejscu. Jeśli jest lepsze, gdzie uzyskam bardziej adekwatne odpowiedzi to bardzo proszę mi dać znać gdzie mam to przenieść.

    Problem:
    Do tej pory byłem w stanie z uwalonego procesora zgrać wsad i zaprogramować nim nowy i wszystko działało ok, ale co będzie gdy odzyskanie danych kalibracji nie będzie możliwe?
    Jak skalibrować ładowarkę mając wsad z innej/czysty?


    Miałem kilka tych zepsutych ładowarek - dokładnie taki sam model. Ładowarka składa się z osobnego zasilacza AC/DC i płytki samej ładowarki która zawiera dwie niezależnie działające ładowarki (oparte na Silab C8051F380) - taki bliźniak na jednej płytce - jedyną częścią wspólna jest głośniczek.

    Co udało mi się ustalić:
    1. Po zamianie samych procesorów miejscami oczywiście ładowarka działa dalej jednak pomiary napięcia poszczególnych cel są kompletnie rozjechane. Brak dodatkowych pamięci zewnętrznych, wiec to wszystko musi być w mikro kontrolerze. Wszystko wraca do normy po zamianie ich miejscami z powrotem.
    2. Producent wypuścił firmware upgrade zawierający nowy bootloader i oprogramowanie. Wgranie ich nawet na twardo używając programatora JTAG nie rusza kalibracji wiec zapewne omijają one ten obszar pamięci odpowiedzialny za kalibracje.
    3. Nie ma żadnego ukrytego menu, próbowałem rożne kombinacje przycisków przy włączaniu wiec opcja ta odpada jak również ta ze producent zdradzi mi jak to robią. Ładowarka już jest tzw. "discontinued".

    Wymyśliłem sobie że obie strony ładowarki przeflashuje tym fabrycznym updatem (bootloder i firmware) - trzeba to robić osobno dla każdej ze stron (Lewa/prawa) gdyż każda strona ma nawet swoje własne gniazdo USB do tego celu. Ja używałem wyprowadzeń na płycie do Jtaga / C2, nie usb. Następnie przywrócę im obu ustawienia fabryczne i zostawię dokładnie w tym stanie obie strony nie naciskając żadnego guzika nawet, aby nie wprowadzać dodatkowych zmiennych w postaci innych ustawień w samym menu. Wymyśliłem że zgram wsad z obu stron ładowarki w takim stanie i porównam je i teoretycznie jedyną różnicą powinna być właśnie ta kalibracja. I trochę to zadziałało tak jak chciałem jednak teraz mam problem bo nie wiem jak mam to zinterpretować...
    Każda strona ładowarki ma gniazdo balancera które kontroluje napięcie do max 6 ogniw oraz gniazdo główne zapewne z kontrola całkowitego napięcia.
    Dodatkowo chciałem wprowadzić własną poprawkę gdyż jedną cele mi trochę przeładowuje w porównaniu do kilku innych mierników.

    Mam dwie takie podwójne ładowarki: nazwałem je Hex Screws i Philips Screws - bo nie mają żadnych numerów seryjnych, a jedyną różnicą jest inny rodzaj śrubek po bokach. Każda strona ładowarki LEFT i RIGHT ma swój wsad w odpowiednim folderze.

    Czy ktoś jest mi w stanie wskazać drogę jakby można ten temat ugryźć? Moja wiedza jest bardzo ograniczona - i tak przeszedłem samego siebie docierając do tego momentu.
    Będę wdzięczny za pomoc.

    Oto wsady obu ładowarek:

    https://drive.google.com/open?id=11AiUnremW-Kep-v-qBe9TLoBSV95b1Wa]
  • Testo
  • Pomocny post
    Poziom 39  
    Generalnie bez pomocy producenta ciężko cokolwiek powiedzieć. Ewentualnie eksperymentalne modyfikowanie zmiennych. Różnice są w komórkach powyżej adresu 0xF800 - 0xF83F. W tych 64 komórkach najprawdopodobniej znajdują się zapisane dane kalibracyjne tego układu. Ale ciężko powiedzieć co tam dokładnie jest zapisane. Dodatkowo w jednym sofcie inna jest komórka 0xF5E1 która tylko we wsadzie "left_hex_screw" przyjmuje wartośćc 0x8D. W pozostałych wsadach ma ona wartość 0xFF. W praktyce poza powyższym softem i obszarem > 0xF800 to wszystkie wsady niezależnie od strony lewa-prawa są takie same.
  • Testo
  • Poziom 35  
    excray napisał:
    Ale ciężko powiedzieć co tam dokładnie jest zapisane.


    Ja się tak przyglądnąłem temu obszarowi od 0xF800 i sprawa nie wygląda na beznadziejną.
    Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?
    Po pierwszym bajcie = 0 (może to wskaźnik dokonanej kalibracji), od bajtu 0xF801 do 0xF82C jest 11 liczb zmiennoprzecinkowych float (w konwencji Big endian) o różniących się ale spójnych w ramach tych czterech ładowarek i sensownych jak na wartości kalibracyjne wartościach (w kolejności Hex lewy, prawy, Philips lewy prawy):

    Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?

    Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?

    Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?

    Ladowarka LiPo na kontrolerze Silab C8051F380 - jak dostac sie do kalibracji ?

    i co ciekawe zmienne między ładowarkami jest tylko 8 wartości. Pierwsze siedem (może dotyczy pomiarów napięć) i dziesiąta (może skalowanie bocznika amperomierza). Pozostałe trzy wartości są identyczne między ładowarkami i wyglądają na jakieś stałe konstrukcyjne.

    Po tych floatach jest jeszcze parę bajtów różnych, niewiadomego przeznaczenia. Będzie w tym najpewniej numer fabryczny bo ładowarka go wyświetla. Gorzej by było gdyby tam była jeszcze jakaś suma kontrolna obszaru kalibracji ale miejmy nadzieję że nie.

    Czyli gdyby się uprzeć to można by zmieniając pojedynczo te współczynniki obserwować ich wpływ na odczyty napięć i prądu, w relacji z wartościami zmierzonymi z zewnątrz i w ten sposób rozgryźć tą ładowarkę od tej strony.



    pegaz666 napisał:
    3. Nie ma żadnego ukrytego menu, próbowałem rożne kombinacje przycisków przy włączaniu wiec opcja ta odpada jak również ta ze producent zdradzi mi jak to robią. Ładowarka już jest tzw. "discontinued".


    Ukrytych funkcjonalności, w sensie np. komunikatów na ekranie nie widzę. Nawet automatycznie wyekstrahowałem napisy z kodu ale nic podejrzanego nie widzę:
    Spoiler:
    " A AV
    LPLILFCHG DSC STO FAS BAL V1.5 OFFON ONV C NiCd NiMH AUT R-RPCD>>C>DC>P
    A Pb-
    C:A D:A D: mA
    SYSTEM SET->LI BATT METER BATT MEMORYD.PeaK mV/CELLCURRENT CUT: MAIN Capacity Cut-OffmAhKey Beep Buzzer Input Power Low Cut-Off Ext.Temp Int.Temp VERSION LOAD FACTORY SET ENTERCHARGE CURRENT TVC=YOUR RISK! BATT CAPACITY CHG CAPACITY LIMITED R: SER S: CANCEL
    CONFIRM
    IN Power VoltageEnd Voltage Temp Cut-Off Time: COMPLETEDLiPo/LiIo/LiFe CHK Time ENTER CHARGE LOAD...... PROGRAM SELECT BATT NiCD BATT NiMH BATT Pb BATTNiCd NiMH CYCLE RE-PEAK CHARGE DISCHARGE SensitivityAuto CHARGEPb CHARGE Pb DISCHARGE LiPo LiIo LiFe Pb Rest Time CHG>DCHG CHG>DCHG DCHG>CHG SAFETY TIMER ON OFFMin
    BATT MEMORYBATT TYPE BATT VOLTS DSCH CURRENT DSCH VOLTAGE V/CELLTEMPERATURE CUT-OFF SAVE PROGRAM SAVE................DELTA PEAK SENSEmV/CPEAK DELAY TRICKLE mAother error SYS:CHG:BATTERY CHECK WAIT...
    END:CUTOFF-VOL
    STORAGE FINISHED
    END:FINISH
    CYCLES FINISH
    RE-PEAT FINISH
    ENTER SET->
    TIME: BALANCE STORAGE FAST CHG CHARGE DISCHARGE SERVO TESTERPULSE WIDTH: MOTOR RPM TESTERPULSE PERIOD: PULSE STEP: PULSE WIDTH: RPM: SERIAL NUMBER Over charge Capacity Limit REVERSE POLARITY Control Fail Break Down! Input Fail CONNECTION BREAK Cell error Voltage invalid BALANCE CONNECTER ERROR No battery Cell Number IncorrectConnection errorCheck Main port Battery was fullNot need charge High voltage Int.temp too hi Ext.temp too hi DC in too low DC in too hi Over TIME LIMIT
    A 'A
    A 0B 1
    A 3A 4A 5A 6B 7
    A 9A :B ;
    A =B X
    A ZA
    A bB
    p!z y>
    p!z yc
    "LiPoLiIoLiFe3.73.63.3 DYNAMITE DYN4300 0123456789?
    fFfUfdf
    ,./13468:<>@BDFHJLOQSVX
    behkmpsvy
    T?d?p%
    SILICON LABORATORIES8
    C8051F3xx Development Board
    "SYSTEM UPDATE PLEASE WAIT.....LOAD FACTORY SET COMPLETEDE111466x80
    SILICON LABORATORIES8
    C8051F3xx Development Board
    1d@E1p
    /d E/p
    uIuJuG "uD
    uEuF uC "
    uIuJuG "uD
    uEuF uC "


    Podejrzewam że kalibracja i zapis tego obszaru o którym pisał kolega excray jest wykonywana jednorazowo na stanowisku testowym u producenta, gdzie zadawane są jakieś wzorcowe wartości z których liczone są te współczynniki już indywidualnie dla każdej płytki z zależności od rozrzutu elementów mających wpływ na pomiary. Dlatego samodzielnie tego ładowarka nie wykona.

    Tak że jedyny punkt zaczepienia w tej chwili to wgranie zmienionych na próbę współczynników i wywnioskowanie co jest od czego. Też może przydałby się schemat, lub choćby ogląd i wywnioskowanie jakie punkty układu idą na przetwornik ADC.
  • Poziom 9  
    @rb401 - naprawde jestes prawdziwym magikiem. Pelen podziw i podziekowania ze zechciales pobawic sie tymi danymi dla mnie. To znaczenie zawezilo obszar poszukiwan. Martwi mnie tylko ilosc tych cyfr po przecinku i dokladnosc z jaka te liczby trzeba wprowadzic ale to i tak bardzo duzo w powrowaniu do tego co bylo na poczatku. Jeszcze raz wielkie dzieki kolego!
  • Poziom 35  
    pegaz666 napisał:
    To znaczenie zawezilo obszar poszukiwan.

    Kolega excray zawęził kierunek a ja tylko przypadkiem coś zauważyłem.

    pegaz666 napisał:
    Martwi mnie tylko ilosc tych cyfr po przecinku i dokladnosc z jaka te liczby trzeba wprowadzic


    Tym się nie przejmuj.
    Tak w ogóle to format float ma teoretycznie 6 - 9 cyfr znaczących (patrząc na liczbę w postaci dziesiętnej) tak że cyfry ponad 6 cyfr znaczących można traktować jako śmieci.
    Ten program którym je tu wyżej pokazałem akurat wyświetla tyle cyfr niepotrzebnie.
    Druga sprawa to realna potrzeba w Twojej ładowarce, czyli rozdzielczość ADC i dokładność wyświetlania na LCD, które i tak wnoszą swoją mniejszą dokładność niż przechowywane w pamięci liczby.
    Tak patrząc to myślę że jeśli będziesz wpisywał Twoje współczynniki, używając trzech-czterech miejsc po przecinku będzie wystarczająco a może nawet za dobrze. Bo i tak robisz to metoda prób i błędów i za kontrolę masz to co wyświetli Ci ładowarka.

    Do konwersji prosto z wartości heksadecymalnych jakie widać w Twoich plikach na wartość dziesiętną i w odwrotną stronę możesz użyć przykładowo kalkulatora na tej stronce:
    https://gregstoll.com/~gregstoll/floattohex/
    który pokazuje w zapisach liczb dziesiętnych tyle cyfr ile ma naprawdę sens.