The MPU-6500 is an IMU IC from InvenSense/TDK that superseded the (legendary, by now) MPU-6050 IMU IC. Supposedly, the major performance improvement was that it has a sample rate of 32k samples a second, over the earlier 8k/s, (which, itself was only really achievable on the versions of the MPU-6000's that had the faster SPI bus.)
At least, this is what just about every wannabe drone blog small time web site keeps saying. As well as flight controller makers that include this IMU, paired with the higher end STM32s, like the F4 or F7.
Edit: I've been asked to provide sources to this claim.
- (well known multi-rotor blogger) https://oscarliang.com/flight-controller-explained/
- (retailer, creator) https://www.readytoflyquads.com/flip32-f4-battle-edition
- (some copy-paste) https://blog.dronetrest.com/inertial-sensor-comparison-mpu6000-vs-mpu6050-vs-mpu6500-vs-icm20602/
- (who's to say who was first) https://quadmeup.com/mpu6000-vs-mpu6050-vs-mpu6500/
I, however, am not seeing much to support this claim in the actual datasheets for said devices.
There are a few places where sample rate is mentioned in the datasheet:
- First is in the "Gyroscope Specifications" table, where it says the "output data rate" has a maximum of 8k.
- Next is in section "4.6 Three-Axis MEMS Gyroscope with 16-bit ADCs and Signal Conditioning" where it specifically states the maximum ADC sample rate is 8k.
- There is also "Table 4. A.C. Electrical Characteristics" which mentions that there maybe IS in fact a potential 32kHz sample rate setting, but it is a little brief.
To add insult to injury, there is also the simple math of it. The data that would need to be transferred is X, Y, Z, angular rate values, as well as X, Y, and Z, acceleration values, where each scalar/value is stored as a signed short/short int (16 bits). This adds up as 16 bits * 6 values, or 96 bits, for one sample for all dimensions and all sensors. To move this out of the IMU and into a MCU at 32k samples a second would require a bit-rate of at least 32k x 96 bits, or just over 3Mbps.
If, however, you look at the specs for the SPI bus for the IMU, the fastest it seems to be able to send data is about 1Mbps at best 1/3 of the required theoretical. This is not factoring in overhead, which probably pushes the practical need up to about 4Mbps. Not looking good here either.
What really is the true useable sample rate for the MPU-6500? Can one put the IMU into a mode where is vomits out ~3Mbps worth of gyro/accel data, or is most of the internet wrong, or reading the wrong part of the story?
Note: there are at least 3 revisions of the datasheet for this IMU, I have checked all and they seem to be consistent with what I have posted above. The links I give are to revision 1.1, and are provided by DigiKey.