¿Por qué todos los registros de sensores de MPU6050 me devuelven 0? ¿Y por qué no puedo escribir a los registros?

0

Me gustaría disculparme antes de comenzar esta pregunta, ya que no tengo el código para escribir aquí, ya que está en mi computadora de trabajo. PERO.. 1) Descubrí que mi módulo GY521 (para MPU6050) se ha interconectado correctamente con la CPU ATMEGA32 que estoy usando.

SDA - > APS

SCL - > SCL

Vcc para CPU, así como GY521 se está encendiendo a 3.3V

2) La interfaz TWI funciona perfectamente. Estoy usando 6 funciones para la Biblioteca TWI.

TWI_START para generar condiciones de inicio

TWI_STOP para generar la condición de parada

TWI_READ y TWI_WRITE para leer y escribir.

TWI_DEVICE_READ para generar un cuadro para leer datos del registro de la dirección del esclavo.

TWI_DEVICE_WRITE para generar un marco para escribir datos en el registro de la dirección del esclavo.

3) Cuando leo el registro de WHOAMI, me devuelve el valor correcto, es decir, 104d o 68h. Soy capaz de escribir en los registros, pero cuando los leo para cumplir con todo lo que tengo, obtengo 0.

4) Después de un minuto de trabajo, descubrí que el estado predeterminado del bit 6 de PWR_MGMT_1 es alto, es decir, en el modo de suspensión. Intenté escribir un nuevo vale en PWR_MGMT_1 pero cuando leo, obtengo el mismo valor predeterminado, es decir, 40 h o 64 d.

Ahora, aquí me gustaría creer que he dado casi toda la descripción que pude pensar, si algo queda fuera, hágamelo saber, por favor.

y agradecería cualquier esfuerzo realizado para resolver mi problema de inicializar el mpu6050, leer y escribir los registros y desactivar el modo de suspensión.

GRACIAS :)

    
pregunta Shreel Chhatbar

1 respuesta

1

Parece que está diciendo que su hardware está bien (pero no ha proporcionado un esquema y una foto de su prototipo) y que su software está bien (pero que no ha proporcionado ningún código). ¡Ambos no pueden estar bien, si tiene un problema! Sin embargo, no ha suministrado suficiente información para un análisis sensato. :-(

Le sugiero que comience a resolver su problema de esta manera:

  • Deja de usar tu propio software.
  • Encuentre un ejemplo de software "conocido en funcionamiento" para acceder al MPU6050 mediante Google: muchas personas han publicado tutoriales, etc.
  • Use ese ejemplo de software (sin cambios) en su hardware.
  • Si ese software funciona, entonces el problema fue su software original.
  • Si ese software no funciona, entonces su hardware tiene un problema (su software podría también tener un problema, pero no puede saberlo en esta etapa).

Utilizando ese "diagrama de flujo", descubrirá dónde comenzar a buscar su problema.

Si tiene un osciloscopio o un analizador lógico, puede ver la E / S en el bus I2C, para confirmar lo que realmente está sucediendo. Parece posible que tenga un problema con su escritura I2C, ya que los datos en los registros parecen no cambiarse después de que piense que ha escrito en ellos.

    
respondido por el SamGibson

Lea otras preguntas en las etiquetas