dffzh 发表于 2025-5-23 17:02

偶现板子芯片驱动异常,最后更换芯片厂商解决了

本帖最后由 dffzh 于 2025-5-23 17:07 编辑

#申请原创#
@21小跑堂

1、问题描述   实测现象:输出共32点,命名为点0~点31:点0到点14的输出控制正常;控制点15输出时,点16输出指示灯也会被点亮;控制点16输出时,点16不亮,点17亮;…依次类推…控制点30输出时,点30不亮,点31亮;控制点31时,输出无反应,无任何输出指示灯亮。出现异常的板子的现象类似。下面是HC595芯片级联示意图:
2、问题分析原因猜想:问题出现的起点在“控制点15输出时,点16输出指示灯也会被点亮”,很有可能是这里的点数据出现了异常?点15为第二个HC595芯片的最后一个输出引脚控制,点16为第三个HC595芯片的第一个输出引脚控制,所以可以排除两个引脚连锡短路的可能;软件仿真分析:当配置PDO输出控制点15时,查看软件的32位全局控制数据为32768,如下:
二进制如下:

说明对象字典下发的数据是正确的。控制点15输出:用逻辑分析仪抓取SRCLK时钟和SER数据脚的数据,输入到4个HC595芯片里的数据也是正确的:
难道是MCU和HC595的通信时钟速率太快导致数据错乱?实测当前时钟速率为645KHZ左右,查看了HC595支持的速率,可以达到25MHZ:为了彻底消除这种可能,将时钟速率下降一半到300多KHZ测试后,异常现象依然存在。所以,也可以排除时钟速率太快造成的数据错乱。另外,该模块的32点DI输入指示灯也是由4个HC595芯片来驱动的,其控制方式与输出控制基本一致,仅仅是对应的MCU引脚不同;在输出控制时,将控制输入指示灯的接口移到输出显示上进行测试,输入指示灯的显示是正常的。说明输出控制数据是正常的。综上,从软件层面上的分析结果来看,确实没有发现明显的问题。

下面就该硬件工程师参与一起分析了。主要进行了如下测试和分析:更换芯片后恢复正常,说明芯片差异可能较大,使性能不稳定;更改时钟信号线上的电容220pf为10pf,或者去掉,可以使时钟更陡,并更快达到电平阈值,可以解决异常现象,下图是CLK有220pf,现象异常的波形:在时钟信号上有220pf电容时,数据和时钟几乎同步,处于临界状态,可能会出现异常;测试有问题的波形和无问题的波形一致,说明芯片阈值电平可能存在差异,导致临界状态的出现。下图是CLK不加电容,现象正常的波形:在每个芯片QH”上加100pf电容,使数据传输延迟一点也可以解决异常现象;与芯片原厂沟通,原厂有QH”输出延迟的更新版本,不过需要进一步批量验证才可以知道。后来辗转反侧才从项目经理哪里得知,该厂商的HC595芯片在其他部门也遇到过类似问题,由于解决未果,最终也是通过更换芯片厂商得以解决。所以芯片管控这块的缺口也是需要反思的。因此最后的解决措施是:临时方案:工厂已生产并且正常的板子,去掉时钟上的电容;最终方案:更换了HC595芯片的厂商,后面小批生产验证后未出现异常现象。

最后给大家提一点注意事项:使用这种菊花链级联多个芯片时,时序波形还是需要仔细测试一下,不要出现临界状态,尽量留一些余量。
页: [1]
查看完整版本: 偶现板子芯片驱动异常,最后更换芯片厂商解决了