I2C bus driver issues on VOXL2 SLPI
-
I am developing a driver for an external i2c sensor and using J19 pins 7 & 8. ( SSC_QUP3)
When I start the driver I am doing so like this:
"qshell xm125_evk start -X -b 4"Assuming "SSC_QUP3" is i2c bus 4 (correct me if I am wrong). I am using the external device i2c address correctly in the driver and on another non-voxl platform I can confirm this i2c address with i2cdetect.
When I include the bus number at driver instantiation it will timeout and I won't see any output on mini-dm. However if I leave off the bus # it will start the driver but fail to probe and I get a bunch of read register fails at the voxl-px4 driver level while receiving the following on mini-dm:
[08500/02] 23:37.838 0044:01: SDSP: Error: sns_scp_simple_rw failed 1020 sns_flight_controller_sensor_
Additionally the command will fail after many of these errors and then I will get BARO 0 timeout fails that I don't normally see, which I think is the result of clobbering the onboard baro.
Any tips for dsp i2c driver development would be helpful, especially trying to figure out why when instantiating a bus it times out. I am basing the driver off of the "tf02pro" that is in voxl-px4 currently and then configuring voxl2-slpi default.px4board to include the driver.
-
@brahim Is the code public? Can I take a look?
-
Hey Eric, so I ruled out the dsp as the problem since I am getting the same behavior on an nxp nuttx-flashed board. It appears the external device is the issue as it is not responding to i2c commands. From what I can tell qurt uses the same I2C 'transfer' command at least with the same parameters. It can find the device on the bus when I give the command "qshell xm125_evk start -X -b 4" but probing it appears to be impossible right now.