Autor Tema: Comunicar dos pic mediante i2c. ( ¿ En que estoy fallando ? )  (Leído 1282 veces)

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

Desconectado rlcobos

  • PIC10
  • *
  • Mensajes: 14
Comunicar dos pic mediante i2c. ( ¿ En que estoy fallando ? )
« en: 22 de Marzo de 2006, 13:07:00 »


 

Hola foreros,

Estoy intentando conectar dos pic via i2c.

Mejor dicho lo único que necesito es enviar una cadena de un pic a otro. ( He descartado la conexión serie para tenerla libre para otras tareas. ).

La idea es un pic dedicado a correr el programa, las entradas, las conversiones a/d, la conexión serie, etc ...

Y el segundo pic simplemente recibiría un valor via i2c del primero.
En función de este valor activará o desactivará alguno de los 20 relés integrados en la misma placa.

Es la primera vez que trabajo con I2C, lo tengo practicamente funcionando pero los valores que leo en pic esclavo no concuerdan con los que le envío desde el maestro. ( Es más no cambia el valor recibido aunque cambie el que le envío ).

El codigo que utilizo es el siguiente

Maestro

Include "modedefs.bas" " Include serial modes
DPIN var PORTc.4 " I2C data pin
CPIN var PORTc.3 " I2C clock pin
b0 var byte

b0="Q"
pause 10

:loop
I2CWRITE DPIN,CPIN,2,2,[b0]
pause 250
goto loop

end

Esclavo

"valores lcd
DEFINE LCD_DREG PORTD
" Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 0
" Set LCD Register Select port
DEFINE LCD_RSREG PORTb
" Set LCD Register Select bit
DEFINE LCD_RSBIT 5
" Set LCD Enable port
DEFINE LCD_EREG PORTb
" Set LCD Enable bit
DEFINE LCD_EBIT 6
" Set LCD bus size (4 or 8 bits)
DEFINE LCD_BITS 4
" Set number of lines on LCD
DEFINE LCD_LINES 2
" Set command delay time in us
DEFINE LCD_COMMANDUS 2000
" Set data delay time in us


DEFINE LCD_DATAUS 50

Include "modedefs.bas" " Include serial modes

DPIN var PORTc.4 " I2C data pin
CPIN var PORTc.3 " I2C clock pin
B0 var byte

:loop
I2CREAD DPIN,CPIN,2,2,[B0]
LCDOUT $FE,1,"SEÑAL " , b0 , " ", DEC b0
pause 250
Goto loop

end

Cuando intento correrlo siempre me muestra el valor 16 en el lcd.

un saludo y gracias anticipadas

raul l. cobos
 

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Comunicar dos pic mediante i2c. ( ¿ En que estoy fallando ? )
« Respuesta #1 en: 23 de Marzo de 2006, 05:11:00 »
Uno de los errores comunes en el i2C es no tener la misma frecuencia de uno y otro lado.  

Más allá de eso, en que lenguaje estas escribiendo? La verdad no conozco esa sintaxis pero si es basic te sugiero postees en el apartado destinado a tal fin en

http://miarroba.com/foros/ver.php?foroid=8826

Saludos


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything