In MMA8451 datasheet Register Descriptions Table12 Register map for the FIFO auto-increment address it shows that when you read the OUT_Z_LSB register 0x06 it auto increments back to the status register 0x00.
We are doing a burst read of the FIFO autoincrementing through the full 32 sample FIFO data only
Based on previous work with a similar product from another manufacturer I had assumed that with autoincrement of the FIFO it operated as follows:
(a) Read oldest sample X_MSB,X_LSB,Y_MSB, Y_LSB, Z_MSB, Z_LSB then next sample X_MSB,X_LSB, Y_MSB etc...
Reading the datasheet if you started with X_MSB
(b) it would do X_MSB,X_LSB,Y_MSB, Y_LSB, Z_MSB, Z_LSB, STATUS then next sample X_MSB,X_LSB, Y_MSB, Y_LSB, Z_MSB, Z_LSB, STATUS...etc
My buffer data shows that it operates as per (a) and doesn't autoincrement back to Register 0x00 as the datasheet shows
Otherwise my data would be scrambled with every 7th location in the buffer having status data rather than axes data
The product has been extensively tested and going on the datasheet it could never have worked.
Question: Can you confirm the operation of autoincrement from Register 0x06 back to 0x01 or 0x00
regards John Campbell
Hi John,
You are right, when the FIFO is enabled, the auto-increment address of register 0x06 is 0x01, not 0x00.
We will correct it in the next datasheet revision.
Best regards,
Tomas