EStimados, los saludo a todos ya que es laprimera vez que escribo en el foro y de paso les cuento un poco lo que estoy haciendo antes de introducir mis dudas.
Estoy tratando de comunicar mediante I2C dos pic´s, uno (PIC18F4550 a 48MHz) y el otro (PIC16F876A a 20MHz) y un tercero que por el momento no me intereza. Una ves que resuelva esto plantearé como seguir con él. (que es idéntico al segundo)
Esta comunicción esta orientada a la comunicación de los parámetros y referencias de dos controladores que manejan diferentes partes de un robot móvil autónomo... ya les contare mas si les interesa....
Ah, los estoy programando en CCS y simulando en Proteus..
Bueno mi problema con la comunicación redica en el momento de pedir un dato al esclavo, este lo envía y luego no se puede hacer nada mas. Mediante el debugger de I2C veo que la primera peticien se transfiere correctamente y si se le vuelve a pedir al esclevo el mismo dato (ya que por el momento solamente envia el 0x21 == 33) ya no reconoce la dirección, ya que aparece un NO_ACK.... ¿?¿? ¿qué puede estar sucediendo??
Los micros involucrados son los de arriba (U1 y U2 en la simulación) y los botones son los dos de mas arriba (ya que son tres) el primero es para pedir desde el maestro un dato y el segundo para enviar un dato al esclavo, que se incrementa en cada pulso.
Adjunto los archivos .c y .h y los del Proteus para que puedan revisarlos ya que me parece mas conveniente que pegar el còdigo acá (lo que además no se hacer).....
Saludos
Guille
PD: creo que se adjunto el archivo, cualquier cosa avisen....
Estoy tratando de comunicar mediante I2C dos pic´s, uno (PIC18F4550 a 48MHz) y el otro (PIC16F876A a 20MHz) y un tercero que por el momento no me intereza. Una ves que resuelva esto plantearé como seguir con él. (que es idéntico al segundo)
Esta comunicción esta orientada a la comunicación de los parámetros y referencias de dos controladores que manejan diferentes partes de un robot móvil autónomo... ya les contare mas si les interesa....
Ah, los estoy programando en CCS y simulando en Proteus..
Bueno mi problema con la comunicación redica en el momento de pedir un dato al esclavo, este lo envía y luego no se puede hacer nada mas. Mediante el debugger de I2C veo que la primera peticien se transfiere correctamente y si se le vuelve a pedir al esclevo el mismo dato (ya que por el momento solamente envia el 0x21 == 33) ya no reconoce la dirección, ya que aparece un NO_ACK.... ¿?¿? ¿qué puede estar sucediendo??
Los micros involucrados son los de arriba (U1 y U2 en la simulación) y los botones son los dos de mas arriba (ya que son tres) el primero es para pedir desde el maestro un dato y el segundo para enviar un dato al esclavo, que se incrementa en cada pulso.
Adjunto los archivos .c y .h y los del Proteus para que puedan revisarlos ya que me parece mas conveniente que pegar el còdigo acá (lo que además no se hacer).....
Saludos
Guille
PD: creo que se adjunto el archivo, cualquier cosa avisen....