PXA310用GPIO口模拟I2C问题
调试中遇到个问题是,我用的是PXA310的cpu,其GPIO口无法设置成漏极开路的形式,GPIO可以设置的就是方向为输入输出两种,也可以设置带100k上下拉,但是若设置成输出,就是能直接驱动后端的。
但是I2C需要的是漏极开路方式输出外接上拉电阻,我现在用输出模式在无负载的情况下检查波形是对的,但是带上I2C模块后,就是无法正常通信,请问这个该怎么办?不能够直接这样驱动芯片进行通信吗?
[解决办法]
即是主写 也不能一直是输出, 要检测从设响应的,此时须设置为输入,检测响应正常 才能进行后续操作
[解决办法]
你的GPIO设置成能够接受输入了吗?
示波器看了波形是否有ACK?
如果波形没有ACK应该就是你前面的START 和地址发送不对
发送的时候要注意下数据发送的时钟沿
[解决办法]
波特率检查了吗?
I2C模块设置成了从收吗?I2C的地址发的对不对?起始位?I2C模块也可以设置成不回ACK/NACK这种模式的。
这些都可能导致通讯失败。