Autor Tema: MCP23017 Y PROTON  (Leído 3652 veces)

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

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
MCP23017 Y PROTON
« en: 07 de Octubre de 2015, 20:56:52 »
BUENAS A TODOS.
ALGUIEN A PROGRAMADO ESTE EXPANSOR DE PUERTOS CON PROTON??? NO CONSIGO HACERLO FUNCIONAR

Device = 16F877A
Xtal 20
Declare Reminders = Off       
Config CP_OFF, DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, PWRTE_ON, WDT_OFF, HS_OSC, BOREN_OFF, WDTE_OFF
Declare Reminders = On
Declare LCD_Type 0
Declare LCD_DTPin PORTD.4
Declare LCD_RSPin PORTD.2
Declare LCD_ENPin PORTD.3
Declare LCD_Lines 4
Declare SDA_Pin PORTC.4
Declare SCL_Pin PORTC.3
Declare Slow_Bus yes
Declare All_Digital true     
Declare PortB_Pullups = 1

Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim d As Byte

Symbol leer=%01000001     
Symbol grabar=%01000000     
Symbol led=PORTD.0

TRISA = 0
TRISB = %00001111
TRISC = 0
TRISD = 0
TRISE = 0
'********************************
PORTA = 0
PORTB = 0
PORTC = 0
PORTD = 0
PORTE = 0
Cls
DelayMS 10
High led
Print At 1,1,"hola"
DelayMS 100
Low led
Cls
configura:

        BStart
        BusOut grabar,0,[%11111111]     
        DelayMS 15
        BusOut grabar,1,[%00000000]     
        DelayMS 15
        BusOut grabar,2,[%00000000]     
        DelayMS 15
        BusOut grabar,5,[%10101010]       
        BStop
inicio:
        BStart
        BusOut grabar
        BusIn leer,0,[a]
        DelayMS 15
        BusIn leer,11,
        DelayMS 15
        BusIn leer,5,[c]
        DelayMS 15
        BusIn leer,15,[d]
        DelayMS 15
        BStop                             
        Print At 1,1,Bin8 a
        Print At 2,1,Bin8 b
        Print At 3,1,Bin8 c
        Print At 4,1,Bin8 d
        GoTo inicio
End


TENGO ESTE PROGRAMA PARA INTENTAR LEER VARIOS REGISTROS DE CONFIGURACION PERO NADA ,AL LEER LOS VALORES ESTAN TODOS EN CERO. NO CONSIGO HACARLO FUNCIONAR. ALGUIEN PUEDE AYUDARME??????? GRACIAS

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2059
Re: MCP23017 Y PROTON
« Respuesta #1 en: 07 de Octubre de 2015, 23:01:31 »
Viendo tu codigo me parece que debes colocar por cada byte a escribir o leer del mcp23017, la siguiente secuencia:
bstart  BusOut grabar,x,[%xxxxxxxx]   bstop, esto debes hacerlo por cada byte enviado o leido.

Saludos

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re:MCP23017 Y PROTON
« Respuesta #2 en: 09 de Octubre de 2015, 15:27:46 »
BUENAS HE PROBADO LO QUE ME DICES PERO NO FUNCIONA... NO CONSIGO ESTABLECER COMUNICACION....

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2059
Re:MCP23017 Y PROTON
« Respuesta #3 en: 09 de Octubre de 2015, 18:42:05 »
Ok lo probe con el simulador y funciona fino, el siguiente programa lee el GPIoA.  :mrgreen:

Código: [Seleccionar]
BStart
        BusOut grabar,0,[%11111111]     
        BStop 

        BStart
        BusOut grabar,1,[%00000000]     
        BStop
       
        BStart
        BusOut grabar,2,[%00000000]     
        BStop

        BStart
        BusOut grabar,5,[%10101010]       
        BStop

Citar
BStart
        BusOut grabar, $12     'aqui indico el registro del GPIOA que quiero leer
        BStop

        BStart
        BusIn leer,[a]    'el valor del puerto GPIOA es almacenado en a.
        BusNack            'importante este Nack no lo quites
        BStop

Pruebalo asi, a ver yo lo tengo hecho en C y funciona fino, de momento no tengo el proton a la mano asi que avisame y pruebo con el.

Saludos
« Última modificación: 09 de Octubre de 2015, 20:11:47 por RALF2 »

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re:MCP23017 Y PROTON
« Respuesta #4 en: 10 de Octubre de 2015, 21:05:38 »
Buenas....
Pues a mi no me funciona no se que hago mal. simplemente programo lo mas sencillo para que me encienda el puerto A y nada...

configura:
        BStart
        BusOut grabar,10,[%1010011]
        DelayMS 5
        BStop
        BStart
        BusOut grabar,0,[0]  'puerto a como salidas
        DelayMS 5
        BStop
inicio:
        BStart
        BusOut grabar,9,[%11111111]
        DelayMS 5     
        BStop
        GoTo inicio
End


se supone que esta configurado en modo 8 bit y en modo no secuencial.. no consigo que funcione en proteus....

Gracias por tu ayuda.. a ver si me das alguna idea mas... te lo agradezco

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re:MCP23017 Y PROTON
« Respuesta #5 en: 11 de Octubre de 2015, 16:48:41 »
por cierto el busnack para que lo utilizas???????

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2059
Re:MCP23017 Y PROTON
« Respuesta #6 en: 11 de Octubre de 2015, 22:39:41 »
por cierto el busnack para que lo utilizas???????
Se emplea para indicarle al esclavo que finalizo la lectura de datos, dame chance y mañana a penas me desocupe te paso las correciones.

Saludos

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re:MCP23017 Y PROTON
« Respuesta #7 en: 12 de Octubre de 2015, 10:21:42 »
HOLA DE NUEVO. YA LO HICE FUNCIONAR. PERO CREO QUE ALGO N0 DEBO DE TENER BIEN DEL TODO PORQUE AL SIMULARLO CON PROTEUS ME DA UNA SOBRECARGA DE LA CPU.... POR CIERTO HAY OTRA COSA RESPECTO A LA COMUNICACION I2C QUE NO CONSIGO ENTENDER NI HACER FUNCIONAR. EN PROTON ENTIENDO QUE SE USA BSTART BUSOUT ETC CUANDO EL MICRO NO TIENE MODULO MSSP INTERNO PERO EN MI CASO UTILIZO EL PIC16F877A QUE SI LO TIENE PERO SIN EMBARGO NO SOY  A HACERLO FUNCIONAR SI UTILIZO LOS COMANDOS HBSTART HBUSOUT ETC.. SABES PORQUE ES ESO??? HAY QUE CONFIGURAR ALGO MAS???
Declare SDA_Pin PORTC.4
Declare SCL_Pin PORTC.3

GRACIAS
« Última modificación: 12 de Octubre de 2015, 17:35:37 por krizpin »

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2059
Re:MCP23017 Y PROTON
« Respuesta #8 en: 12 de Octubre de 2015, 21:19:58 »
Disculpa la tardanza krizpin he estado muy ocupado y tengo mucho tiempo sin programar en proton  :D
Pero ya te lo resolvi asi:

Código: [Seleccionar]
Device = 18F252
    Xtal = 4
               
                Config_Start
                   OSC = XT             ; XT
                   OSCS = OFF           ; Disabled
                   PWRT = On            ; Enabled
                   BOR = OFF            ; Disabled
                   BORV = 42            ; 4.2V
                   WDT = OFF            ; Disabled
                   CCP2MUX = OFF        ; Disable (RB3)
                   STVR = OFF           ; Disabled
                   LVP = OFF            ; Disabled
                   Debug = OFF          ; Disabled
                   Cp0 = OFF            ; Disabled
                   CP1 = OFF            ; Disabled
                   CP2 = OFF            ; Disabled
                   CP3 = OFF            ; Disabled
                   CPB = OFF            ; Disabled
                   CPD = OFF            ; Disabled
                   WRT0 = OFF           ; Disabled
                   WRT1 = OFF           ; Disabled
                   WRT2 = OFF           ; Disabled
                   WRT3 = OFF           ; Disabled
                   WRTB = OFF           ; Disabled
                   WRTC = OFF           ; Disabled
                   WRTD = OFF           ; Disabled
                   EBTR0 = OFF          ; Disabled
                   EBTR1 = OFF          ; Disabled
                   EBTR2 = OFF          ; Disabled
                   EBTR3 = OFF          ; Disabled
                   EBTRB = OFF          ; Disabled
                Config_End
   
        Declare Hbus_Bitrate 400
        TRISC =0
       
Confif_MCP23017:
                HBStart
                HBusOut $40,0,[%00000000]
                HBusOut $40,1,[%00000000]
                HBusOut $40,5,[%10101010]
                HBStop
               
Inicio:
                Dim i As Byte
               
                For i= 0 To 15
                    HBusOut $40,$12,[i]
                    DelayMS 500
                Next
                HBStop
                   
                While 1=1               
                Wend 

Probado en el proteus y funciona fino!

Saludos

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re:MCP23017 Y PROTON
« Respuesta #9 en: 14 de Octubre de 2015, 15:29:37 »
HOLA.
MUCHAS GRACIAS POR TU RESPUESTA Y AYUDA VOY A PROBARLO AHORA MISMO... Y DE PASO EL HBUSIN HBUSOUT ETC QUE ME FALTABA POR PONER LA LINEA DE DECLARE AL PRINCIPIO DEL PROGRAMA.
UN SALUDO

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2059
Re:MCP23017 Y PROTON
« Respuesta #10 en: 14 de Octubre de 2015, 18:28:50 »
Ok ya lo tienes resuelto  :mrgreen:

Saludos