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.

[参考译文] BQ76952:警报引脚无法通过 WARP 清除

Guru**** 2455560 points
Other Parts Discussed in Thread: BQ76952, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1401615/bq76952-the-alert-pin-cannot-be-cleared-by-the-warp

器件型号:BQ76952
Thread 中讨论的其他器件: BQSTUDIO

工具与软件:

尊敬的 TI 技术专家:

在项目开发过程中、bq76952芯片的 ADSCAN 功能和 ALERT 引脚会遇到问题、并且会感谢您的帮助。

问题描述:
我已经配置了用于警报功能的 ALERT 引脚、并启用了 ADSCAN 功能。 测量循环完成后、会触发 ADSCAN 警报、ALERT 引脚保持在高电平状态。 根据手册、我试图通过向0x62 Alarm Status()寄存器写入特定值来清除报警状态、特别是使用"1"复位所需的报警位、同时将所有其他位保持为"0"。 但是、将0x02写入0x62不会清除 ADSCAN 警报、并且 ALERT 引脚继续保持高电平。

在尝试解决该问题期间、我发现只有当默认警报屏蔽中的所有位都设置为0时、ALERT 引脚才会切换到低电平。

其他信息:

  • 我的 bq76952由 hc32微控制器控制、并为外部中断设置 MCU 引脚。

  • 我已经根据官方示例代码仔细检查了写入的地址和值、它们在逻辑上看起来是正确的。

附件是 bqstudio 中我当前配置的屏幕截图、该截图可能提供更多线索。

 e2e.ti.com/.../2024.08.19.gg.csv

感谢您的时间和帮助。 我期待您的答复。

此致、

[达鲁]

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

    您好 Darluu、

    设置 ADSCAN 位
    每个 ADC 周期完成的时间。 这是一个非常快速的过程、因此在您清除警报状态后、它可能会再次触发。 您看到的内容是预期的。 如果您希望 ADSCAN 位只触发一次、除了在第一次之后为它禁用警报外没有其他方法可以执行它。

    此致、
    Alexis

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

    回复 Alexis_H:

    感谢您关注此问题!

    我理解配置、正如您所提到的:ADscan 应该每252ms 触发一次、如果清除、它应该在最长252ms 后再次拉至高电平。 不过、当我使用示波器进行监控时、我看到任何引脚都没有变化。

    我不希望 ADSCAN 位只触发一次。 我的微控制器检测 ALERT 引脚上的上升沿、读取电压、电流和温度信息、然后使用代码:

    C.
    DirectCommands(AlarmStatus, 0x0020, W); // Clear the ADSCAN bit to make the alert pin go low

    测量循环完成后、ADscan 继续触发、微控制器读取信息并清除 ADscan。 该过程会持续重复。

    但是、我没有问题、因为微控制器和示波器都无法检测到 ALERT 引脚电平的任何变化。

    我请您在您的末端使用我的配置进行尝试、以查看 ADSCAN 位是否正确清除以及警报是否降至低电平。

    此致、
    Darluu

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

    您好 Darluu、

    感谢您的澄清。  从您现在共享的代码来看、您似乎正在清除错误的警报状态 模式。

    bqStudio 还将告诉您哪个 Alarm Status 是高电平。  

    您是否可以尝试更改它、看看它是否可以解决您的问题?

    此致、
    Alexis

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

    您好 Alexis_H、

    非常抱歉、我之前的消息中有一个拼写错误。 我实际使用的命令是:DirectCommands(AlarmStatus, 0x0002, 'W');。 就像在我的代码中这样、我还将0x0002与 bqStudio 软件一起使用来清除它、如图所示:

    此致、
    Darluu

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

    您好 Darluu、

    感谢您让我知道。 我会重新审视您分享的内容并回复您。  

    此致、
    Alexis

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

    您好 Darluu、

    感谢您的耐心。  在‘当前配置的实验中测试命令后、除了您在 Command Sequence '中键入的命令外、我没有发现任何问题。 已将其写入正确的寄存器、但是、您需要写入所有位。 In 要写入的字节(十六进制) 、您需要写’ 02 00 ’、而不是仅‘μ s 02. ’。

    此致、
    Alexis

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

    您好 Alexis_H、

    感谢您的答复。 您的意思是我需要写入02 00 (hex) BQStudio 软件的"命令序列"吗?

    但是、您能解释一下为什么这是必要的吗? 因为我观察到的Alarm Status价值是0x0002,并根据我的理解,我应该写0002. 我非常期待您的解释。

    此外、在我的微控制器代码中DirectCommands(AlarmStatus, value, 'W');、如果我想使用清除 Adscan 报警、应该value是什么?

    此致、
    Darluu

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

    您好 Darluu、

    感谢您的答复。 您的意思是我需要02 00 (hex)在 BQStudio 软件的"命令序列"中进行写入吗?[/QUOT]

    正确。

    然而、您能解释为什么这是必要的吗? 因为我观察到的Alarm Status价值是0x0002,并根据我的理解,我应该写0002. 我非常期待您的解释。

    这是因为器件以小端字节序的顺序存储值。  

    此外、在我的微控制器代码中、如果我想使用清除 Adscan 报警DirectCommands(AlarmStatus, value, 'W');、应该value是什么?

    您以前的值应该是正确的。  DirectCommands (AlarmStatus、0x0002、"W");

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

    您好 Alexis_H、

    这已经解决了我的问题,谢谢你的帮助!

    此致、
    Darluu