ZHCUAN8A April 2016 – November 2022 BQ27220
发出 Control()(制造商访问控制或 MAC)命令需要一个 2 字节子命令。该子命令指定所需的特定 MAC 功能。Control() 命令允许系统在正常运行期间控制电量监测计的特定功能,并在器件处于不同的访问模式时控制其他功能,如表 3-2 所述。在该器件上,Control() 命令也可以发送到 ManufacturerAccessControl()。任何具有数据响应的子命令都将在 MACData() 上读回。
读取 Control() 寄存器将始终报告 CONTROL_STATUS() 数据字段,但在 DEVICE_NUMBER() 和 FW_VERSION() 子命令之后除外。在这些子命令之后,CONTROL_STATUS() 将在恢复到正常数据响应之前报告一次值 0xFFA5。这是一个标志,用于指示数据响应已移至 MACData()。对于读取 CONTROL_STATUS() 而言,不再需要向 Control() 写入 0x0000,但如果执行了该操作,也没有关系。
当执行需要数据的命令(例如数据闪存写入)时,子命令可以被写入 Control() 或 ManufacturerAccessControl() 寄存器;不过,建议使用 ManufacturerAccessControl() 寄存器进行写入,因为这样可以在单个 I2C 事务中执行完整的命令。
CNTL/MAC 函数 | 子命令 代码 | SEALED 访问? | 说明 |
---|---|---|---|
CONTROL_STATUS | 0x0000 | 是 | 被电量监测计忽略(在以前的器件中会启用 CONTROL_STATUS() 读取) |
DEVICE_NUMBER | 0x0001 | 是 | 报告器件类型(例如:0x0320) |
FW_VERSION | 0x0002 | 是 | 报告固件版本块(器件、版本、内部版本等) |
BOARD_OFFSET | 0x0009 | 是 | 调用电路板偏移校正 |
CC_OFFSET | 0x000A | 是 | 调用 CC 偏移校正 |
CC_OFFSET_SAVE | 0x000B | 是 | 保存偏移校准过程的结果 |
OCV_CMD | 0x000C | 是 | 请求电量监测计进行 OCV 测量 |
BAT_INSERT | 0x000D | 是 | 当 Operation Config B [BIEnable] 位 = 0 时强制设置 BatteryStatus()[BATTPRES] 位 |
BAT_REMOVE | 0x000E | 是 | 当 Operation Config B [BIEnable] 位 = 0 时强制清除 BatteryStatus()[BATTPRES] 位 |
SET_SNOOZE | 0x0013 | 是 | 强制将 CONTROL_STATUS()[SNOOZE] 位设置为 1 |
CLEAR_SNOOZE | 0x0014 | 是 | 强制将 CONTROL_STATUS()[SNOOZE] 位设置为 0 |
SET_PROFILE_1 | 0x0015 | 是 | 选择 CEDV Profile 1 |
SET_PROFILE_2 | 0x0016 | 是 | 选择 CEDV Profile 2 |
SET_PROFILE_3 | 0x0017 | 是 | 选择 CEDV Profile 3 |
SET_PROFILE_4 | 0x0018 | 是 | 选择 CEDV Profile 4 |
SET_PROFILE_5 | 0x0019 | 是 | 选择 CEDV Profile 5 |
SET_PROFILE_6 | 0x001A | 是 | 选择 CEDV Profile 6 |
CAL_TOGGLE | 0x002D | 否 | 切换 OperationStatus()[CALMD] |
SEALED | 0x0030 | 否 | 将电量监测计置于 SEALED 访问模式 |
RESET | 0x0041 | 否 | 复位器件 |
EXIT_CAL | 0x0080 | 否 | 指示电量监测计退出 CALIBRATION 模式 |
ENTER_CAL | 0x0081 | 否 | 指示电量监测计进入 CALIBRATION 模式 |
ENTER_CFG_UPDATE | 0x0090 | 是 | 进入 CONFIG UPDATE 模式 |
EXIT_CFG_UPDATE_REINIT | 0x0091 | 是 | 退出 CONFIG UPDATE 模式并重新初始化 |
EXIT_CFG_UPDATE | 0x0092 | 是 | 退出 CONFIG UPDATE 模式,不重新初始化 |
RETURN_TO_ROM | 0xF00 | 否 | 将器件置于 ROM 模式 |
使用 DEVICE_NUMBER() 子命令的示例: