i2c几率性出错
遇到一个问题,高手帮忙分析下。
pc机去读取我们板子的edid,通过i2c。
一般速率在30k以上i2c的,都可以读取到。
但是有一些显卡,我们看了波形,速率在20k左右(错误的时候是20k,正常通行可能在30k以上)。
有一些显卡就是无法读取edid,经常失败,有的时候也可以读到。
我们看波形,pc发送的地址是对的,板子给的ack也是0;发送的是读命令。但是第一个读的第一个数据的时候,ack是1,这个ack应该是pc反馈的额,因为是从板子读数据。
因为ack是1,所以重新start。
然后pc后面发的是竟然是写命令,然后也就是导致都读取不到edid。
求稳怎么解决,板子的i2c是硬件提供的slave机制。