器件型号:BQ40Z50-R3-DEVICE-FW
使用 BQ40z50-R3并通过 MSP430至 SMBus 对其进行控制、系统会要求开发人员使用块读取/块写入命令来访问制造商。 我将 MSP430FR5949用作单主器件、同时关闭了 bq40z50-R2从器件(运行 R3固件)的广播。
如果不修改 smbus_NWk.c、这对于少数命令是不可能的。 SMBus_NWk.c/SMBus_NWK_masterProcessRx (SMBus * smbus、uint8_t data)对返回的第一个字节进行检查、在 BQ40z50-R3中、第一个字节是字节计数。
目前、根据 SMBus 标准、限制为32个字节、但对于 ManufacturerBlockAccess 0x44 0x0071 (DAStatus_1)、PEC 的字节计数将始终为34或更高、这会导致检查失败并返回错误。
任何地方都没有这方面的文档(至少我可以找到)。 这种差异至少应该在 bq40z50-R3技术手册中得到解决、因为这会使您相信从 Man.blockAccess 读取数据的正确方法是执行此过程来读取 DAStatus1 0x0071 (例如)
块写入0x44 (0x71、0x00)
块读取0x44。
但是、实际上、尽管寄存器本身仅包含32字节的数据、但第一个字节返回34、其中包括数据和2字节地址。