This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

s110 v8.00 ,ADC for Detection of lithium battery,who can offer a example?

I use the s110 v8.00 and nrf51822QFAA,the ADC for Detection of lithium battery, who can offer a example?

Parents
  • Hi mike

    There is a blog post here with an example targeted at measuring lithium battery voltage. It is made for SDK 6.0.0. I attach another example for SDK 8.1.0 that you can perhaps use, since it is targeted for nRF51-DK.

    rtc0_triggering_ADC_sample_from_two_GPIO_pins.zip

  • @awneil Thanks for pointing this out. Personally I have not taken on the challenge of getting sensible battery level reading from reading the ADC output. I do realize it is a challenge to get a battery level reading and it is very dependent to the battery temperature.

    A method to get more valid battery reading is to use a dedicated external chip as is pointed out in the link that you refer to. As I understand it there are three main factors that affect the voltage to charge relationship, a) Temperature b) discharge rate c) aging.

    Discharge rate: t seems that it has most effect when discharging is fast. There is a lot of difference between 0.1C and 0.7C apparently. Anyway, most BLE devices are designed to have the battery to last for weeks, months and even years, so generally the discharge rate is very low and I would expect it to have minimum impact on the voltage to charge relationship.

    Aging: I would expect that battery characteristic changes due to aging are mostly because of large number of charge cycles. The age of the battery would also have something to say, but I would expect that generally to be a smaller factor than number of charge cycles, correct me if I am wrong. As mentioned before, excess number of charging cycles is generally not an issue in BLE devices as they are generally designed to last for a long time on a single charge.

    Temperature: Temperature has apparently a major impact on voltage to charge relationship of the battery. The nRF51 has an internal temperature sensor that could be used in this case to get a more sensible battery level on a Lithium battery. My suggestions would be run an application on the nRF51 that consumes constant current and perform periodic ADC readings for different temperatures to construct a table similar to table 3 in your link. Then you could implement one battery_level_in_percent function for each column in the table, each function to describe the discharge curve in a certain temperature range. The battery_level_in_percent function can be found in the app_util.h file in nRF51 SDK.

    I would be happy to get any feedback from you regarding my suggestion

Reply
  • @awneil Thanks for pointing this out. Personally I have not taken on the challenge of getting sensible battery level reading from reading the ADC output. I do realize it is a challenge to get a battery level reading and it is very dependent to the battery temperature.

    A method to get more valid battery reading is to use a dedicated external chip as is pointed out in the link that you refer to. As I understand it there are three main factors that affect the voltage to charge relationship, a) Temperature b) discharge rate c) aging.

    Discharge rate: t seems that it has most effect when discharging is fast. There is a lot of difference between 0.1C and 0.7C apparently. Anyway, most BLE devices are designed to have the battery to last for weeks, months and even years, so generally the discharge rate is very low and I would expect it to have minimum impact on the voltage to charge relationship.

    Aging: I would expect that battery characteristic changes due to aging are mostly because of large number of charge cycles. The age of the battery would also have something to say, but I would expect that generally to be a smaller factor than number of charge cycles, correct me if I am wrong. As mentioned before, excess number of charging cycles is generally not an issue in BLE devices as they are generally designed to last for a long time on a single charge.

    Temperature: Temperature has apparently a major impact on voltage to charge relationship of the battery. The nRF51 has an internal temperature sensor that could be used in this case to get a more sensible battery level on a Lithium battery. My suggestions would be run an application on the nRF51 that consumes constant current and perform periodic ADC readings for different temperatures to construct a table similar to table 3 in your link. Then you could implement one battery_level_in_percent function for each column in the table, each function to describe the discharge curve in a certain temperature range. The battery_level_in_percent function can be found in the app_util.h file in nRF51 SDK.

    I would be happy to get any feedback from you regarding my suggestion

Children
No Data
Related