1.硬件问题
对于扩展芯片的P0组外部上拉(P1只能是PushPull模式,寄存器不可配置),软件上默认状态Open-drain开漏模式,去设置寄存器切换高低电平时,会出现驱动操作I2C返回-6的情况,如果硬件去掉外部上拉,软件上在DTS增加aw9523,p0-output-push-pull;配置项,设置为推拉(推挽)模式则I2C通信正常。
最终,排查到是电平转换问题,1.8V转3.3V的MOS管S和D极对调了,S要接到电压低一端,相应的原理图要改为如下:
2.驱动问题
我们使用的AW9523B驱动从下面这链接获取: