赛灵思 XC3S500EPQ208A 管脚配置 和 iic死锁
新手上路,请教各位大侠。我用的赛灵思 XC3S500EPQ208A 的管脚P49和P23分别做IIC通信的数据线和时钟线,但是在通信的过程中,经常会死锁,就是在数据还没有发完时,SDA拉低,主设备重新加载后,在重新发地址,有时能再次把数据线SDA拉高,有时不能。 用示波器观察波形,发现从设备(FPGA)发送的数据乱跳,不稳定,是不是和管脚的驱动能力有关系?
程序在XC3S100E上运行正常,因为产品升级,选了XC3S500EPQ208A,换过之后就经常死锁。 没有人回复,看来这个论坛的的人气不旺,问题已经解决,还是我自己解答吧。
我的主设备发送的脉冲为100KHZ,10us,但是我的从设备(fpga)每1ns或则1个机器周期(反正时间很短)就采样一次,采样上升沿,或则下降沿;但是主设备发送的脉冲也同样存在干扰,来一个下的干扰脉冲,FPGA就会认为是正常的脉冲,并进行相应操作,自然就会死掉。
解决办法是将异步发送,改为同步发送,并选择相应的时钟频率(这个很重要)。
页:
[1]