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.

[参考译文] BQ76920:CC 问题:在 cc 连续模式中 MSB (符号位)始终为0

Guru**** 2538955 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/779897/bq76920-cc-issue-msb-sign-bit-always-0-in-cc-continuous-mode

器件型号:BQ76920

我能够正确读取所有寄存器(VC-TS - BAT-HI 和 BAT-Low 以及所有其他寄存器)、但 CC 看起来不正确。

当我在连续模式下读取 CC 时、正值为 OK (正在充电)、并在分流器上显示正确的 mV 值、

但负值(放电)始终第一位(CC_HIGH 的 MSB)为0…… 因此、值从32767向下移动... (虽然与32767的差值-读取值是分流器上 mV 的正确测量值)

我认为二进制补码应该使用 MSB 作为符号... 我弄错了吗?

我出了什么问题?  

(我正在用作 ATmega328p 的主机)

 

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

    正确-对于负值、MSB 应为1。 您是否将 CC_CFG 寄存器写入0x19?

    Matt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我把寄存器0x0B 置为0x19 :-)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好极了。 您是否能够直接在示波器上查看波形以验证 MSB 是否真正为零? 对于负值、MSB 应该为高电平。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    将尝试使用示波器... 但是、由于我实际上只在固件上工作、所以不能直接使用它... 在任何情况下、具有第一位设置的其他寄存器(例如 SYS_STAT (CC_Ready 位))都正确地通过 i2c。。。 您是否认为可能存在任何计时错误? 或者您在想什么? 非常感谢!!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我尝试了一点、并注意到如果我仅请求一个字节 CC_High、然后立即请求 CC 的2个字节(自动递增)、那么我的变量中将具有全部16位... 还有之前缺失的 MSB... 奇怪... 您认为原因是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mirko、

    我不确定、但建议同时读取两个字节、否则值可能会在捕获高字节和低字节之间发生变化。 遗憾的是、我不知道如何解释您在单独读取字节时观察到的缺少 MSB。

    Matt
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    实际上、我一次读取两个字节。 但是、如果我仅这样做、则第一个位将丢失。 但是、如果在一起读取2个字节之前、我只读取 CC-High 字节(不存储或使用它)、并且在我读取2个字节之后... 读数已完成、MSB 也在此处... 奇怪... 您从未发生过这种情况吗? 或者有人在这里阅读? 感谢您的任何意见!