This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] EK-TM4C123GXL:EK-tm4c123gxl-bootstxl-senshub compdcm_mpu9150示例中断时序不规则。

Guru**** 2538950 points
Other Parts Discussed in Thread: ENERGIA

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/826849/ek-tm4c123gxl-ek-tm4c123gxl-boostxl-senshub-compdcm_mpu9150-example-interrupt-timing-irregularity

器件型号:EK-TM4C123GXL
主题中讨论的其他器件:Energia

您好!

我开始重新排列 compdcm_mpu9150示例、注释掉器件和代码的不相关器件、尝试更改传感器速度。 我使用引脚 PB_2上的示波器测量传感器速度。

我注意到的一件事是、这些中断的时序并不总是相同的时间量。 有些需要更长的时间、有些需要更短的时间、范围为%1-%3。 我要附上示波器输出的视频。 我能够更改 mpu9150的采样速度、并尝试了500Hz 和250Hz、但都有相同的问题。 中断时间不相等。

为了使 compdcm 算法正常工作、读取时间必须相等。 这是您可能引入到滤波系统的最坏类型的误差。 这是因为 mpu9150、还是因为示例中中断的处理方式:

//由 NVIC 作为 GPIO 端口 B 中断事件的结果调用。 对于这个
//应用程序、GPIO 端口 B 引脚2是 MPU9150
void IntGPIOb (void){的中断线

无符号长整型 ulStatus = GPIOIntStatus (GPIO_PORTB_BASE、TRUE);

//清除设置的所有引脚中断
GPIOIntClear (GPIO_PORTB_BASE、ulStatus);

if (ulStatus & GPIO_PIN_2){
// MPU9150数据已准备好检索和处理。
MPU9150DataRead (&g_sMPU9150Inst、MPU9150AppCallback、&g_sMPU9150Inst);
}
} 

我认为该 ISR 的作用过大。 我尝试设置并使用布尔标志、并在 while 循环中执行 MPU9150DataRead、但它不起作用、因为当我执行此操作时、中断无法清除。

我几乎确定这种时序不规则性是因为 ISR、但我无法精确定位。

此致、

C.

e2e.ti.com/.../IMG_5F00_6248.MOV

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很遗憾、我无法观看您的视频。 只需通过两个采样的 GPIOB[2]和 I2C 总线的示波器截图即可。 我不认为中断例程会影响来自 MPU9150的请求的时序、除非您使转换速率比 I2C 能够传输数据更快。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已将视频上传到:vimeo.com/352668503

    示波器击穿是 i2c 总线即将推出。 我还会将 mpu9150连接到另一个运行类似代码的 MCU (Arduino)、并查看其行为是否相似。

    BTW、当您将视频或视频链接发布到此论坛软件时、它会尝试嵌入内容、但无法正确执行、这就是视频不可见的原因。

    此致、

    CAN

    https://vimeo.com/352668503

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否有 Arduino 板的结果?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否能够识别 MPU9150响应中的抖动源?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我没有听到您的反馈、因此我认为您已经解决了这个问题。 如果没有、请回复此帖子或提出相关问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    不能、我无法找到抖动源、也无法使用 Arduino 检查抖动。

    我还搬到了一个新的传感器 FXOS8700 + FXAS21002、首先在 Energia 中绘制了一张草图、使用 ROS 验证了结果、现在我将使用(计时器中断)在 CCS 中再次写入它。 我成功使用了 github.com/counterwound/fxas21002c