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.

[参考译文] BQ79600EVM:断开菊花链连接时、NFAULT 未置位?

Guru**** 2523230 points
Other Parts Discussed in Thread: BQ79600EVM, BQ79600-Q1

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1050126/bq79600evm-nfault-not-asserted-when-daisy-chain-gets-disconnected

器件型号:BQ79600EVM
主题中讨论的其他器件: BQ79600-Q1

您好!

我将一个 BQ79600EVM 连接到两个79616 EVM。 我的驱动程序会像 UART 示例代码那样初始化系统。 具体而言、我没有更改任何故障屏蔽。 我能够读取电压、GPIO 等 当我对堆栈器件执行一次写入操作时、更改其客户 CRC 寄存器以使检查失败、NFAULT 将按预期变为有效。 但是、当我断开79600和底部堆栈79616之间的菊花链连接时、NFAULT 引脚保持高电平。 我本来希望它因通信故障而变为活动状态。 我在这里错过了什么?

感谢您的支持。

此致

Julian

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

    Julian、

    通常情况下、我们会预期通信超时会触发故障标志、但在使用 GUI 时、我们会禁用通信超时以方便使用。

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

    您好、Alexander、

    我目前不使用 GUI。 我已经验证 COMM_TIMEOUT 寄存器是否设置为其复位值0x34 (10s/1m)。 尽管如此、没有 NFAULT 断言... 有什么想法吗?

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

    Julian、

    您是否启用了心跳音调?

    由于睡眠模式下不提供数据通信、该器件提供以下选项来传输故障信息:

    1)发送心跳音调(由[Hb_TX_EN]启用、用于检查桥接器件和第一个堆栈器件之间电缆的完整性)。 器件未发送故障音调、因为它具有 NFAULT。

     2) 2)通过[TON_RX_EN]检测心跳和故障音调、启用

    这些音调的传输方向与基于 CONTROL1 [DIR_SEL]设置的通信命令帧相同。 为了使音调信号返回到 BQ79600-Q1 (以便在需要时触发 NFAULT)、必须使用环形架构来支持在睡眠模式下传输故障状态。

    如需更多信息、请查看 BQ79600-Q1数据表第7.3.3.2节故障接口

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

    我的设置注意事项:按照 EVM 手册中的说明振铃:600h <-->#1 L616H <-->#2 L616H <--> L600

    谢谢。 这些位确实根据数据表配置了处于睡眠状态的 HB。 我还没有使用睡眠模式。 我每秒唤醒系统、配置系统并收集数据。

    但是,在桥上启用 Hb_TX_EN 和 TON_RX_EN,在堆栈上启用 Hb_EN 和 FTONE_EN,会使问题得到某种程度的解决:)。 我现在在电桥上获得了一个永久性 FAULT_COMM1[Hb_FAIL](堆栈无错误)。 当我每秒复位一次时、故障 LED 会短暂闪烁。 好消息:当我拔下菊花链中的某个部件时、我会得到长时间闪烁->我得到的反应是、我之前缺失了。 但这仍然会引起问题。

    1) 这种行为似乎与数据表说明相矛盾:我不使用睡眠模式、我本来希望菊花链中的一根导线开路来触发 NFAULT。 但是、我似乎需要设置您建议的位以获得反应。 为什么?

    2) 什么可能会触发电桥上的 Hb_FAIL? 我只能想象一下开放的菊花链或堆栈会禁用 HB-EN、FTONE_EN。 但我已证实这些可能的原因不是罪魁祸首。

    BRIDGE
      CONTROL1
        ADDR_WR         0
        SOFT_RESET      0
        GOTO_SLEEP      0
        GOTO_SHUTDOWN   0
        SEND_SLPTOACT   0
        SEND_WAKE       0
        SEND_SHUTDOWN   0
        DIR_SEL         0
    
    
    BRIDGE
      DEV_CONF1
        HB_TX_EN        1
        SEL_TX_TONE     0
        NFAULT_EN       1
        TWO_STOP_EN     0
        FCOMM_EN        1
        TONE_RX_EN      1
        SNIFDET_DIS     0
        SNIFDET_EN      0
    
    STACK #1
      DEV_CONF
        HB_EN           1
        FTONE_EN        1
        NFAULT_EN       1
        TWO_STOP_EN     0
        FCOMM_EN        1
        MULTIDROP_EN    0
        NO_ADJ_CB       1
    
    STACK #2
      DEV_CONF
        HB_EN          1
        FTONE_EN       1
        NFAULT_EN      1
        TWO_STOP_EN    0
        FCOMM_EN       1
        MULTIDROP_EN   0
        NO_ADJ_CB      1

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

    要添加摘要:

     -只要设置 COMM_TIMEOUTNFAULT_EN、我就会期望 NFAULT 变为有效状态
     设置为1、不屏蔽故障、我断开菊花链中的某个设备的时间超过配置的超时时间->不会。 这是什么原因?

    -在睡眠模式下监控菊花链中是否存在断线、由心跳和故障音调设置进行配置。 启用这些功能会导致 HB 持续故障、即使我尚未使用睡眠模式。 当不处于睡眠模式时、为什么会触发它?

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

    Julian、

    BQ79600器件使用 Hb_TX_EN 心跳音调来确定菊花链是否断开。 通常在活动模式下、MCU 应执行手动通信检查、因此我们通常不需要启用检测信号即可知道是否存在中断。 我让您在激活模式下打开心跳音调、这会导致您的案例中触发故障(请参阅数据表中的以下文本)。 我希望现在这更有意义吗?

    9.3.6.2.3.3心跳和故障音调

    通过分别设置 DEV_CONF[HB-EN]= 1和 DEV_CONF[FTONE_EN]= 1启用心跳和故障音调发送器、可启用音调。 心跳和故障音调接收器在睡眠模式下始终开启、无论[Hb_EN]和[FTONE_EN]设置如何。 为了避免通过心跳或故障音调故障进行故障检测(将 NFAULT 或 FAULT_SUMMARY 寄存器置为有效)、应通过[MSK_COMM3_HB]= 1或[MSK_COMM3_FTONE]= 1屏蔽故障。

    心跳和故障音调由具有"–"极性的小程序组成。 它们因小胞胎数量而异。 与通信音调不同、心跳和故障音调会定期传输。 音调之间的周期称为突发周期。 传输的小胞胎数始终大于检测所需的小胞胎数。

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

    好的、我想我现在就明白了。 我需要在将所有堆栈器件(启用 HB)发送到睡眠模式后启用 TON_RX_EN、对吧? 我认为启用 TON_RX_EN 只会在堆栈处于睡眠状态时生效。 因此、顺序为:为堆栈启用 HB 和 FT ->为桥启用 HB TX ->将堆栈发送到睡眠->在桥上启用 FT 和 HB 检测(TON_RX_EN)。 还没有尝试过、但这可能是。 如果是这种情况、数据表中应确实提及该序列。

    但n´t:为什么在正确配置 COMM_TIMEOUT 的情况下仍会出现通信故障? 这是我的第一个问题。 如前所述、我不使用 GUI。 我正在使用自己的驱动程序。 我本以为会触发 comms 故障位、进而激活 NFAULT。 它应该是n´t 的样子吗?

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

    Julian、

    通信超时用于将器件转换为关断模式。 它们不会触发 NFAULT 引脚

    通信超时:如果在配置的时间内没有有效通信、则自动从活动模式转换到关断模式。 主机可以通过 COMM_TIMEOUT_CONF 寄存器启用此选项。

    睡眠模式超时:如果器件在配置的时间内处于睡眠模式、则会自动从睡眠模式转换到关断模式。 主机可以通过 PWR_Transit CONF[SLP_Time2:0]启用此选项