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.

[参考译文] BQ40Z50-R2:向电量计写入序列号

Guru**** 2553450 points
Other Parts Discussed in Thread: BQ40Z50

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1461710/bq40z50-r2-writing-serial-number-to-guage

器件型号:BQ40Z50-R2
Thread 中讨论的其他器件:BQ40Z50

工具与软件:

我正在尝试通过 MCU I2C 使用命令0x1C 将序列号写入 BQ40Z50、但这样做是无效的。 我尝试了使用 Battery Management Studio、它成功地将序列号写入 BQ40Z50。 校验和似乎有问题。 我捕获了 Battery Management Studio 中写入序列号的 I2C 布线。 例如、如果我将序列号0x0152写入 BQ40Z50中、根据 I2C 布线、发送的数据为0x1C、0x52、0x01、0x6A、其中0x6A 假定为校验和。 如果我通过 MCU 发送相同的 I2C 跟踪、可以正常工作、但当我使用应用手册 SLUA801中的校验和函数时、不工作。

但是、此函数的输出是不同的。 请为我提供指导、以便我可以将所需的序列号写入 BQ40Z50。

// check_sum:

//pData:计算指向数据块的块传输指针的校验和

//nLength:数据块的长度

unsigned char check_sum (unsigned char * pData、unsigned char nLength)

unsigned char nsum = 0x00;

unsigned char n;

对于(n = 0;n < nLength;n++)

    nsum += pData[n];

nsum = 0xFF-nsum;

返回 nsum;

}  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Moeez、

    您能否解释*pData 中包含的所有数据?

    此致、

    Adrian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    pData = 0x17、0x1C、0x52、0x01

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Moeez、

    对于校验和、除地址数据之外的所有数据都将用于计算出的校验和。 因此这将包括命令字节。  

    此致、

    Adrian