最近做了一个视频解码器,数据来源是eth,通过主芯片做h264解码后以video port+audio port送出
调试的时候发现画面正常,声音经常过一会就停止
检查audio port的i2s总线发现有数据有时终,且mute为关断
检查整个系统的i2c总线,发现sda线每隔1s左右会产生一个脉宽为0.1s的低脉冲,由于scl和sda都做过i2c应有的上拉电路,此脉冲显然不正常。
根据i2c的时需要求,scl为高sda为低应该是start标志,接下来按照i2c协议,scl就应该产生clk,然后发送地址,数据等等了。
但现在这个,在scl为高的时候,sda低一下过一会就自己回去了,scl没有任何变化,肯定不正常。
继续观察scl,sda的波形,发现有时候sda应该正常发送数据的时候,会与那个0.1s的低脉冲叠加,使所发送的数据混乱。判断该问题是导致无声音的问题原因。
检查i2c总线上的所有device,发现有一个单片机的gpio练到了i2c总线上。
原设计是想用这个单片机模拟一个i2c slave来和主芯片通信,完成一些控制功能。
但现在单片机程序还没写。
猜测是单片机没有程序,初始化的时候会自动把gpio拉低,从而干扰了i2c总线
于是去掉了这个单片机,声音果然正常了。
文章评论(0条评论)
登录后参与讨论