在 MMA8451 数据手册的寄存器说明表 12 中,FIFO 自动递增地址的寄存器映射显示,当读取 OUT_Z_LSB 寄存器 0x06 时,它会自动递增回状态寄存器 0x00。
我们对 FIFO 进行脉冲串读取,自动递增整个 FIFO 的 32 个采样数据。
根据以前在另一家制造商类似产品上的工作经验 我假定先进先出自动递增功能的操作如下:
(a) 先读取最早的样本 X_MSB、X_LSB、Y_MSB、Y_LSB、Z_MSB、Z_LSB,然后读取下一个样本 X_MSB、X_LSB、Y_MSB 等。
从 X_MSB 开始阅读数据表
(b) 它将执行 X_MSB、X_LSB、Y_MSB、Y_LSB、Z_MSB、Z_LSB、STATUS,然后执行下一个采样 X_MSB、X_LSB、Y_MSB、Y_LSB、Z_MSB、Z_LSB、STATUS......等。
我的缓冲区数据显示,它是按照 (a) 运行的,并不像数据表显示的那样自动递增回寄存器 0x00
否则,我的数据就会出现混乱,缓冲区中每隔 7 个位置就会出现一个状态数据,而不是轴数据。
该产品已经过广泛测试,根据数据表,它根本不可能工作。
问题能否确认将寄存器 0x06 自动递增到 0x01 或 0x00 的操作?
致约翰-坎贝尔
嗨,约翰、
你说得对,启用 FIFO 后,寄存器 0x06 的自动递增地址是 0x01,而不是 0x00。
我们将在下一次数据表修订时更正。
顺祝商祺!
托马斯