大家好,我对一个芯片传输数据,好像数组一大就就报错,数组有9000多字节,传输就报这个错误:[ 9.063047] twi_stop()483 - [i2c1] i2c state isn't idle(0xf8)
[ 9.069504] sunxi_i2c_core_process()845 - [i2c1] STOP failed!
[ 9.076040] sunxi_i2c_do_xfer()998 - [i2c1] incomplete xfer (status: 0x38, dev addr: 0x3b)
[ 9.085342] ##### i2c_transfer addr 0xc000 , ret -70
难道内核对数据大小做了限制?有什么方法解决吗,谢谢。
最近编辑记录 chendong (2023-05-27 20:31:45)
离线
内核有没有限制我也不清楚,但是可以提供一点建议帮助您排查:
1. 是否有逻辑分析仪,抓个波形,解析一下,看是否每次都是在同一个位置 stop 失败?
2. 能否将数据分包多次发送,看是否可以改善?
离线
内核有没有限制我也不清楚,但是可以提供一点建议帮助您排查:
1. 是否有逻辑分析仪,抓个波形,解析一下,看是否每次都是在同一个位置 stop 失败?
2. 能否将数据分包多次发送,看是否可以改善?
都是在那个大数组那个失败,有时候也能过去,失败居多。分包我也试过好像不行,分包第一个包要有寄存器地址和起始信号,但是不能有结束信号,后面的包不能有开始信号。这个咋设置
离线