QCC3005充电问题
3005充电冲到4V左右 LED灯就显示满电状态是什么原因?求大神指教!!!!!!(已开启外部充电)顶一下 求大佬赐教!!!!!!!!!!!!! 附上外部充电代码
/*
Copyright (c) 2017 Qualcomm Technologies International, Ltd.
*/
/*!
@file
@ingroup sink_app
@brief
Module responsible for interfacing with SMB1352 battery charger
************************************************************************/
#ifndef SINK_EXT_CHARGER_H
#define SINK_EXT_CHARGER_H
#define EXT_CHG_NUM_REGS (21)
#define EXT_CHG_REG_STS_FLOAT_VOLTAGE (0x38)
#define EXT_CHG_MASK_STS_FLOAT_VOLTAGE (0x3F)
#define EXT_CHG_FLOAT_BASE_MILLIVOLTS (3500)
#define EXT_CHG_FLOAT_STEP_MILLIVOLTS (20)
#ifdef ENABLE_EXT_CHARGER
void sinkExtChargerInit(void);
uint16 sinkExtChargerReadFloatVoltage(void);
#else /* not def ENABLE_EXT_CHARGER */
#define sinkExtChargerInit() ((void) 0)
#define sinkExtChargerReadFloatVoltage() ((uint16) 0)
#endif /* def ENABLE_EXT_CHARGER */
#endif /* def SINK_EXT_CHARGER_H */
/*
Copyright (c) 2017 Qualcomm Technologies International, Ltd.
*/
/*!
@file
@ingroup sink_app
@brief
Module responsible for interfacing with SMB1352 battery charger
************************************************************************/
#include <i2c.h>
#include "sink_configmanager.h"
#include "sink_debug.h"
#ifdef ENABLE_EXT_CHARGER
#include "sink_ext_charger.h"
#include "sink_ext_charger_config_def.h"
#ifdef DEBUG_EXT_CHG
#define EXT_CHG_DEBUG(x) DEBUG(x)
#else
#define EXT_CHG_DEBUG(x)
#endif
#define EXT_CHG_REG_CMD_I2C (0x30)
#define EXT_CHG_CMD_ENABLE_VOLATILE_WRITES (0x40)
static uint8 ext_chg_i2c_address;
/****************************************************************************
NAME
reg_read
DESCRIPTION
Read from a register on the external charger
RETURNS
TRUE iff the read was successful
*/
static bool reg_read(uint8 reg, uint8 *data)
{
uint16 ack = I2cTransfer(ext_chg_i2c_address, ®, 1, data, 1);
/* Expect addr + reg + addr + data (4 bytes) acknowledged */
if (ack == 4)
{
return TRUE;
}
EXT_CHG_DEBUG(("ext_chg: reg read failed; addr=0x%02X len=%u\n", ext_chg_i2c_address, ack));
return FALSE;
}
/****************************************************************************
NAME
reg_write
DESCRIPTION
Write to a register on the external charger
RETURNS
TRUE iff the write was successful
*/
static bool reg_write(uint8 reg, uint8 data)
{
uint8 packet;
uint16 ack;
packet = reg;
packet = data;
ack = I2cTransfer(ext_chg_i2c_address, packet, 2, NULL, 0);
/*Expect addr + reg + data (3 bytes) acknowledged */
if (ack == 3)
{
return TRUE;
}
EXT_CHG_DEBUG(("ext_chg: reg write failed; addr=0x%02X len=%u\n", ext_chg_i2c_address, ack));
return FALSE;
}
/****************************************************************************
NAME
reg_write_enable
DESCRIPTION
Enable / disable writes to the external charger configuration registers,
panic on failure
RETURNS
void
*/
static void reg_write_enable(bool enable)
{
PanicFalse(reg_write(EXT_CHG_REG_CMD_I2C, enable ? EXT_CHG_CMD_ENABLE_VOLATILE_WRITES : 0));
}
/****************************************************************************
NAME
sinkExtChargerInit
DESCRIPTION
Initialise the external charger by writing the stored configuration,
panic on failure
RETURNS
void
*/
void sinkExtChargerInit(void)
{
ext_charger_config_def_t *config;
uint16 size;
size = configManagerGetReadOnlyConfig(EXT_CHARGER_CONFIG_BLK_ID, (const void **) &config);
EXT_CHG_DEBUG(("ext_chg: size=%u\n", size));
if (size)
{
uint16 reg;
ext_chg_i2c_address = config->ext_charger_i2c;
reg_write_enable(TRUE);
for (reg = 0; reg < EXT_CHG_NUM_REGS; ++reg)
{
PanicFalse(reg_write(reg, config->ext_charger_data));
}
}
configManagerReleaseConfig(EXT_CHARGER_CONFIG_BLK_ID);
reg_write_enable(FALSE);
EXT_CHG_DEBUG(("float %u mV\n", sinkExtChargerReadFloatVoltage()));
}
/****************************************************************************
NAME
sinkExtChargerReadFloatVoltage
DESCRIPTION
Read the float voltage from the external charger
RETURNS
Float voltage in millivolts
*/
uint16 sinkExtChargerReadFloatVoltage(void)
{
uint8 data;
PanicFalse(reg_read(EXT_CHG_REG_STS_FLOAT_VOLTAGE, &data));
return EXT_CHG_FLOAT_BASE_MILLIVOLTS + EXT_CHG_FLOAT_STEP_MILLIVOLTS * (data & EXT_CHG_MASK_STS_FLOAT_VOLTAGE);
}
#endif /* def ENABLE_EXT_CHARGER */
楼主,可以交流一下充电问题吗
一起学高通芯片 发表于 2020-12-22 15:04
楼主,可以交流一下充电问题吗
我也是新手
页:
[1]