Usando pines GPIO como pines I2C de software y encontrando el valor analógico de esos pines

-1

Estoy usando el microcontrolador AT32UC3C que tiene 64 pines. Estoy usando gpio pin PB01 como SCK y gpio pin PA04 como SDA y marcando manualmente alto y bajo. Estos pines se configuran como GPIO_OPEN_DRAIN y GPIO_DIR_OUTPUT. He conectado este controlador al sensor MPU9150 que conecta el pin PB01 a SCK y PA04 al SDA del sensor. Lo que observé en el osciloscopio es cuando leo los valores del acelerómetro del MPU9150, el alto voltaje de la línea SDA es 3.3V y el bajo voltaje es 0.24V. Pero cuando veo el voltaje en la línea SDA al acceder al magnetómetro de MPU9150, el valor más bajo sube a 1.68V. El sensor está enviando datos y confirmando al microcontrolador, pero el microcontrolador no trata a 1,68 V como lógica baja. Así que todos los valores de registro se leen como 1. ¿Puedo resolver el problema sin cambiar el hardware? Quiero decir que si defino un nuevo valor de umbral para nivel lógico alto y nivel lógico bajo y digo que si el voltaje está por encima de 2 V, considérelo como lógico alto. ¿Es posible.

La hoja de datos de AT32UC3C dice:

PIN__GPIO__PIN TYPE

pregunta Kuldeep Soni

1 respuesta

1

Necesitaría un esquema para verlo con seguridad, pero mi primera sospecha es que tiene resistencias series en las líneas I2C de MPU9150. He visto esto en un esfuerzo equivocado para abordar los posibles problemas de EMI. I2C no debería tener resistencias en serie; Es una velocidad de borde muy lenta y con una recuperación lo suficientemente fuerte es posible que la resistencia de la serie tenga una resistencia lo suficientemente alta y una caída de voltaje suficiente para causar este problema.

Si puede pegar un esquema que incluya AT32, MPU9150 y TODO conectado a los pines I2C, definitivamente podemos ayudarlo con esto. No es necesario intentar hacer I2C con las funciones de comparador analógico en el microcontrolador, aunque admito que esta es una solución novedosa para su problema.

    
respondido por el akohlsmith

Lea otras preguntas en las etiquetas