主题中讨论的其他器件:BQ79616
我们在这个领域遇到了一个问题、我们一直无法通过软件进行纠正、并且正在努力确定实际问题可能是什么。 在我们的 BQ79616实现方案中、MCU 采用主机 PCB、单个 BQ79616作为收发器、多个堆栈板均采用单个 BQ79616。 此设计不利用环形架构、而用作主机收发器的 BQ79616仅将 commh+和 commh-分接至连接器。 相关实现采用单个主机和两个堆栈板。 系统密封在电池外壳内、通常物理上无法访问。 与主机 MCU 的外部通信通过 CANBUS 或串行实现。 此外、由于位于主机板上的 BQ79616由电路板电源供电(标称值为13.6V)、它会在主机板的每个电源周期中进行一个 POR。
出现的问题情况是、两个堆栈芯片对任何对器件进行读取、写入、寻址或复位的通信尝试都没有完全响应。 当主机板由外部电源供电来接收固件更新时、这种情况会特别表现出来。 执行更新之前会发生此问题、并且在 安装新主机 MCU 固件后和回滚到以前有效版本后此问题一直存在。
我们无法通过基准测试重现此问题。 我们通过仔细检查 UART 和 COMMH/COMML 线来确认、HW_RESET 过程按照预期在工作台上从 MCU 传播到底层器件并通过堆栈。 附件是示波器数据的一些图像、以供参考。 主机 MCU 上的固件不包含直接操控任何器件的 commh/comml 收发器的配置、并且考虑到该条件发生在异常正常的启动期间、堆栈芯片 禁用任何收发器的可能性极小。 似乎最可能的问题是 基础器件实际上没有转发任何命令到堆栈芯片、而堆栈芯片没有真正的响应; 但是、HW_RESET ping 没有办法解决该问题、也不能通过基底器件上的 COMM_CTRL 寄存器手动启用 commh/comml 收发器。
基本 BQ79616确实通过 UART 与主机 MCU 通信而不会出现问题、并且可以按预期读取和写入寄存器。 如前所述、HW_RESET ping 和 POR 都不会导致此行为发生任何变化。 我们已尝试了这两种复位方法、并在 HW_RESET 周期后接着尝试了双唤醒 ping、以及通过 COMM_CTRL 调试寄存器手动启用 VIF、所有这些方法的行为都没有任何变化。 鉴于这些器件无法访问、我们无法实际探测任何 LDO 或其他电信号。
此时、我们可以认为可能发生的唯一物理条件是 基本器件上的临时 Vbat 电压低于9V 最小值。 这本来是瞬时的、但可能在连接到外部电源期间发生、也可能在器件的内部启动例程期间发生。 有人知道任何其他情况和/或状态、在这些情况下、器件可能通过各种复位尝试而变得无响应和不可恢复、或者尽管与主机进行了正常的 UART 通信、但基础器件可能无法与堆栈器件通信?
这是 工作台上接收 HW_RESET 音调并关闭 LDOIN 稳压器的堆栈器件的示波器图像。 在基准测试中、对于基础器件、所有器件都会响应 HW_REST 音调或 ping