Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

MSI U100 bty-s11 bq20z70 próba restartu po wymianie ogniw, arduino i i2c

01 Feb 2013 01:01 4080 4
  • Level 11  
    Witam.

    Od kilku dni próbuje ożywić baterię z MSI U100 o oznaczeniu bty-s11 ze sterownikiem na bq20z70.
    Wymieniłem wszystkie 3 ogniwa, na razie na testowe inne. Próbowałem ładować akumulator rozładowywać i ładować ponownie i nadal FullChargeCapacity mam na 65486 mAh. Jak przed wymianą.


    MSI U100 bty-s11 bq20z70 próba restartu po wymianie ogniw, arduino i i2c
    MSI U100 bty-s11 bq20z70 próba restartu po wymianie ogniw, arduino i i2c

    Bateria nie doładowuje się do pełna i podczas rozładowywania system pokazuje że zostało jeszcze 99% a laptop pada, jak ogniwa zbliżają się do 3V.

    Manufacturer Status jest:
    STATE0|

    Pomimo tego chciałem wykonać znalezioną na forum metodę resetowania czyli:

    Quote:
    BQ20Z70 wymaga resetowania tylko jak w ogóle nie działa (włączone bity STATE3 i STATE0 w odpowiedzi na Manufacturer Status). Wtedy mu wysyłasz kolejno:
    0x14 0x04
    0x72 0x36 (unseal)
    0xff 0xff
    0xff 0xff (full access)
    0x73 0x26
    0x12 0x17 (Permanent Fail Clear)
    metodą Write Word do polecenia Manufacturer Access (0x00) na smbus. Adres baterii to 0x16.


    Nie jestem biegły w I2C ale chciałem wykonać tą operację przy pomocy arduino.
    Mam co prawda zrobiony interfejs pod BE2Works pod LPT, ale przy próbie pisania przez SMBus commands dostaje informację, że pracuje w wersji DEMO.
    Tak więc zrobiłem przyłącze do arduino w taki sposób, że A4 (SDA) i A5 (SCL) podciągnąłem przez 2k2 do 5V. GND,SCL i SDA podłączyłem do baterii i próbowałem wykonać taki kod na arduino:

    Code: c
    Log in, to see the code


    Kod się wykonuje, ale kiedy ponownie podłączam baterię pod BE2Works mam ciągle to samo. Czyli parametry z zdjęcia powyżej.

    Bateria się ładuje i rozładowuje. Laptop pracuje na baterii, ale nie prawidłowo jest zgłaszany poziom naładowania.

    Próbowałem również podłączać linie SCL,SDA i GND bezpośrednio (z pominięciem rezystorów podciągających) również bez efektu.

    Posiadam podstawowy warsztat elektroniczny i elementarną wiedzę. Niestety ten problem wykracza poza moje kompetencje.

    Proszę kolegów o pomoc/wskazówki, z góry dziękuje za wszelkie sugestie.
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.

  • Level 32  
    Tu reset nie pomoże. Na pierwszym obrazie masz wyraźnie zbyt dużą różnicę napięć na sekcjach - różnica wynosi ok. 60 mV, co dyskwalifikuje przynajmniej dwie sekcje. Zresztą obraz drugi pokazuje jakie są pojemności sekcji. Wymień ogniwa i zresetuj elektronikę - mozesz kupić be2worksa w wersji Rizal.
  • Level 11  
    Napięcie w cellach rozjechałem podczas testów. Jak uporam się z elektroniką to wrócę do cell i wyrównam wszystko.
    Troszkę podgoniłem tematykę I2C i mam już komunikację między Arduino a baterią.
    W artykule Sterownik baterii laptopowej - jakie najważniejsze elementy w nim znajdziemy? napisali, że bateria ma adres 0x16 u mnie jest to 0x0B (zasugerowałem się tym adresem i przez jakiś czas szukałem problemu w hardware). Wydaje mi się, że w wpisie na forum jest też błąd w kolejności przekazywania słów do 0x00 w opisie bq20z70, ale jak u mnie zadziała to będę mieć pewność.
    Hasło unseal i full access jest w baterii standardowe.
    Niestety mam jeszcze problem z odblokowaniem i zapisywaniem nowych zmiennych w flashu. Wydaje mi się, że coś pokręciłem z typem zmiennych i stąd problem ale późno już i ledwo na oczy widzę :).

    Moją pracę opieram na dokumenatach
    Quick-Start Guide for bq20zxx Family Gas Gauges
    i
    datasheetcie do bq20xXX i
    SBS 1.1-COMPLIANT GAS GAUGE ENABLED WITH IMPEDANCE TRACKTM
    TECHNOLOGY FOR USE WITH THE bq29330


    Nie udaje mi się jeszcze uzyskać informacji z "Operation Status" gdzie z tego co rozumiem będę mógł sledzić flagi SS i FAS, aby sprawdzić poprawność odblokowania...

    Nowy kawałek kodu do Arduino poniżej.
    Zmieniłem bibliotekę z Wire.h na I2C.h gdyż jakiś czas walczyłem z i2c i szukałem przyczyny w kilku miejscach. Biblioteka sprawdza się, więc na razie tak zostanie.

    Code: c
    Log in, to see the code


    Nie chcę kupować BE2Works, bo to żadna radość z haczenia :) Jak Arduino leży i się nudzi ;)

  • Level 32  
    Niestety z obsługa arduino nie pomogę ci. W pracy używam I2C i EV -2300 bo programy których używam wymagają tych interfejsów.
  • Level 1  
    Działa i resetuje metoda jest bardzo poprawna
    Found device at address - 0x0
    BatteryStatus...
    2
    >>11000011
    >>1010010
    SafetyStatus...
    2
    >>1010
    >>1111
    OperationStatus...
    2
    >>1010
    >>1111
    Sending...
    BatteryStatus...
    2
    >>11000100
    >>1010010
    SafetyStatus...
    2
    >>1010
    >>1111
    OperationStatus...
    2
    >>1010
    >>1111

    Status baterii zmienia się na ok at ok