最近有个板子,TP使用的是不是i2c总线传输,而是利用的gpio模拟的i2c通信,导致整个移植过程稍显负责,现在记录下碰到过的问题。
问题1.GPIO模拟i2c时,那个adapt一定要重新设置,
因为在传输的过程中,主要还是使用adapter的具体传输方法,所以,不能使用在i2c注册时使用的adapter
问题2.移植GPIO成功了以后,在读取TP的寄存器参数时,读取的数据不一致
因为要读取一个protocol version,后面在解析参数时,会根据这个protocol version去做不同的处理,而读取出来的这个数据,有时为1.4,有时为2.2,并且不同的板子读出的值不一样,按照代码,应该为2.2时,才正常,刚开始我百思不得其解,以为是里面的固件版本不一致,所以我修改了我的代码,加入了1.4时,也同2.2一样的流程,虽然有了正常的读取值,但是我始终觉得不安。后面问了TP的软件FAE,才知道可能是TP的驱动加载得太早,导致TP IC的寄存器内部还没有初始化好,我后面在读取protocol version前,加入了200ms的延时,就没有问题了
问题3.TP能够正常工作后,单体效果很好,整机上快划效果比较差
这个问题出来时,本来按照我的经验,一般是里面的固件效果比较差,要不就是干扰问题,这两个都属于TP的FAE来调试效果,结果他用逻辑分析仪,帮我分析了很久之后,发现我们这边移植的GPIO模拟I2C协议有问题,标准I2C,读取数据时,如果是读取五个