SoloCodigo

Programación Específica => Microcontroladores => Programación en C => Mensaje iniciado por: carmasanto en Lunes 13 de Febrero de 2006, 00:38

Título: Manejo Eeprom 24lc08 Con Pic 16f628
Publicado por: carmasanto en Lunes 13 de Febrero de 2006, 00:38
hola a todos, tengo un problema para escribir y leer la memoria 24lc08.
estoy utilizando la libreria #use i2c(master, sda, scl), y las funciones i/o con el bus i2c que son i2c write(), i2c read(), i2c start, i2c stop, se supone que con esto se debe entablar una comunicacion con la memoria eeprom, pero no hace nada, no hay transmision, no se genera el start ni el stop, si me pudieran ayudar con un ejemplo del codigo de la comunicacion entre el pic y la memoria 24lc08 se los agradeceria. adjunto el programa para que sea revisado
gracias por la atencion prestada.
Título: Re: Manejo Eeprom 24lc08 Con Pic 16f628
Publicado por: lalo_soft en Lunes 13 de Febrero de 2006, 06:22
le instalaste las resistencias externas de pullup a las señales I2C.
Título: Re: Manejo Eeprom 24lc08 Con Pic 16f628
Publicado por: jpaler en Lunes 13 de Febrero de 2006, 17:35
carmasanto... a mi tambien me pasaba lo mismo pero con la eeprom 24LC256
de 32kb...y demore semanas en esa esptupidez, y todo para al final darme
cuenta q era una de las benditas resistencias q mensiona lalo, una de ellas
estaba a tierra, y en realidad debia estar era tirada a 5 voltios.

amigo, segun lo q me paso, te cuento q esas 2 tontas resistencias al parecer son
muy importantes en el bus I2C.

EN CONCLUSION, DEBERIAS REVISAR TODO EL CIRCUITICO.
Título: Re: Manejo Eeprom 24lc08 Con Pic 16f628
Publicado por: Huguen_aus_Tirol en Lunes 13 de Febrero de 2006, 20:46
Hola muchachos! Bien, sin las resistencias, el bus I2C no funciona :(
La linea SDA es drenador abierto (similar a colector abierto), ya que sino no podría ser bidireccional. Por esta línea se transmiten y/o reciben datos de un dispositivo a otro. Por ello es que debemos fijar externamente un nivel mediante una R (10K) a VCC.
En los micros que poseen modulo I2C y soportan el modo multimaestro, la linea SCL tambien es drenador abierto; en estos casos SCL tambien es bidireccional. Es decir que deben llevar la R a VCC.
Bien, resumiendo: siempre conectar una R entre SDA y VCC, y SCL y VCC :)
Con 10K está bien (a mi me funciona!)

Saludos a todos!
Título: Re: Manejo Eeprom 24lc08 Con Pic 16f628
Publicado por: carmasanto en Martes 14 de Febrero de 2006, 02:16
amigos muchas gracias, todos acertaron con la solucion del problema, ya me funciono el programa.
gracias nuevamente. :hola: