Lea una IMU 6DOF (Gyro + Acelerómetro) usando PRU - Beaglebone negro

0

Planeo usar una interfaz I2C para leer la IMU (Junta Combo Digital de IMU SparkFun 6 Degrees of Freedom - ITG3200 / ADXL345). Dado que la velocidad de comunicación con I2C es de 400 kHz, pensé que debería usar la PRU para leer el sensor lo más rápido posible, ya que es 40 veces más rápido en la lectura de GPIO en comparación con el kernel del host de Linux.

Ahora mi pregunta es ¿cómo uso I2C para leer el sensor usando PRU? Si la implementación de I2C en PRU es complicada, ¿cuáles son mis otras opciones?

Gracias

    
pregunta priti

1 respuesta

1

Recomendaría encarecidamente utilizar simplemente la biblioteca I2C de beagle bone para hacer esto. La biblioteca debería permitirle configurar la velocidad I2C hasta 400 kHz, lo que también se conoce como "modo rápido".

Una de las cosas a considerar al determinar la velocidad del bus I2C es la cantidad de datos que realmente necesita para moverse a través de él. Si solo va a estar mirando dos sensores como los que conectó, es probable que la velocidad del bus I2C realmente no haga la diferencia. Parece que no puedo encontrar claramente la velocidad de datos para el giro, pero parece que el acelerómetro solo produce datos nuevos a una velocidad de 3.2 kHz. Si utiliza una lectura de múltiples bytes para el dispositivo, incluso a los 100 kHz, lo más probable es que pueda leer los datos más rápido que el dispositivo puede medir un nuevo valor. La ejecución a velocidades más altas comienza a mostrar beneficios cuando tiene muchos dispositivos que se comunican en el bus o dispositivos que operan a una velocidad alta.

    
respondido por el Dave851

Lea otras preguntas en las etiquetas