Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Mar 2010 08:36:03 -0400
From:      "Alexandre \"Sunny\" Kovalenko" <gaijin.k@gmail.com>
To:        Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: Funny battery values (nx6325)
Message-ID:  <1268829363.6171.13.camel@RabbitsDen>
In-Reply-To: <20100317074549.GC52442@uriah.heep.sax.de>
References:  <20100315062028.GC52442@uriah.heep.sax.de> <20100317070428.GA2924@server.vk2pj.dyndns.org> <20100317074549.GC52442@uriah.heep.sax.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2010-03-17 at 08:45 +0100, Joerg Wunsch wrote:
> As Peter Jeremy wrote:
> 
> > >Design capacity:        279 mAh
> > >Last full capacity:     279 mAh
> 
> > Is this consistent or does it vary from boot to boot or if you
> > disconnect and reconnect the battery?
> 
> Currently, my wife is on a business trip with that machine.
> Hopefully, I'll also get a statement about how long it lasts on
> battery once she is back ;-), and I'll re-check those values then.
> 
> > >The battery is declared as 55 Wh, which would correspond to 5.1 Ah
> > >(probably 3 x 2 x 18650 cells).
> > 
> > But is also over 3 years old.  Almost everything you do to LiION
> > batteries makes their capacity drop.
> 
> That's right, but it wouldn't be supposed to affect the "Design
> capacity", would it? ;)
> 
> Can anybody tell where these values actually come from?  I could
> perhaps even build a small microcontroller gadget, in order to query
> the battery for its values offline (using I²C aka SMbus) in order to
> see where the mistake might be.
> 

You can dump your ASL (see Handbook for instructions) and search for
something like:

Method (_BIF, 0, NotSerialized)
{
  If (\_SB.PCI0.SBRG.ECD.BTIN)
  {
    Noop
    Return (BIFF)
  }
  Else
  {
    Acquire (ECMX, 0xFFFF)
    // *** This is power unit (0 - mWh/mW, 1 - mAh/mA)
    Store (\_SB.PCI0.SBRG.ECD.BIF0 (), Index (BIFF, 0x00))
    // *** This is the design capacity in units above
    Store (\_SB.PCI0.SBRG.ECD.BIF2 (), Index (BIFF, 0x01))
    Store (\_SB.PCI0.SBRG.ECD.BIF2 (), Index (BIFF, 0x02))
    Store (\_SB.PCI0.SBRG.ECD.BIF3 (), Index (BIFF, 0x03))
    Store (\_SB.PCI0.SBRG.ECD.BIF4 (), Index (BIFF, 0x04))
    Store (\_SB.PCI0.SBRG.ECD.BIF5 (), Index (BIFF, 0x05))
    Store (\_SB.PCI0.SBRG.ECD.BIF6 (), Index (BIFF, 0x06))
    Store (\_SB.PCI0.SBRG.ECD.BIF7 (), Index (BIFF, 0x07))
    Store (\_SB.PCI0.SBRG.ECD.BIF8 (), Index (BIFF, 0x08))
    Release (ECMX)
    Return (BIFF)
  }
}

and try to track down where the actual values came from. Chapter 10 of
the ACPI specification (http://www.acpi.info/spec.htm) should provide
you with more information on the subject.

The contents of the method above came from some ASL I had laying around
-- yours will likely be different. The important part is the returned
package that contains values in the specific sequence.

HTH,
-- 
Alexandre Kovalenko (Олександр Коваленко)





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1268829363.6171.13.camel>