He buscado en este foro un poco en lo que respecta a la L3G4200D giroscopio, y no he visto este problema mencionado, pero he visto a otros hablar de ella en otros foros. Estoy viendo a un extraño de gran valor en mi salida cuando el giroscopio es estacionaria. Por desgracia, parece que nadie ha sido capaz de responder a ¿por qué es esto, así que pensé en preguntar
Por lo tanto, estoy recopilando datos desde el giróscopo mediante i2c a 400 khz (modo rápido), recogiendo el giroscopio de datos el uso de varios bytes leídos (seis bytes en un momento). El muestreo de 100 hz (tratado de la parte superior 800Hz), también probé con el filtrado de encendido y apagado en valores diferentes. No estoy usando la interrupción pin, pero estoy usando el 'bloque de actualización de datos de atributos en el GYRCTRLREG4, por lo que los datos no se obtienen hasta que ambos LSB y MSB de leer. Completa 2000dps y no han hecho nada con el FIFO. Me pueden enviar a mi exacta de los valores de registro si ayuda, pero la figura que la mayoría de ustedes no tienen la hoja de datos a mano.
La siguiente imagen muestra mi problema. Los datos de salida es buena, calculado correctamente (a mi conocimiento) y en general, el ruido es muy aceptable. Pero luego me di cuenta de estos molestos "puntos de luz" aparecen de forma aleatoria cuando el dispositivo está en posición estacionaria. Si lo dejo quieto durante un par de segundos me voy a conseguir uno de estos picos, siempre equivale a alrededor de 250-255 (así ~18 cuando se convierte, mediante '(salida * 70) / 1000'). Los picos, como digo, son aleatorios, pueden aparecer en cualquier plano (en la siguiente imagen se puede ver el primer pico en el plano X, el segundo en la Y), siempre alrededor del mismo valor, y uno, dos, o las tres cosas pueden suceder al mismo tiempo. El gran valor es sólo para una sola muestra, a continuación, vuelve a la normalidad.
Vi en otro hilo en algún lugar que yo debería estar usando el bloque de datos de la función de espera en GYRCTRLREG4, como he mencionado antes, pero ningún cambio. He reducido el problema a ser cuando el MSB es cero o mayor, es decir, un número positivo, entonces cuando la MSB y LSB se combinan estoy recibiendo estos números grandes. Por ejemplo, me agarro a los dos bytes necesarios para el plano X, tengo un -6 en la LSB, y un 0 en el MSB, la combinación de ellos, me da 250, a continuación, convertir da (250 * 70) / 1000 = 17.5 dps (es decir, demasiado grande para fijo/incorrecto). En la misma muestra, los dos bytes para la Y el plano son -3 LSB y -1 MSN, la combinación de ellos da -3, y la conversión da -0.21 (es decir, espera/correcto).
En este problema desde hace unos días, yo también estoy viendo un poco de estos picos aleatorios con mi magnetómetro, así que estoy pensando es que me la lectura del dispositivo (a través de i2c) incorrectamente?
Cualquier sugerencia o cosas para probar son muy bienvenidos!