Closed janeczku closed 3 years ago
Because the DMP is doing an actual calculation, I suspect that the hardware that provides the Quat can only run at at a certain speed. Hence the limitation. (But, given recent history, I wouldn't be surprised if this limit is arbitrary)
OTOH, I'm super-interested in seeing if I could circumvent the FIFO entirely in favor of a register-read operation! It would solve quite a few issues I'm having with the DMP itself.
how to read dmp values and what are DMP register address......pls help me
Not to resurrect and old thread, but configuring the MPU6500 in my MPU9250, I did get DMP FIFO rates that I did not expect based on all library implementations I have seen. Following are DMP sampling frequencies when setting gyro to 1kHz (DLPF_CFG to 0x01) since I read in the datasheet that DMP would not function if there was an 8kHz sampling rate, which is default for gyro. Note that accel sampling rate is 1kHz by default.
div hz_expected hz_actual 0 200 800 1 100 400 3 50 200 4 40 160 7 25 100 15 12.5 50
Therefore, you can see that the rate I got was 4x what I expected. I accounted for this in my code, and things seem to work fine, but it is a bit unsettling why this seems to contradict what I have seen for MPU6050 libraries, as well as what Sparkfun has for their MPU9250 (MPU6500) library.
Closing ancient issue for cleanup.
Hello everyone,
In MPU6050_6Axis_MotionApps20.h it is stated that the FIFO output rate configured by the inv_set_fifo_rate byte has a hard-limit of 200Hz.
This is contrary to the MPU 6050 documentation, which says that
So isn't it true that _inv_set_fiforate is rather a divider of the Sample Rate (SMPLRT_DIV) and not an absolute value? And thus by setting SMPLRT_DIV and inv_set_fifo_rate to 0x00, we could indeed get DMP data at 1KhZ?
The MPU 6050 library included in the Arducopter project, implies just that: https://github.com/diydrones/ardupilot/blob/master/libraries/AP_InertialSensor/AP_InertialSensor_MPU6000.cpp
Secondly, could the FIFO be circumvented, by reading the fused data directly from the DMP register? The documentation suggests, that this would be possible: http://invensense.com/mems/gyro/documents/PS-MPU-6000A.pdf, p.25: