Autor Tema: Esclavo I2C  (Leído 1759 veces)

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

Desconectado pic_gtv

  • PIC10
  • *
  • Mensajes: 19
Esclavo I2C
« en: 02 de Enero de 2008, 10:19:34 »
Buen@s Grupo

Tengo un problema con la comunicacion de dos PIC 18F8722 por I2C (RC3 y RC4), uno como maestro y otro como esclavo. El problema es que en el esclavo se genera la interupcion, se descarga la dirrecion pero no los datos que envio.
 
En el programa del Maestro utilizo el siguiente codigo

Actualiza_Pic_2:
Select C_Con                        ' Segun la Secuencia de Comunicacion
    Case 0                          ' Envia Fecha
        HBusOut %00000001,0,[Amo,Mes,Dia]
       C_Con = 1
    Case 1                          ' Envia Hora
        HBusOut %00000100,1,[Hora,Minuto,Segundo]
       C_Con = 0
    Else Case
        C_Con = 0                   ' Inicializaza
End Select
Return

La Rutina de Int del Esclavo es

Interrupcion:
Context SAVE                            ' Salva Registros Antes de Interrupcion
If PIR1.3 = 1 Then                      ' Interrupcion Canal 1 I2C
    Repeat                              ' Repite mientras este lleno el Buffer
    If SSP1STAT.5 = 0 Then              ' Entro Dirrecion
        Cnt_I2C = 0                     ' Inicializa Contador
        Aux_I2C[Cnt_I2C] = SSP1BUF      ' Lee Dirrecion
    Else
        Inc Cnt_I2C                     ' Incrementa Contador
        Aux_I2C[Cnt_I2C] = SSP1BUF      ' Lee Valor
    End If
    Until SSP1STAT.0 = 0                ' Espera a Buffer Vacio
    Revisar_I2C = 1                     ' Bandera Revisar Telegrama I2C
    If Cnt_I2C >= 9 Then Cnt_I2C = 0    ' Limite Contador del Buffer
    PIR1.3 = 0                          ' Borra Flanco Interrupcion Bus I2C
End If
Context Restore                         ' Retorna de la Interupcion

Le comfiguracion del I2c del Esclavo es
'++++++++++++++++++++++[Registros del I2C]++++++++++++++++++++++++++++++++++++++
SSP1CON1 = %00110110                    ' Bus I2C como Esclavo 7 Bit
SSP1CON2 = %10000001                    ' Configuracion Bus I2C
SSP1ADD  = %00000010                    ' Dirrecion del Sclavo I2C [2]

Bueno creo que son todos los datos que tengo y espero que sean suficientes.
Gracias por la Ayuda

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Esclavo I2C
« Respuesta #1 en: 02 de Enero de 2008, 22:49:03 »
Pana si quieres puedes llerte en esta pajina unos ejemplos de i2cmaster y i2cslave a ver si te ayudan sino intentaremos ayudarte!

http://www.microengineeringlabs.com/resources/samples.htm