08-01-2019 01:09 AM
I have a problem with the BMI085, using your github drivers I put together a simple test program that prints out synchronized data using interrupts. This worked fine.
Then I transferred the driver and setup code over to a larger application (without changes) and now the setup doesn't work. It appears to be doing everything correctly but I get no interrupts from the BMI085 (verrified with a logic analyzer). I used the logic analyzer to capture the entire setup transaction from both programs and they are identical except for one exchange early on which seems to reference registers I can't find documentation for. I think this is happening when it is uploading the synchronization config file.
In the application that works right, I see this on the SPI
Packet ID MOSI MISO
11 0x5E 0x5E
11 0xC8 0x40
11 0x2E 0x00
12 0x5B 0x00
12 0x01 0x00
In the one that fails I see this
Packet ID MOSI MISO
11 0x5E 0x5E
11 0xC8 0xC8
11 0x2E 0x2E
12 0x5B 0x08
12 0x01 0x00
These appear to be writing registers at 5E and 5B and getting back different results. Everything else sent to/from the chip is identical for both programs.
Any ideas on what this is? I'm still digging into it. The code on both setups are the same but the timing of the SPI transactions is probably slightly different between the two programs. The larger program (that fails) has some background tasks going like WiFi and such.
I can send more details if that would help.
Greg
Solved! Go to Solution.
08-09-2019 11:28 PM
Please also note thebmi08xdev.read_write_len when download the configuration string. This will also affect the download timing.