多谢指正,的确是 A/D, 不是 D/A, 我打错了。
内部采样频率是 8K (raw), 1K(digital filtered).
然后在 I2C 上实际的采样频率是:
Fsample = Finternal/(divider + 1).
MCPX 使用 divider == 1, Finternal = 1K
所以 Fsample = 1K/(1+1) = 500Hz.
我帮你把 ITG3200 Sample rate divicer 那部分贴
出来,里面有讲这个公式的。顺便说一下, I2C 只有
400K,不够读 8K 的 raw sample rate。因为每次
要读 8 byte, 有四个参数,xyz + 温度。加上地址线
和 NACK/ACK, 每次读大概 80 bit 的信息。8K raw
需要 80x8K= 640K 以上的 I2C 才有可能完全读出来
没有丢数据,这个还没有考虑芯片相应 I2c 的延时。
Register 21 – Sample Rate Divider
This register determines the sample rate of the ITG-3200 gyros. The gyros outputs are sampled
internally at either 1kHz or 8kHz, determined by the DLPF_CFG setting (see register 22). This
sampling is then filtered digitally and delivered into the sensor registers after the number of cycles
determined by this register. The sample rate is given by the following formula:
Fsample = Finternal / (divider+1), where Finternal is either 1kHz or 8kHz
As an example, if the internal sampling is at 1kHz, then setting this register to 7 would give the
following:
Fsample = 1kHz / (7 + 1) = 125Hz, or 8ms per sample
原帖由 拉菲 于 2012-8-16 16:18 发表
首先是A/D,不是D/A。 其次你读的2ms是在哪里读的?采的I2C信号? ITG 3200的内部采样频率有2种可以设置一种是8k。另一种是1K. |