使用芯片手动诊断功能,触发负载对地短路,检测到fault脚拉低,运行手动诊断功能,读取0f寄存器等待执行诊断的通道状态变为Hiz,读取0C、0D寄存器可以获取对应通道短路故障信息。取消负载对地短路,再次运行手动诊断,0C、0D寄存器的信息还是之前短路时的状态。之后多次运行手动诊断,读取寄存器的值还是短路时候的值。这种情况怎么处理?怎么确认手动诊断已经执行?
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.
使用芯片手动诊断功能,触发负载对地短路,检测到fault脚拉低,运行手动诊断功能,读取0f寄存器等待执行诊断的通道状态变为Hiz,读取0C、0D寄存器可以获取对应通道短路故障信息。取消负载对地短路,再次运行手动诊断,0C、0D寄存器的信息还是之前短路时的状态。之后多次运行手动诊断,读取寄存器的值还是短路时候的值。这种情况怎么处理?怎么确认手动诊断已经执行?
您好,取消负载对地短路之后,需要对寄存器0x21 bit7=1,clear fault,然后再读取0x0C和0X0D的寄存器信息看看是否已经恢复?
因为当发生芯片对地短路报错之后,如果不清零,会一直停留在这个状态,当报错remove之后,需要clear fault 清除。
是的,需要去清除。如果清除之后,但是诊断功能还在enable状态的话,那么器件会自动启动通道诊断,但是如果没有发现故障,器件会重启,但如果仍发现处于故障中,那么每秒会重新诊断一次。
您这里说的诊断功能还在enable状态指操作21寄存器清除fault后,是指不设置04寄存器为play么?
只要不是在高阻态,不论是在play状态还是在mute状态,那么是一直处于DC诊断中的。只是在play mode下DC诊断时间比较长,因为在转换到高阻态之前,器件必须ramp down音频信号。 04h是可以针对具体某一通道进行手动配置是否DC诊断。
而TAS6424E默认是enable 自动进行诊断的,参考寄存器0x09h bit0=0. 所以如果这里一直是0,即使进行了clear fault之后,器件会自动进行通道诊断,如果故障消除,则器件会重启,如果故障仍在,则每秒进行一次诊断。
这里如果09寄存器配置的0x01,那故障清除后还会自动进行诊断么,还是如果有故障直接拉fault脚进入保护
而TAS6424E默认是enable 自动进行诊断的,参考寄存器0x09h bit0=0. 所以如果这里一直是0,即使进行了clear fault之后,器件会自动进行通道诊断,如果故障消除,则器件会重启,如果故障仍在,则每秒进行一次诊断
这里如果09寄存器配置的0x01,那故障清除后还会自动进行诊断么,还是如果有故障直接拉fault脚进入保护
0x09=0x01,故障清除后不会自动诊断,但是如果再次发生故障,寄存器还是可以读取到报错,fault引脚也会拉低。
和启动自动诊断的区别在于,自动诊断只要器件不在高阻态,就一直在诊断过程中。