TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: rferrero en 10 de Noviembre de 2004, 06:02:00
-
Hola a todos. TEngo un sensor SRF08 http://www.superrobotica.com/S320112.htm medidor de distancias vía i2c. El asunto es que consigo escribir perfectamente la dirección del mismo (0xE0), en los registros y los datos correspondientes. El asunto es leer el byte alto y bajo, resultado de la medición.
Tengo el programa en C y he usado las funciones del compilador y nada. Y funciones propias, hechas a partir del funcionamiento del protocolo i2c y tampoco!! Si dejo menos de 65 ms para la realización de la medida, sale -1. Si dejo más, sale 0. Incluso he pasado a C un programa en ASM de www.microcontroladores.com, usando dicho sensor, pero no hay forma!!
Para algunos elementos he visto que, para el pcf8574, había que poner las entradas a nivel alto y demás. Aquí no pone nada.
Alguien sabe a qué puede deberse?? Qué señales del i2c deben controlarse con más atención, pues?? Se debe a tiempos?? Dónde??
MUCHAS GRACIAS. Un saludo.
Rubén.
-
tienes puestas las pull-up en el bus I2C verdad?? Es lo que se me ocurre...
Saludos
-
Gracias! Sí, están puestas.
Me resulta muuuuy extraño. El caso es que leyendo un registro, el 0x00, se tiene el firmware o versión. Y eso lo consigo sin problemas!!! El resultado es 6. Sale bien y sin problema alguno. Pero realizar la medición y demás, nada.
Un saludo.
-
Bueno, pues como no podía ser de otra manera, no funcionaba por una tontería. Había un diodo puesto para inversión de polaridad (por si acaso) y ahí había una caída de tensión, por lo que al micro le llegaban 4.3 V y no leía bien el dichoso sensor. Subí un poco la tensión de alimentación y arreglado.
Gracias! Un saludo.