AnsweredAssumed Answered

ADIS16488 corrupted data

Question asked by Kornilov_Mikhail on Nov 1, 2016
Latest reply on Nov 25, 2016 by NevadaMark

Hello All,

 

I have positive experience with Linux IIO driver on Raspberry PI 2 / 3, but now I'm trying to make it up and running on Intel Edison. Kernel that I'm using: https://github.com/01org/edison-linux/tree/edison-3.10.98

Intel doesn't support Device Tree, so I've hardcoded ADIS driver initialization (7.6 MHz, MODE_3, initialized GPIO pin for DIO1's IRQ usage). No extra patches applied.

I can see proper SPI communication between Edison and ADIS (data-ready, CS, MISO, MOSI signals). SCK speed is around 8 MHz, IRQ rate is 1230 Hz, so everything looks OK.

In my software I configure driver to scan every signal, set the sampling_rate to 1230.0 and start to capture data from /dev/iio:device1 (and it all works perfectly on RPI 2/3).

 

I've applied some graphs where you can see the problem. On the 2nd and 3rd pictures, you can see that signals' samples are corrupted at random time. The 1st picture is diff( driver_timestamp ) and it show unevenness of driver's capturing (system load is under 1% when idle and the ADIS capturing is the only real "worker" here).

 

I have similar results using Gumstix DuoVero (1 GHz, 1 Gb, ARM) and the only common thing between DuoVero and Edison is kernel 3.10 that they're using. I've tried to look into driver's diff with the most recent kernel version, but didn't see any major bugs fixed.

 

What could cause that kind of behavior?

Outcomes