Autor Tema: duda con funciones de i2c en CCS  (Leído 9709 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: duda con funciones de i2c en CCS
« Respuesta #15 en: 13 de Septiembre de 2009, 18:50:54 »
Yo habia estudiado el bus i2c en circuitos digitales.. pero no me terminaba de cerrar hasta ahora q le puse mano encima jaja.
Jejeje! Si lo mejor es ponerse a trabajar en ello, siempre se aprende mas!
No contesto mensajes privados, las consultas en el foro

Desconectado Trev

  • PIC16
  • ***
  • Mensajes: 115
Re: duda con funciones de i2c en CCS
« Respuesta #16 en: 09 de Enero de 2010, 16:34:54 »
Hola feliz 2010 ,la estructura que dan mas arriba es = en caso de que quiera comunicar dos pic 16f877a?,quiero prácticar y no dispongo de esa memoria que usan aca,mi inquietud es como se determina la direccion del pic q va a ser esclavo,¿es convencional? con las memorias parece que no; vi por ahi q algunas memorias se pueden mandar hasta 4 pines a masa o a alimentacion para jugar un poco con su direccion en el bus,pero con otro pic como es? Grax.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: duda con funciones de i2c en CCS
« Respuesta #17 en: 09 de Enero de 2010, 16:44:53 »
A mi en el proteus si no tengo conectada la memoria se queda colgado el programa  , porque???

Se queda esperando la respuesta??????

Esto solo en proteus!

En la "vida real" no se queda bloqueado y sigue.


Aqui es donde se bloquea
Código: [Seleccionar]
init_ext_eeprom();                                  //Inicializar EEPROM

« Última modificación: 09 de Enero de 2010, 17:08:23 por AKENAFAB »

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: duda con funciones de i2c en CCS
« Respuesta #18 en: 09 de Enero de 2010, 19:02:22 »
En la vida real ase exactamente lo mismo  :5] . y no es que se cuelgue  mas bien pienso que se queda esperando respuesta del bus. :?
Lo que es molesto por que en algún momento pretendí que mi programa me informara si no obtenía respuesta de la memoria, lo cual  no fue posible porque el programa simplemente se congela como si entrara en un bucle esperando respuesta del bus.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: duda con funciones de i2c en CCS
« Respuesta #19 en: 09 de Enero de 2010, 19:23:35 »
En la vida real ase exactamente lo mismo  :5] . y no es que se cuelgue  mas bien pienso que se queda esperando respuesta del bus. :?
Lo que es molesto por que en algún momento pretendí que mi programa me informara si no obtenía respuesta de la memoria, lo cual  no fue posible porque el programa simplemente se congela como si entrara en un bucle esperando respuesta del bus.


Pues a mi en fisico no se bloquea , pero se me hace raro , no veo en las funciones donde este esperando respuesta >_<.
Tambien se bloquea con el RTC en el proteus , pero si lo quito del pcb sigue el programa , no se que ocurra.

Desconectado septiembre_negro

  • PIC18
  • ****
  • Mensajes: 310
Re: duda con funciones de i2c en CCS
« Respuesta #20 en: 09 de Enero de 2010, 19:44:47 »
Mmm pues a mi si se me congelaba. no probé retirando la memoria del bus mas bien intente simular una falla en la memoria desconectando un hilo del bus ya fuera data o clok.
Ahora si en físico si continúa y en proteus no y el programa con el que pruebas es exactamente el mismo pues es fallo es del  simulador al cual no le programaron que hacer si en el bus no hay nada  :D :D :D

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: duda con funciones de i2c en CCS
« Respuesta #21 en: 09 de Enero de 2010, 19:55:36 »
Hola feliz 2010 ,la estructura que dan mas arriba es = en caso de que quiera comunicar dos pic 16f877a?,quiero prácticar y no dispongo de esa memoria que usan aca,mi inquietud es como se determina la direccion del pic q va a ser esclavo,¿es convencional? con las memorias parece que no; vi por ahi q algunas memorias se pueden mandar hasta 4 pines a masa o a alimentacion para jugar un poco con su dirección en el bus,pero con otro pic como es? Grax.

Exactamente, el protocolo es el mismo. El PIC maestro tiene que enviar el bits Start, un byte con la dirección y si se quiere escribir o leer en el esclavo, y después dependerá de la acción a realizar.

CCS para modo esclavo tiene la función i2c_isr_state(), con la cual se puede determinar que operación quiere hacer el maestro sobre el esclavo al recibir una interrupción por recepción de datos I2C.

A mi en el proteus si no tengo conectada la memoria se queda colgado el programa  , porque???

Se queda esperando la respuesta??????

Esto solo en proteus!

En la "vida real" no se queda bloqueado y sigue.


Aqui es donde se bloquea
Código: [Seleccionar]
init_ext_eeprom();                                  //Inicializar EEPROM



Es sumamente extraño que se bloque en esa función, porque solo se establecen los pines SDA y SCL como entrada utilizando la función output_float  :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: duda con funciones de i2c en CCS
« Respuesta #22 en: 09 de Enero de 2010, 20:00:14 »
Proteus sigue con sus fallas en i2c , prueben cambiar la imagen de la eeprom y no lo lograran a menos que eliminen la eeprom y peguen otra y carguen otra vez la imagen >_<.