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.

[参考译文] TPS65721:中断操作

Guru**** 2345780 points
Other Parts Discussed in Thread: TPS65721, BQ27426, MSP430FR5869
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/629012/tps65721-interrupt-operation

器件型号:TPS65721
主题中讨论的其他器件: BQ27426MSP430FR5869

我有一个使用 MSP430FR5869与 TPS65721和 BQ27426搭配使用的项目。  我正在尝试使用活动和 PGOOD 中断检测何时应用或移除外部电源、以便更新所连接显示屏上的图标。  我的程序执行此操作:

(1)在初始化期间、屏蔽 IRMASK0、IRMASK1、IRMASK2中除 M_CH_ACTIVE 和 M_CH_PGOOD 以外的所有中断、然后通过读取 IR0、IR1、IR2寄存器清除任何挂起的中断。

(2)当 TPS6571的 INT 引脚变为低电平时、程序中的中断会设置一个标志、而不执行任何其他操作。

(3)在程序的主循环中、如果设置了该标志、请读取 CHGSTATUS 寄存器、检查 CH_PGOOD 和 CH_ACTIVE 标志、然后通过读取 IR0、IR1、IR2寄存器来复位 INT 引脚。

这是中断引脚和寄存器的预期实现吗?  具体而言、何时应读取/复位 IR 寄存器?

谢谢、

Adam J.

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

    我已将此帖子分配给相应的应用工程师、他将回答您的问题。

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

    Adam、

     基本而言、是的、您的例程是正确的实现。 如果一个故障发生、您会得到一个中断、您将读取 IRQ 寄存器来确定故障并做出相应的响应。

     一些指针:

    1) 1)最好不要在中断中处理代码、因此最好先设置标志、然后在代码循环中处理中断。 但是、请确保您的循环优先于读取 IRQ 寄存器。 您可能存在严重的故障情况、如果您未及时作出响应、则 可能会造成损坏 、否则可能会避免损坏。

    2) 2) 如果您接收到中断并 读取寄存器、则如果您的单元进行复位、中断状态和可能的错误信息可能会丢失。 好消息是您使用的是基于闪存的控制器。 您可以将 IRQ 寄存器数据写入存储器、这样、如果您复位、您将获得事件记录。  如果您为事件设置时间戳、您就会知道您发生了故障、以及发生时间。 然后、当您重新启动或从复位中唤醒时、您可以读取这些存储器位置以了解您正在从故障状态中唤醒、并且您可以返回并检查 IRQ 寄存器以查看故障是否仍然存在。

    3) 3) 最好一次性检查 PMIC 的状态、以确保一切 正常。 不要在中断时等待 检查寄存器。 作为环路的一部分、在外部硬件上添加维护检查。 您可能会捕获到温度上升或高于正常电压、并对此采取一些措施。

    4) 4)如果您无法处理危险情况、例如关闭某些设备或断开某些设备、关闭充电、记录有关错误的数据或发出蜂鸣器或蜂鸣器、那么为 INT 服务不会给您带来太多帮助。  

    祝您好运、如果您有任何其他问题、请告诉我。   

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

    戈登、

    非常感谢您提供的大量信息!  还有两个问题:

    (1)在最佳实践中、应定期检查哪些 IRQ 位以了解故障情况?

    (2)您建议定期进行状态检查的频率如何?

    谢谢、

    Adam J.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我非常希望对上述两个问题作出答复。

    谢谢!

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

    Adam、
    抱歉、我没有看到您的问题出现。

    最好监控 IRO、IR1和 IR2寄存器。 这些寄存器将为您提供状态信息。

    至于定期状态检查、这完全由您决定。 出现问题时、您将收到 INT (中断)。 "没有新闻"一词在这里有很长的路要走。 如果您没有 INT、则可以假设一切正常。 通常、我会在启动后验证寄存器、一旦我完成正常操作、我就不会检查它们。 请确保始终让 INT 引脚查找来自 TPS65721的中断。 如果您进入低功耗模式或睡眠模式、最好在唤醒时检查它们。

    但愿这对您有所帮助。 如果您还有其他东西、请告诉我。

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

    IR0、IR1、IR2寄存器中是否有需要检查的特定位?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Adam、
    这些寄存器中的所有位将告诉您器件中发生了什么。 决定对您来说重要的是什么。 您是否正在寻找能够告诉您器件状态的信息? 如果是、则 IRO 位 B0-B3、IR1位 B2-B7和 IR2位 B1-7。

    如果只查找故障、则 IRO 位 B5-B7、IR1位 B1-B0。 阅读数据表、了解寄存器试图告诉您的信息。 然后、您可以决定从器件中需要什么。

    没有魔术监控方法。 真正的问题是、您将如何处理此信息。 如果 PMIC 不首先关闭您的电源、会关闭什么? 然后查找您获得中断的故障或原因。 中断后、您可能需要几毫秒时间才能将信息保存到存储器中、然后电容器中的能量在关断后消失。
    您可能希望向用户报告状态、然后您可能希望告诉他们一切都很好。 如果您只想打开一个指示灯来表示它正在充电、该怎么办? 然后查看电阻器、确保它正在充电、一切正常、然后再打开灯。 在执行任务之前、您可能需要验证电源轨上的电源是否正常。

    由你决定。 祝你好运:-)