这几天在调ft5x06,刚开始wake线没有拉高,导致I2C设备一直不能响应!!网上的代码也有点坑爹!
现在用了BSP自带的检测函数,可以判断I2C设备有ACK回来。问题就是,我去读I2C设备,读回来的居然是我发出去的I2C设备寄存器的地址。
用示波器抓个波形出来,看你发的设备地址和寄存器地址是否对。这东西很简单就一个电源,一个reset,然后就用I2C读写就可以了。硬件没问题的话多半是你的读写函数有问题。
首先 你得保证器件上电正确,I2C工作正常。
看你描述的是I2C获取的值不正确
这原因有3:
1:器件上电不正确,导致工作不正常。你可以按照手册对比上电、reset时序。
2:I2C通讯的问题,这个你最好用示波器测量,不信任BSP函数。
3:你访问I2C的规则对吗?有些是 器件地址==》寄存器地址==》获取值,而有的是
器件地址==》寄存器地址,然后再:器件地址==》获取值。
希望我的分析对你解决问题有帮助。
如果上电正确、I2C工作正确、器件正常的话 是完全可以正常使用FT5X06的。
我在高通手机平台调试过FT5X06。