大家好、所有 TI 专家、
我的电池组使用了 Bq40z50-R1、我有两个问题要问。
当电池组正在充电时、我们通过 i2c 总线接口读取0x54register 为8704。 因此它的实际值是0x8704、因为它是 小端字节序。 为什么 bit1 (DSG) 没有 设置为1?
2.我能否读取 0x54寄存器使用与0x09 (SBS cmd) 寄存器( 电压寄存器)或0x0a 寄存器(电流寄存器)相同的 SBS cmd?
谢谢!
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.
大家好、所有 TI 专家、
我的电池组使用了 Bq40z50-R1、我有两个问题要问。
当电池组正在充电时、我们通过 i2c 总线接口读取0x54register 为8704。 因此它的实际值是0x8704、因为它是 小端字节序。 为什么 bit1 (DSG) 没有 设置为1?
2.我能否读取 0x54寄存器使用与0x09 (SBS cmd) 寄存器( 电压寄存器)或0x0a 寄存器(电流寄存器)相同的 SBS cmd?
谢谢!
从 0x54读取的值可能不正确、因为 MCU 读取它只是使用 SBS 命令。
您是不是说、所有 SBS 命令 、如0x09 (电压)和0x0a (电流)、都应该通过0x00进行访问、如下所示?
我无法通过 SMBus 读取命令=0x09读取0x09,这对吗?
3.访问0x06 (0x06 AtRateTimeToEmpty())寄存器和0x0006 (ManufacturerAccess() 0x0006化学 ID)寄存器之间有何区别?
以及 访问0x54 (0x54 OperationStatus、TRM 13.46) 和0x0054 (ManufacturerAccess () 0x0054 OperationStatus、TRM 13.1.40)之间的区别是什么?
我被吓到了~! 因此、我希望您能帮助详细解释这些类型的寄存器在访问方法上的差异。
非常感谢!
您好、Batt、非常感谢您的详细解释。
我从您的解释中了解以下内容。有两种类型的访问命令,一种是标准 SBS 命令,另一 种是制造商命令。制造商命令也有两种类型的访问命令,一种是通过 ManufacturerAccess()访问的,另一种是 ManufacturerBlockAccess()。
ManufacturerAccess 访问步骤如下所示:
ManufacturerBlockAccess 访问步骤如下:
我是否可以正确理解上述内容? 如果不正确、请帮助我更正。 非常感谢!
其他要问的问题:
如何访问标准 SBS 命令、例如读取0x09寄存器?它只需要读取命令0x09、不需要通过0x00或0x44、那么该值将被缩减吗?
为什么在 TRM 13.1.40中描述了 ManufacturerAccess() 0x0054 OperationStatus,但在 13.46中描述了0x54 OperationStatus?所以我会错误地认为这两种方法都可以访问 OperationStatus 寄存 器。实际上,我们只能通过 ManufacturerAccess 或 ManufacturerBlockAccess 访问它,而不能通过 SBS 命令作为0x09 (电压寄存器)访问它。 我是对的吗?
ManufAccess 使器件符合 SBS 规范。 TRM 中清楚地提到、为了与旧版 bq30z 器件兼容、我们还提供了小端访问方式。 这就是为什么您有2种不同的方法来获得相同的数据。
1. 此处 提到的两种不同方法是 ManufacturerAccess 和 ManufacturerBlockAccess?
2. 为什么在 TRM 13.1.40中描述 ManufacturerAccess() 0x0054 OperationStatus,但在 13.46中描述了0x54 OperationStatus?所以我会错误地认为这两种方法都可以访问 OperationStatus 寄存器。
另一个问题:
从 BQ40Z50-R1 TRM 13.46中、 0x54 OperationStatus0 支持 SBS Cmd、我能否 直接从0x54 寄存器读取0x09 (电压)?
实际上 ,我可以直接从寄存器(与0x09一样)读取0x54操作状态寄存器,在我们的器件上读取的值是0x0187,但我不确定它是否正确。
我能否直接从寄存器读取它、我们不需要通过 ManufacturerAccess 或 ManufacturerBlockAccess 进行访问?