Autor Tema: Cambiar de Master a Slave en I2C durante la ejecución del PIC?  (Leído 1746 veces)

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

Desconectado facosta.ie

  • PIC10
  • *
  • Mensajes: 3
Cambiar de Master a Slave en I2C durante la ejecución del PIC?
« en: 29 de Noviembre de 2016, 14:37:51 »
Que tal, estoy utilizando el compilador CCS 5.061 y estoy en un proyecto en el que un PIC18F25K80 debe funcionar
como Master y como Slave en momentos determinados. Es posible hacer este cambio en tiempo de ejecución?

Hasta el momento el PIC funciona bien tanto en modo Master como en modo Slave de manera individual pero no consigo
cambiarlo mientras esta corriendo el programa, espero sus comentarios, gracias.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cambiar de Master a Slave en I2C durante la ejecución del PIC?
« Respuesta #1 en: 29 de Noviembre de 2016, 14:40:19 »
Si, imagino que podrias hacerlo. El tema esta en que tenes que protegerte de que nunca ten quedes sin un Master, y que tampoco tengas 2 o mas Masters.

Desconectado facosta.ie

  • PIC10
  • *
  • Mensajes: 3
Re:Cambiar de Master a Slave en I2C durante la ejecución del PIC?
« Respuesta #2 en: 29 de Noviembre de 2016, 14:55:59 »
Me podrían guiar un poco? en CCS sólo existe una instrucción para configurar y es de preprocesador.

#use i2c(SLAVE,ADDRESS=0x16,sda=PIN_C4,scl=PIN_C3,STREAM=DSPIC)
#use i2c(MASTER,sda=PIN_C4,scl=PIN_C3,STREAM=DSPIC)

No existe una función que lo haga después de esto.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Cambiar de Master a Slave en I2C durante la ejecución del PIC?
« Respuesta #3 en: 29 de Noviembre de 2016, 15:16:23 »
Ninguna instruccion directa, Solo las directivas de preprocesador que mostras ( Y que podes poner una sola ). Asi que imagino que deberias modificar los registros a mano para pasarlo a esclavo y viceversa. Rogando que CCS no te agregue alguna instruccion como si fuera maestro y que afecte al uso cuando es esclavo.

En si lo que planteas lo veo enteramente posible. Tal ves mas rebuscado en CCS.

Desconectado facosta.ie

  • PIC10
  • *
  • Mensajes: 3
Re:Cambiar de Master a Slave en I2C durante la ejecución del PIC?
« Respuesta #4 en: 29 de Noviembre de 2016, 15:28:53 »
Se complica un poco lo de modificar los registros a mano ya que al no usar esas instrucciones de preprocesador (#use i2c(..)) tampoco me permite utilizar las otras instrucciones de
I2C  :

      i2c_start();           
      i2c_write(address);   
      i2c_write(position);     
      i2c_write(data);
      i2c_stop();

Gracias por las respuestas.