Quantcast
Channel: Power management forum - Recent Threads
Viewing all 35901 articles
Browse latest View live

BQ27441-G1: BQ27441-G1 I am not setting the Design Capacity,Design Energy,Taper Voltage and Taper Rate

$
0
0

Part Number:BQ27441-G1

Hello All,

I am working on battery based project and to measure battery parameters we are using Fuel gauge IC BQ27441-G1. I can successfully read all default parameters set in BQ27441-G1 by implementing the source code.

Now in our hardware board, we have connected 4600mAh battery so I need to change design capacity register in BQ27441-G1. So for that I have write this value into design capacity register. Here I am facing the problem. Writing register is executing successfully but after that when I am going to read the same register, then I am getting always default value only.

I have followed the same steps available in this link: www.ti.com/.../sluuap7.pdf. I have configured I2C Clock frequency to 400KHz. After every write cycle, i have given 3 second delay for updation.

Can you please tell me the procedure how to write value in any register?

Any help in this case is highly appreciated.


BQ27426EVM-738: About BQ27426EVM

$
0
0

Part Number:BQ27426EVM-738


Dear, All

The customer uses BQ27421EVM-G1A to acquire data.
In another configuration,
- BQ21040EVM-777
- EV2300
- Electronic load
- Battery used by customers
Also, they use bqStudio.
There was a message that an error might occur in log data while data acquisition is being performed.
I did not own BQ27421EVM so I ran it on BQ27426EVM-738 instead.
As a result, the following error occasionally occurred during incoming data.

TimetestLogCaptiontestError CodetestError String
2017-01-17 18: 29: 12 testRemCaptest 772 test No acknowledge from device.
2017-01-17 18: 29: 20 testInt Temptest 772 test No acknowledge from device.
2017-01-17 18: 29: 26 testTrue StateOfChgtest772testNo acknowledge from device.
2017-01-17 18: 29: 46 testRemCaptest 772 test No acknowledge from device.
2017-01-17 18: 29: 54 testInt Temptest 772 test No acknowledge from device.
2017-01-17 18: 31: 01 testCtrlStatustest772testNo acknowledge from device.
2017-01-17 18: 31: 01 testTemperaturetest772testNo acknowledge from device.

This occurs both during charging and discharging.
When it occurs, it seems that we can not temporarily access the EVM from the PC.
I would like to know the cause and measures to be taken.

Thanks, Masami M.

BQ27520-G4: Learning cycle for BQ27520-G4

$
0
0

Part Number:BQ27520-G4

Hi,

I am using bq27520g4.

Should i perform the learning cycle for the above module.

Thanks,

Likhitha

BQ27441-G1: BQ27441-G1: BQ27441-G1 I am not setting the Design Capacity,Design Energy,Taper Voltage and Taper Rate

$
0
0

Part Number:BQ27441-G1

Hello All,

I am working on battery based project and to measure battery parameters we are using Fuel gauge IC BQ27441-G1. I can successfully read all default parameters set in BQ27441-G1 by implementing the source code.

Now in our hardware board, we have connected 4600mAh battery so I need to change design capacity register in BQ27441-G1. So for that I have write this value into design capacity register. Here I am facing the problem. Writing register is executing successfully but after that when I am going to read the same register, then I am getting always default value only.

I have followed the same steps available in this link: www.ti.com/.../sluuap7.pdf. I have configured I2C Clock frequency to 400KHz. After every write cycle, i have given 3 second delay for updation.

Can you please tell me the procedure how to write value in any register?

Any help in this case is highly appreciated.

I attached my code below.

//============================================== main.c ==================================================

#include "stm32f1xx_hal_conf.h"
#include "stm32f1xx_hal.h"
#include "Fualguage.h"
#include "board.h"


uint8_t init = 0;
extern I2C_HandleTypeDef Fualguage_I2C2descriptor;
uint8_t init = 0,state_of_charge = 0;
uint16_t design_cap = 0;
uint8_t rx1[2] = {0x00};

main()
{

if(init == 0)
{
Fualguage_initialization();
init = 1;
}

while(1)
{
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x3C, rx1, 2);
design_cap = rx1[1] << 8 | rx1[0];
printf("design capacity :%d\r\n",design_cap);

state_of_charge = i2cReadByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x1C);
printf("state of charge :%d\r\n",state_of_charge);

HAL_Delay(300000);
}

}

//=========================================== Fualguage.h ====================================================

#ifndef __FUALGUAGE_H
#define __FUALGUAGE_H

#include "board.h"

#define BQ27741_I2C_ADDRESS 0xAA
#define TIMEOUT 10000
#define BQ72441_I2C_TIMEOUT 2000

/* I2C SPEEDCLOCK define to max value: 400 KHz on STM32F1xx*/
#define FUALGUAGE_I2C_SPEEDCLOCK 100000
#define FUALGUAGE_I2C_DUTYCYCLE I2C_DUTYCYCLE_2

/* This delay is required for I2C read */
#define DELAY for(uint16_t j = 0;j < 500;j++)


void Fualguage_I2C_Config(void);

void Fualguage_initialization(void);

#endif

//=============================================== Fualguage.c =======================================================

#include "Fualguage.h"

#define I2C_TIMEOUT_BUSY_FLAG ((uint32_t)10000) /*!< Timeout 10 s */
#define TRUE 1
#define FALSE 0

/* creat external refrance for Fualguage */
I2C_HandleTypeDef Fualguage_I2C2descriptor;

uint8_t data[2] = {0};
uint16_t result16 = 0;
uint8_t rx[2] = {0x00};

uint8_t old_chksum = 0,tmp_chksum = 0,new_chksum = 0,chksum = 0;
uint16_t old_dc = 0,old_de = 0,old_tv = 0,old_tr = 0;

void Fualguage_I2C_Config(void)
{
Fualguage_I2C2descriptor.Instance = FUALGUAGE_BQ27441_I2C;
Fualguage_I2C2descriptor.Init.ClockSpeed = FUALGUAGE_I2C_SPEEDCLOCK;
Fualguage_I2C2descriptor.Init.DutyCycle = FUALGUAGE_I2C_DUTYCYCLE;
Fualguage_I2C2descriptor.Init.OwnAddress1 = BQ27741_I2C_ADDRESS;
Fualguage_I2C2descriptor.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
Fualguage_I2C2descriptor.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
Fualguage_I2C2descriptor.Init.OwnAddress2 = 0xFF;
Fualguage_I2C2descriptor.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
Fualguage_I2C2descriptor.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;

if(HAL_I2C_Init(&Fualguage_I2C2descriptor) != HAL_OK)
{
#ifdef _ENABLE_PRINTF_
printf("\n\r FUALGUAGE init error \n\r");
#endif
}

}

void Fualguage_initialization(void)
{
/* in this initialization i configure
Design Capacity = 4600mAh, Design Energy = 17020(Design Capacity * 3.7),
Taper Current = 115mA,
Terminal Voltage = 3200mV, Taper Rate = 400(Design Capacity / (0.1 * Taper Current))
HAL_Delay(300000) this function gives delay of 3 seconds */

//1
data[0] = 0x00;
data[1] = 0x80;
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,(uint8_t) 0, data, 2);
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,(uint8_t) 0, data, 2);
HAL_Delay(300000);

//2
data[0] = 0x13;
data[1] = 0x00;
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,(uint8_t) 0, data, 2);
HAL_Delay(300000);

//3
do
{
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x06, rx, 2);
result16 = (rx[1] << 8) | rx[0];
}while(!(result16 & 0x0010));

//4
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x61,0x00);
HAL_Delay(300000);

//5
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x3E,0x52);
HAL_Delay(300000);

//6
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x3F,0x00);
HAL_Delay(300000);


do
{
//7
old_chksum = i2cReadByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x60);

//8
tmp_chksum = 0xFF - old_chksum;

//9
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x4A, rx, 2);
old_dc = (rx[1] << 8) | rx[0];

//10
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x4C, rx, 2);
old_de = (rx[1] << 8) | rx[0];

//11
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x50, rx, 2);
old_tv = (rx[1] << 8) | rx[0];

//12
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x5B, rx, 2);
old_tr = (rx[1] << 8) | rx[0];

//13
tmp_chksum = tmp_chksum - old_dc - old_de - old_tv - old_tr;

//14
data[1] = 0x11; //MSB of DC
data[0] = 0xF8; //LSB 0f DC
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x4A, data, 2);
HAL_Delay(300000);

//15
data[1] = 0x42; //MSB of DE
data[0] = 0x7C; //LSB 0f DE
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x4C, data, 2);
HAL_Delay(300000);

//16
data[1] = 0x0C; //MSB of TV
data[0] = 0x80; //LSB 0f TV
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x50, data, 2);
HAL_Delay(300000);

//17
data[1] = 0x01; //MSB of TR
data[0] = 0x90; //LSB 0f TR
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x5B, data, 2);
HAL_Delay(300000);

//18
tmp_chksum = tmp_chksum + (uint16_t)4600 + (uint16_t)17020 + (uint16_t)3200 + (uint16_t)400;

//19
new_chksum = 0xFF - tmp_chksum;

//20
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x60,new_chksum);
HAL_Delay(300000);

//21
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x3E,0x52);
HAL_Delay(300000);

//22
i2cWriteByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x3F,0x00);
HAL_Delay(300000);

//23
chksum = i2cReadByte(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x60);

printf("chksum:%d new_chksum:%d\n\r",chksum,new_chksum);

}while(chksum != new_chksum);

//24
data[0] = 0x42;
data[1] = 0x00;
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x00, data, 2);
HAL_Delay(300000);

//25
do
{
i2cReadBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x06, rx, 2);
result16 = (rx[1] << 8) | rx[0];
}while(result16 & 0x0010);

//26
data[0] = 0x20;
data[1] = 0x00;
i2cWriteBytes(&Fualguage_I2C2descriptor,BQ27741_I2C_ADDRESS,0x00, data, 2);
HAL_Delay(300000);

}

//================================================= Below is the Screenshot of output ===================================================

BQ40Z60: Windows battery management - adapter presence

$
0
0

Part Number:BQ40Z60

Hi all,

we are using a bq40z60 based single chip battery management solution in an embedded system. The 40z60 is connected to the SM bus of an embedded x86 motherboard (SMARC module) which runs Win8.1 Embedded Industrial OS. The Windows with the original drivers more or less handles the 40z60, reads the standard SBS registers, shows the battery icon on the system tray, with the RSoC value.

The problem is, that neither the presence of the AC adaptor nor the actual charging/finished charging is indicated by the OS, only the increasing RsoC shows that charging is in progress. I assume this is caused by the absence of the Smart Battery Charger subsystem from the point of view of the OS. The 40z60 with SM bus address 0x0b acts as a Smart Battery Data source regarding the SBS specification, and the OS tries to poll (I sniffed the SMbus) the Smart Battery Selector with address 0x0a but of course it does not exist. Maybe the OS gets the information related to AC adaptor presence and the charging state from the Smart Battery Charger (SM bus address 0x09) but it is also non-existent.

So is there any solution or recommendation to overcome this problem?

Thanks in advance,

Norbert

Parameters accuracy requirement in GPC tool calculation

$
0
0

Hi, All

In GPC tool calculation, there are some files required. I use the EVM (bq27541) to log data. There are some data to log, But there is no clear requirement in GPC implementation guide.

1) For room temperature

What is the range of room temperature? 25degC, 20 degC, or others? Another the room temperature may varies as time goes, will it affect the reslult(ID selection, GG)?

2) Voltage measurement

The fresh cell is connected to EVM (bq27541) with wire. There is some impedance of the wire. So when discharge the cell, there may be 5 - 10mV total lost. Will that affect the ID selection? And same to ra table?

3) System typical high discharge rate

May i use the 0.2C discharge rate as the system typical high rate(traditional optimization cycle)?

Best regards

J.C Chen

How can I reset Bq34z100g1 to factory settings(defaults)?

$
0
0

I should reset bq34z100g1 to factory settings. How can I reset Bq34z100g1 to factory settings(defaults)? 

BQ34Z100-G1: CHEM-ID "do not use"?

$
0
0

Part Number:BQ34Z100-G1

Hello,

GPC report shows my chem-ID is 0239,but the bqstudio show "do not use ID",what that mean? How should I do?

THANKS!


BQ40Z60: BQ40Z60 Not Charging

$
0
0

Part Number:BQ40Z60

I am using BQ40Z60 IC in 3S1P Combination in my circuit. I have applied Adapter Voltage of 15V for Charging. But the Battery is not charging and also when I measure the Adapter Voltage Vac, its showing as 18.5V instead of 15V in Multimeter and in Battery Management Software. I am doubtful where to suspect whether in ACFET or HIDRV and LODRV.

ACFET gate pin showing 28V on Adapter Power and 0V without Adapter

HIDRV gate pin showing 11.8V on BOTH Adapter Power and with standalone Battery power (11.8V is the Battery Voltage at that time)

LODRV gate pin showing 0.4V on Adapter Power and 0.004V on Battery power respectively.

Kindly help on this issue with a solution

BQ27531-G1: Land pattern document "including dimensions" of BQ27531YZFR-G1

$
0
0

Part Number:BQ27531-G1

Hi team,

 

Our customer requested land pattern document including dimensions of BQ27531YZFR-G1.

We checked the latest datasheet, but no land pattern including dimensions in it.

Then, we opened PCB file (BQ27531-G1_YZF_15.bxl), but it seems no land pattern in it too. We changed "Quick Views" and see everything, such as "1_default".

We consulted with TI Japan CDC and they mentioned land pattern should be included in the .bxl file and please use E2E if any questions.

Thanks,

Matt Watanabe

BQ34Z100-G1: Voltage Supporting

$
0
0

Part Number:BQ34Z100-G1

Hi Sir,

BQ34Z100-G1 only support 3V~65V right? What if the voltage is 67.2V? Is the device still able to support? Is there any other IC from TI is more suitable to support 67.2V with impedance track?

Thanks.

BQ35100: How to add my primary battery chemical id into bqStudio?

$
0
0

Part Number:BQ35100

Hello,

we are planning to use the bq35100 for our primary battery pack. For a first impression, I've downloaded the bqStudio to see if it has our battery in the database. The battery is not there so I would like to see how add the battery type we are using into your database, for a proper chemical characterization.

Thank you in advance for your support!

Best Regards

Teodor Vasile

BQ40Z60: ACFET remains on after AC Adapter is removed

$
0
0

Part Number:BQ40Z60

When removing the AC adapter supply, the ACFET is still reading '1'. Is there a setting I could try to fix this?

BQ34Z100-G1: Understanding power calculation in device

$
0
0

Part Number:BQ34Z100-G1

HI Support team

My customer is asking the following question Can you help answer this :

The z100 data sheet includes the following descriptions of AvailableEnergy and AveragePower:

 

7.3.2.5 AvailableEnergy(): 0x24/0x25

This read-only command pair returns an unsigned integer value of the predicted charge or energy remaining in

the battery. The value is reported in units of mWh.

7.3.2.6 AveragePower(): 0x26/0x27

This read-word command pair returns an unsigned integer value of the average power of the current discharge.

A value of 0 indicates that the battery is not being discharged. The value is reported in units of mW.

 

When I log z100 data, Available Energy is not simply the reported Remaining Capacity in mAh times the reported voltage. It does not appear to be referenced to a single cell either. It is something different. For example this is z100 data taken from a 7S battery. One data set during Charge and one during Discharge::

 

Rem Cap (mAh)             Voltage (mV)    Current (mA)      AvailableEnergy (mWh)            (Voltage/7)*Rem Cap    AveragePower (mW)

8646                             29365               829                   31786                                       36269 (Not 31786)         3478                                   

2980                             24934               -3407                9853                                         10615 (Not 9853)           -12136                          

 

I want to get an understanding of how AvailableEnergy is calculated so I can use it properly in a system.

Many thanks

Jeff

BQ27520-G4: Ra Table doesn't be updated

$
0
0

Part Number:BQ27520-G4

Hi Team,

My customer designed tablet PC with bq27520-G4 and has used it for long term (battery became depleted previously), however Ra Tables doesn't be updated from default values.
It is the exact same values as default.
So, the system become shutdown even if SOC (State Of Charge) is still more than 70%..

May I have your advice about the issue?

I can send customer's programming files for bq27520-G4, please contact me if you need.
yaita-k@clv.macnica.co.jp

Your support would be appreciated.

Best Regards,
Yaita / Japan disty


BQ34Z100-G1: Gauging Parameter Calculator using BQ studio log

$
0
0

Part Number:BQ34Z100-G1

Hi,

Can I use BQ studio (v1.3.52) ' Start Log' option to generate the zip file to be used for Gauging Parameter Calculator. Can anyone list down the steps to be followed for a 48V Lead Acid battery pack.

 Are the following steps valid for a lead acid battery pack also.I got the following steps from sluc138dj 'chemselect_cont.pdf' document.

1. Assemble a battery pack from a cell stack and EVM with a bq20zXX or

bq275xx battery gauging device. Thermistor must touch the battery cells, use

thermistor connections with flexible wires to do so!

2. Connect EV 2300 to the battery pack using SMB (or I2C, or HDQ connection

depending on the communication device uses )

3. Start EV Software

4. Start EV Software logging. Alternatively use external tester such as Arbin to log

time, voltage, current and temperature. Voltage must be measured with better than

1mV error.

5. Charge cell to the manufacturer specified voltage,

until taper current reaches C/100

6. Wait 2 hrs

7. Discharge at C/10 rate to manufacturer specified termination voltage

(use 3V if unknown)

8. Wait 5 hrs

9. Use chemselect_cont.mcd worksheet to find chemical ID (MathCad 11 or higher is

needed). After opening worksheet in mathcad, change column assignments for

t,V,I,T to match actual data-file column numbers.

BQ27520-G4: Wait_ID flag

$
0
0

Part Number:BQ27520-G4

Hello, we are using a BQ27520-G4.  

When a battery is inserted and charging, reading back the flags we see the following are set OCV_GOOD, BAT_DET, CHG, and WAIT_ID.  

However, after a few minutes WAIT_ID is stays true. 

Does anyone know how WAIT_ID is set or how it works?  

The ref manual does not have much information on WAIT_ID.

Thanks.

BQ40Z60: bq40z60 - Regarding hardware based protections

$
0
0

Part Number:BQ40Z60

Section 2.8 of the Technical Reference Manual says that bq40z60 provides 3 hardware based protections - Overload in Discharge, Short Circuit in Charge, Short Circuit in Discharge.

My queries are as follows.

1) Why are these called HARDWARE based protections ?

2) What is the difference between hardware based and non-hardware based protections ?

3) What is the difference between Overload in Discharge (Section 2.8.1) and Overcurrent in Discharge (Section 2.6) ?

BQ27421-G1A: load golden image in driver

$
0
0

Part Number:BQ27421-G1

We used TI BQ27421-G1A gauge in our product.

Currently, the golden image is only loaded into gauge when the battery had been disconnected.

1) After the plastic case of the product is put on the PCB Assembly, if the golden image is updated in F/W image,

it is necessary for the customer to disconnect the battery inside.

In order to reload the golden image into the gauge.

1-1) But this behavior is not REASONABLE and user-friendly.

2) If we reload the golden image into the gauge every time when gauge driver was initialized during the bot-up of system,

it will over-write the parameters in Data Memory of gauge every time when the system booted up.

2-1)  Are there any side-effect if we do so?

Thank you.

BQ28Z610: bq28z610 temperature calculation

$
0
0

Part Number:BQ28Z610

Dear Sir,

I am using  an EV2300 to detect bq28z610 and get 0x06 temperature which value is  0x0BBD . the EV2300 conversion temperature is  27.3 degC.

May I know how to calculate it ? Thanks.

 

Viewing all 35901 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>