我们正在开发一个项目、该项目使用 STM32F0作为主机、使用 BQ24725作为从器件。 我想知道您是否可以通过 I2C STM32F0向我发送通信驱动器并为此组件(BQ24725)进行设置。 以下电子邮件地址: julio.cs.goulart@gmail.com
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
有关 BQ24725 SMBus 接口的详细信息、请查看数据表中的第15-16页。 本节介绍了写入字和读取字协议、写入/读取时序以及启用 SMBus 通信的条件。 表2还显示了 BQ24725的寄存器及其 POR 时的默认值。
请注意、BQ24725是 NRND (不推荐用于新设计)、已被 BQ24725A 取代。 我们建议改用 BQ24725A。
此致、
Angelo
我已按照建议将 BQ24725更改为 BQ24725A。 通过 I2C、我按以下顺序发送命令: 地址:0x12 写入->充电选项寄存器(0x12):-> POR 状态数据(0XF902) 写入->输入电流寄存器(0x14):-> POR 状态数据(0x0000) 写入->充电电压寄存器(0x15):-> POR 状态数据(0x0000) 写入->充电电流寄存器(0x3F): -> POR 状态数据(0x1000) 读取-> Manufacture_ID reg (0xFE):-> POR 状态数据(0X0040) 读取-> DEVICE_ID reg (0xFF):-> POR 状态数据(0x0000) waithm 500ms; 地址:0x12 write-> CHARGE_OPTION reg (0x12):-> POR 状态数据(0x0580 reg)(0x132-creg)写入电 压:0x852-0) -> POR 状态数据(0X41A0) 写入->充电电流寄存器(0x3F):->状态数据依据(0X0A00) 读取->制造 ID 寄存器(0xFE):-> POR 状态数据(0X0040) 读取->器件 ID 寄存器(0xFF):-> POR 状态数据(0X000B) 通过示波器进行充电、但我看到的电池电量不是全部为 BQ725A。 可能出什么问题了?
你(们)好,Ang
我进行了您建议的测量、如下所示:
| 不带适配器 | 使用适配器 | |
| 适配器电压 | 0V | 19.5V |
| ILIM | 0V | 819mV |
| REGN | 0V | 6V |
| ACDET | 0V | 2、58伏 |
| ACOK | 0V | 3、2V |
我注意到、当我为写入的值指定读取命令时、这些值会有很大的不同。 读取 ManufacturerID ()将提供数据:0x0000、DeviceID ()将提供数据:0x0000。 一个基本问题、我使用的是 I2C、而不是 SMBus、这是否是问题?
好的、解决了这个问题。 在读取已发送的数据时、我注意到它们被与低部件反转了高部件。 写入0xF902 读取0x02F9。 我使用了交换并开始加载。
------ uVISION STM32F0命令: HAL_I2C_Mem_Write (&hi2c1、Addr_Bq24725A、CHARGE_OPTION[0]、1、&CHARGE_OPTION[1]、2、1000);//写入
HAL_I2C_Mem_Read (&hi2c1、Addr_Bq24725A、R_CHARGE_OPTION [0]、1、&R_CHARGE_OPTION [1]、 2、1000);//读取
------ 感谢您的协作。