TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: JUANPIC en 30 de Agosto de 2004, 11:00:00
-
Hola a todos. Quiero conectar una PIC16F876 como Master con otra PIC16F876 como esclava. He hecho una red RS-485 con el MAX 1483, pero no hay manera que me funcione, les he puesto a cada MAX1483 su resistencia de 120 Ohm entre el canal A y B.
En el programa del PIC maestro intento simplemente enviar todo el rato lo que tengo en un puerto hacia el PIC esclavo. Y en el esclavo simplemente hago de receptor todo el rato a la espera de algun dato.
El resultado es que no me va, y necesitaria información tanto de algun soft en asincrono como sincrono half duplex, o de harware.
Necesito ayuda de lo que sea . Gracias.
-
hola Juanpic
para poder saber que es lo que pasa, tendrias que poner el circuito y el programa. Asi te podemos dar mas detalles.
-
Hola de nuevo.
Aquí tienes el programa de la PIC MASTER , y la de la PIC ESCLAVO.
El circuito no se como enviartelo, ya que no funciona eso de enviar ficheros adjuntos, porque te dice que no hay suficiente espacio disponible.
"MASTER"
LIST P=16F876
INCLUDE P16F876.INC
W EQU 0
f EQU 1
ORG 00h
GOTO Inicializa
ORG 05h
Inicializa BSF STATUS,RP0
MOVLW B"00000110"
MOVWF ADCON1
MOVLW B"00000011"
MOVWF TRISA
MOVLW B"00000000"
MOVWF TRISB
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
Ini_UART BSF STATUS,RP0
BSF TRISC,6
BSF TRISC,7
BCF PIE1,RCIE
BCF PIE1,TXIE
MOVLW B"00100100"
MOVWF TXSTA
BCF STATUS,RP0
MOVLW B"10010000"
MOVWF RCSTA
BSF STATUS,RP0
MOVLW 12
MOVWF SPBRG
BCF STATUS,RP0
TORNA MOVF PORTA,W
MOVWF TXREG
BSF STATUS,RP0
TXW_UART
BTFSS TXSTA,TRMT
GOTO TXW_UART
BCF STATUS,RP0
GOTO TORNA
END
"ESCLAVO"
LIST P=16F876
INCLUDE P16F876.INC
W EQU 0
f EQU 1
ORG 00h
GOTO Inicializa
ORG 05h
Inicializa BSF STATUS,RP0
MOVLW B"00000110"
MOVWF ADCON1
MOVLW B"00000000"
MOVWF TRISA
MOVLW B"00000000"
MOVWF TRISB
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
Ini_UART BSF STATUS,RP0
BSF TRISC,6
BSF TRISC,7
BCF PIE1,RCIE
BCF PIE1,TXIE
MOVLW B"00100100"
MOVWF TXSTA
BCF STATUS,RP0
MOVLW B"10010000"
MOVWF RCSTA
BSF STATUS,RP0
MOVLW 12
MOVWF SPBRG
BCF STATUS,RP0
TORNA
RxW_UART BTFSS PIR1,RCIF
GOTO RxW_UART
MOVF RCREG,W
MOVWF PORTA
GOTO TORNA
END
-
Hola, he cambiado algunas cosas del programa MASTER, aki va:
;"MASTER"
LIST P=16F876
INCLUDE P16F876.INC
__CONFIG _CP_ALL & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_ON & _CPD_OFF
W EQU 0
f EQU 1
ORG 00h
GOTO Inicializa
ORG 05h
Inicializa BSF STATUS,RP0
MOVLW B"00000110"
MOVWF ADCON1
MOVLW B"00000011"
MOVWF TRISA
MOVLW B"10000000"
MOVWF TRISC
MOVLW B"00000000"
MOVWF TRISB
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
Ini_UART BSF STATUS,RP0
BSF TRISC,6
BSF TRISC,7
BCF PIE1,RCIE
BCF PIE1,TXIE
MOVLW B"00100100"
MOVWF TXSTA
BCF STATUS,RP0
MOVLW B"10010000"
MOVWF RCSTA
BSF STATUS,RP0
MOVLW D"25" ;con un cristal de 4MHz son 9600bauds
MOVWF SPBRG
BCF STATUS,RP0
TORNA:
TXW_UART BSF STATUS,RP0
BTFSS TXSTA,TRMT
GOTO TXW_UART
BCF STATUS,RP0
MOVLW A"A"
;MOVF PORTA,W
MOVWF TXREG
GOTO TORNA
END
Ha destacar: 


Palabra de configuración (para poder depurar yo correctamente)
carga al SPBRG: he puesto 25 por que tengo un cristal de 4MH y lo quiero a 9600 ok?
Forma de envio: he cambiado la secuencia, primero miro si se puede enviar y luego envio.
Dato a enviar: cargo una A aunque he probado de enviar el PORTA y también va bien.
Trisc: definición de salida el TX
Pruebalo y nos cuentas
P.D. per les etiquetes veig que no estic sol, salut CAT
-
HOLA TOni0, he probado lo que me has dicho, pero me sigue sin funcionar, veo como se enciende el led del TX MASTER pero al cabo de unos 8 segundos se para. Y en cuanto al esclavo no me refleja nada en el puerto.