大家好、我是 Babu、
我已经创建了一个控制板、它使用 BQ25887和 MEGA2560为7.4V 2节锂离子电池充电、但在测试电路时、使用 EVAL 板上的确切电路图和元件模型、我将获得255的所有寄存器值。 请告知我出了什么问题?
打印的寄存器值为:
我使用的代码为:
#include
int cd = 7;
int INTRPT = 10;
int STAT =9;
INT PG = 8;
const float SNS =A0;
void setup()
{
PinMode (CD、输出);
引脚模式(CD、输入);
引脚模式(PG、输入);
引脚模式(INTRPT、输入);
引脚模式(STAT、输入);
引脚模式(SNS、输入);
引脚模式(LED_BUILTIN、输出);
Serial.begin(9600);//开始串行输出
Wire.begin();//加入 i2c 总线(主机的可选地址)
}
违反//电池电压限制条件
空 CELLVOLT()
{
Wire.beginTransmission(106);
Wire.write (0x00);
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 d = Wire.read();
serial.println ("电池电压寄存器");
serial.println(d);
}
违反//充电电流限制
void chargecurentlimit()
{
Wire.beginTransmission(106);
Wire.write (0x01);
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 e = Wire.read();
serial.println ("charge 当前寄存器");
serial.println(e);
}
违反//输入电压限制
空 inputvoltagelimitviolation()
{
Wire.beginTransmission(106);
Wire.write (0x02);
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 f = Wire.read();
serial.println ("输入电压限制寄存器");
serial.println(f);
}
违反//输入电流限制
空 inputcurrentviolation()
{
Wire.beginTransmission(106);
Wire.write (0x03);
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 A = Wire.read();
serial.println ("输入电流限制寄存器");
serial.println(A);
}
//充电状态监控
void chargestatusmonitoring()
{
Wire.beginTransmission(106);
Wire.write (11);//0x0B
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 x = Wire.read();
serial.println ("充电状态寄存器");
serial.println(x);
}
//充电状态监控 VBUS 适配器
void chargestatusmonitor()
{
Wire.beginTransmission(106);
Wire.write (12);//0x0C
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 b = Wire.read();
serial.println ("费用类型寄存器");
serial.println(b);
}
//温度条件
void temp()
{
Wire.beginTransmission(106);
Wire.write (13);//0x0D
wire.endTransmission ();
Wire.RequestFrom (106、7);
字节 y = Wire.read();
serial.println ("温度寄存器");
serial.println(y);
}
void loop()
{
serial.println("电荷感应电流:");
float SNS_CURRENT = analogRead (A0);
serial.println (SNS_CURRENT);
延迟(3000);
int pg = digitalRead (PG);
serial.println ("电源指示灯(Good [0]或 Bad [1] source:");
serial.println(pg);
延迟(2000年);
serial.println ("充电状态指示器{0 -充电;1 -完成/禁用)");
int stat = digitalRead (STAT);
serial.println (stat);
延迟(3000);
serial.println ("中断信号、0中断信号或故障");
int itrpt = digitalRead (INTRPT);
serial.println (itrpt);
延迟(1000);
CELLVOLT();
延迟(2000年);
chargecurentlimit();
延迟(2000年);
inputvoltagelimitviolation();
延迟(2000年);
inputcurrentviolation();
延迟(2000年);
chargestatusmonitoring();
延迟(2000年);
chargestatusmonitor();
延迟(2000年);
temp();
延迟(40000);
}