Author Topic: BQ25703A Would not accept charge commands!  (Read 937 times)

0 Members and 1 Guest are viewing this topic.

Offline ali_asadzadehTopic starter

  • Super Contributor
  • ***
  • Posts: 1931
  • Country: ca
BQ25703A Would not accept charge commands!
« on: May 30, 2018, 11:56:04 am »
Hi,
I have designed a sample board to play with the BQ25703A, the problem is that I can read and write every register, but when I try to write these commands,
ChargeCurrent,MinSystemVoltage,

 BQ25703A  seems to reset and do not accept the commands.

Also when the battery pack is disconnected the ChargeOption0 command would take effect, but when I connect the battery pack it would not get the values.

Here is some parts of my code

Code: [Select]
	int status;
//ChargeOption3 Reset All Registers to default
BQ25703WriteReg(0x34,0x6000);


//ChargeOption0
BQ25703WriteReg(0,0x060E);
status=BQ25703ReadReg(0x0);
//ChargeOption1
BQ25703WriteReg(0x30,0x9211);
status=BQ25703ReadReg(0x30);
//ChargeOption2
BQ25703WriteReg(0x32,0x02BF);
status=BQ25703ReadReg(0x32);
//ChargeOption3
BQ25703WriteReg(0x34,0x0000);
status=BQ25703ReadReg(0x34);
//ProchotOption0
BQ25703WriteReg(0x36,0x4A54);
status=BQ25703ReadReg(0x36);
//ProchotOption1
BQ25703WriteReg(0x38,0x1000);
status=BQ25703ReadReg(0x38);
//ADCOption
BQ25703WriteReg(0x3A,0xE0FF);
status=BQ25703ReadReg(0x3A);
//MaxChargeVoltage
BQ25703WriteReg(0x04,0x41A0);
status=BQ25703ReadReg(0x04);
//ChargeCurrent @1A
BQ25703WriteReg(0x02,0x0400);
status=BQ25703ReadReg(0x02);
//MinSystemVoltage @14.336V
BQ25703WriteReg(0x0C,0x3800);
status=BQ25703ReadReg(0x0C);
//IIN_HOST @1A
BQ25703WriteReg(0x0E,0x1400);
status=BQ25703ReadReg(0x0E);
//InputVoltage @8.192
BQ25703WriteReg(0x0A,0x2000);
status=BQ25703ReadReg(0x0A);
//OTGVoltage @12.67V
BQ25703WriteReg(0x06,0x2000);
status=BQ25703ReadReg(0x06);
//OTGCurrent @1.6A
BQ25703WriteReg(0x08,0x2000);
status=BQ25703ReadReg(0x08);

read and write functons
Code: [Select]
void BQ25703WriteReg(int add,int data)
{
static HAL_StatusTypeDef mySTs;
unsigned char write_message[3];
write_message[0]=add;
write_message[1]=data;
write_message[2]=data>>8;
mySTs=HAL_I2C_Master_Transmit(&hi2c1,BQ25703_ADD,write_message,3,1000);


}

int BQ25703ReadReg(int add)
{
int res=0;

unsigned char write_message[1];

write_message[0]=add;

unsigned char read_data[2]={0};
HAL_I2C_Master_Transmit(&hi2c1,BQ25703_ADD,write_message,1,1000);

//start to read RTC Data
HAL_I2C_Master_Receive(&hi2c1,BQ25703_ADD,read_data,2,1000);

res=(read_data[1]<<8) | read_data[0];
return res;
}


Do you have any Idea what's wrong?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf