TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Voladote en 12 de Octubre de 2004, 10:39:00

Título: Problemas con DS1302 y 16F876
Publicado por: Voladote en 12 de Octubre de 2004, 10:39:00
Hola, amigos necesito de su ayuda.
Tengo un problema con la comunicacion entre el DS1302 y el 16F876, solo puedo leer un monton de 0 en pantalla, al principio pense que era el DS1302, pero consegui un programa que funcionaba con el 16F84 y funciona de maravilla. Lleve este programa al 16F876 y sigue el problema.
He probado de todo, cambio de puertos, delays, y todo concuerda con el manual del RTC, tambien pense que era algun falso contacto pero lo pruebo en mismo sitio con el 16F84 y funciona.
Si alguno de ustedes sabe donde puedo conseguir un programa en ensamblador para el 16F876 y el DS1302, o si alguno de ustedes lo tiene, les rogaria hacermelo saber puesto que necesito de forma urgente hacer esta comunicacion.

Saludos y muchas gracias
Título: RE: Problemas con DS1302 y 16F876
Publicado por: escorpion151177 en 28 de Octubre de 2004, 00:12:00
hola Voladote,
                         asi como lo decis es dificil diagnosticar algo. habria que ver el programa pero te digo que si al programa que tenes para el f84 lo pasas directamente al 16f876 es natural que tengas problemas sobre todo con los registros. acordate que en el 16f84 podes crear tus propios registros en la memoria de datos a partir de la direccion 0x0c. para el caso del f876 se trata de un registro mas grande qeu tendrias qeu fijarte en la hoja de datos a partir de qeu direccion podes crear tus registros para no pisar los del propio micro.

por ahora es lo unico que te puedo decir con lo que nos contas...
Título: RE: Problemas con DS1302 y 16F876
Publicado por: gabotronic en 28 de Octubre de 2004, 17:00:00

Tengo que comenzar a trabajar con un PIC16F877 y un DS1302.
Me podrian ayudar con este tema. El conexionado, por ejemplo.

Saludos.
Título: RE: Problemas con DS1302 y 16F876
Publicado por: escorpion151177 en 28 de Octubre de 2004, 22:25:00
hola gabotronic !
                             yo tambien tengo que trabajar con un microcontrolador que se conecte a un DS1302 y ademas a una memoria EEPROM 24CXX.
todabia no lo hice pero te paso la informacion qeu tengo yo, si vos lo probas antes me contas como te fue.....

lo que tengo es el programa en assembler para  conectar un pic16f84 con el ds1302 y poder leer y escribir en el. vos adaptalo para tu micro, es lo mismo...
 el conexionado del ds1302 podria ser asi..


Pin 1: Masa.
Pin 2: Cristal.
Pin 3: Cristal.
Pin 4: Masa.
Pin 5: Pin RB7 del PIC (RESET).
Pin 6: Pin RB6 del PIC (IO).
Pin 7: Pin RB5 del PIC (SCLK).
Pin 8: 5 V.

y el soft te lo escribo a continuacion (no lo adjunto porque me dice que no hay espacio suficiente para hacerlo) espero qeu te sirva...!Giño



;****************************************************
; DS1302.ASM
;****************************************************
LIST P = 16F84
#INCLUDE "P16F84.INC"
TITLE "DS1302.ASM

;******************** DEFINE REGISTROS
W EQU 0
Z EQU 2
PC EQU 02H
STATUS EQU 03H
SEG EQU 10H
MIN EQU 11H
HOR EQU 12H
DIA EQU 13H
MES EQU 14H
AÑO EQU 15H
DIS EQU 16H
NUME EQU 17H
OCHO EQU 18H
DEL1 EQU 19H
TEMP EQU 1AH
DATO EQU 1BH
TREMP EQU 1CH
RARO EQU 1DH

ORG 00H

GOTO START
;-------------- SALE DATA DIR -------------------------
FUERA NOP

S77 BCF PORTA,3
RRF NUME,1
BTFSS STATUS,C ; 0
GOTO S44 ; FUE CERO 1
BSF PORTA,2 ; FUE UNO 1
GOTO S55
S44 BCF PORTA,2 ; DELAY ENTRE BITS 3
S55 BSF PORTA,3
DECFSZ OCHO,1
GOTO S77

RETLW 00

RAMIN MOVLW 8E
MOVWF NUME
MOVLW 00
MOVWF DATO
CALL ESCRI
RETLW 00

;++++++++++++++++++++++++++++++++++++++++++++++
ESCRIBE MOVLW 8E ;rutina de escritura
MOVWF NUME
MOVLW 00
MOVWF DATO
CALL ESCRI




MOVLW 80
MOVWF NUME
MOVLW 80
MOVWF DATO
CALL ESCRI

MOVLW 80
MOVWF NUME
MOVF SEG,W
MOVWF DATO
CALL ESCRI

MOVLW 82
MOVWF NUME
MOVF MIN,W
MOVWF DATO
CALL ESCRI

MOVLW 84
MOVWF NUME
MOVF HOR,W
MOVWF DATO
CALL ESCRI

MOVLW 86
MOVWF NUME
MOVF DIA,W
MOVWF DATO
CALL ESCRI

MOVLW 88
MOVWF NUME
MOVF MES,W
MOVWF DATO
CALL ESCRI

MOVLW 8C
MOVWF NUME
MOVF AÑO,W
MOVWF DATO
CALL ESCRI

MOVLW 8A
MOVWF NUME
MOVF DIS,W
MOVWF DATO
CALL ESCRI

MOVLW 090
MOVWF NUME
MOVLW 0A5
MOVWF DATO
CALL ESCRI

MOVLW 8E
MOVWF NUME
MOVLW 80
MOVWF DATO
CALL ESCRI


RETLW 00

;********** DELAY ENTRE BITS *****************

DEBIT MOVLW 12 ; PARA 9600 BAUDIOS / XTAL DE 4 MEGA HZ.
MOVWF DEL1
X02 CLRWDT
NOP
DECFSZ DEL1,1
GOTO X02
RETLW 00H



;***************************************************
SEOUT MOVWF TREMP ;rutina para salida serial
SWAPF TREMP,1 ; a pc para probar
MOVF TREMP,W
ANDLW 0F
ADDLW 30
MOVWF NUME
CALL SEOUTO
SWAPF TREMP,W
ANDLW 0F
ADDLW 30
MOVWF NUME
CALL SEOUTO
RETLW 00

SEOUTO BCF PORTA,0 ; START BITS
CALL DEBIT

MOVLW 08H ; SIETE BITS
MOVWF OCHO
NOP

S7 RRF NUME,1

BTFSS STATUS,C ; 0
GOTO S4 ; FUE CERO 1
BSF PORTA,0 ; FUE UNO 1

GOTO S5 ; 2

S4 BCF PORTA,0 ; 2

S5 CALL DEBIT ; DELAY ENTRE BITS 3

DECFSZ OCHO,1
GOTO S7

BSF PORTA,0 ; STOP BITS
; CALL DEBIT
CALL DEBIT

RETLW 00H
;=============================================
;caracteres en el string

ASTE MOVLW 2A ; asterisco
MOVWF NUME
CALL SEOUTO
RETLW 00
DOSP MOVLW 3A ; dos puntos
MOVWF NUME
CALL SEOUTO
RETLW 00
SLAT MOVLW 2F ;slat
MOVWF NUME
CALL SEOUTO
RETLW 00
ESPA MOVLW 20 ; espacio
MOVWF NUME
CALL SEOUTO
RETLW 00

;(((((((((( ESCRIBE EN RTC )))))))))))))))
ESCRI BSF PORTA,1
BCF PORTA,1
BSF PORTA,2
BSF PORTA,1
MOVLW 08H ; SIETE BITS
MOVWF OCHO
CALL FUERA
MOVLW 08
MOVWF OCHO
MOVF DATO,W
MOVWF NUME
CALL FUERA
BCF PORTA,1
BCF PORTA,3
BSF PORTA,2
BCF PORTA,2
BSF PORTA,2
RETLW 00H

;((((((( LEE EL DATO DEL RTC ))))))))))

LEE BSF PORTA,1
BCF PORTA,1
BCF PORTA,3
BSF PORTA,2
BSF PORTA,1

STBIT MOVLW 08H ; SIETE BITS
MOVWF OCHO
CALL FUERA
BSF STATUS,5
MOVLW 04 ;2 SALIDA
MOVWF PORTA
BCF STATUS,5
CLRWDT
MOVLW 8
MOVWF OCHO
CLRF NUME ; PARTE CON BYTE EN CERO

S3 BCF PORTA,3
BTFSS PORTA,2 ; LEE DATA SERIAL
GOTO S0
BSF STATUS,C ; 0
GOTO S1 ; FUE CERO 1
S0 BCF STATUS,C ; FUE UNO 1
S1 RRF NUME,1
BSF PORTA,3
DECFSZ OCHO,1
GOTO S3
BSF STATUS,5
MOVLW 00 ;TODAS SALIDAS
MOVWF PORTA
BCF STATUS,5
BCF PORTA,1
BCF PORTA,3
BCF PORTA,2
BSF PORTA,2
RETLW 00H

;************ PARTIDA *************************************************


START BSF STATUS,5
MOVLW 80 ;B7 IN RS232
MOVWF PORTB
MOVLW 00 ;TODAS SALIDAS
MOVWF PORTA
BCF STATUS,5
BCF PORTA,1
BCF PORTA,3

BTFSS PORTB,7
GOTO ESTARYU
MOVLW 00
MOVWF SEG

; DATOS A ESCRIBIR EN EL RTC
;26/04/01 17:35 DIA DE LA SEMANA 04

MOVLW 35
MOVWF MIN

MOVLW 17
MOVWF HOR

MOVLW 26
MOVWF DIA

MOVLW 04
MOVWF MES

MOVLW 01
MOVWF AÑO

MOVLW 04
MOVWF DIS
CALL ESCRIBE



;SI CONECTAS EL PIN RA0 AL UN MAX 232 O UN TR-557
;Y ESTE A UN PC A 9600,8,N
;PUEDES VER LA HORA GUARDADA Y AVANZANDO


ESTARYU MOVLW 7
MOVWF NUME
CALL LEE
MOVF NUME,W
CALL SEOUT
CALL SLAT
CALL RAMIN
MOVLW 0C0
MOVWF NUME
MOVLW 3A
MOVWF DATO
CALL ESCRI
MOVLW 0C2
MOVWF NUME
MOVLW 3C
MOVWF DATO
CALL ESCRI

MOVLW 9
MOVWF NUME
CALL LEE
MOVF NUME,W


CALL SEOUT
CALL SLAT

MOVLW 0D
MOVWF NUME
CALL LEE
MOVF NUME,W


CALL SEOUT
CALL SLAT
CALL ESPA
MOVLW 5
MOVWF NUME
CALL LEE
MOVF NUME,W


CALL SEOUT
CALL DOSP

MOVLW 3
MOVWF NUME
CALL LEE
MOVF NUME,W


CALL SEOUT
CALL DOSP
MOVLW 1
MOVWF NUME
CALL LEE
MOVF NUME,W

CALL SEOUT



CALL ESPA
MOVLW 0C1
MOVWF NUME
CALL LEE
MOVF NUME,W
CALL SEOUT

CALL ESPA
MOVLW 0C3
MOVWF NUME
CALL LEE
MOVF NUME,W
CALL SEOUT
MOVLW 0D
MOVWF NUME
CALL SEOUTO
GOTO START

;****************************************************

END

Título: RE: Problemas con DS1302 y 16F876
Publicado por: Voladote en 29 de Octubre de 2004, 10:20:00
Que hay amigos?

Gracias por su ayuda, al principio tuve problemas con la direccion de memoria, pero aun asi me seguia botando ceros.

En realidad tenia problemas con los tiempos y ya funciono de maravilla. El codigo no lo tengo ahora y tampoco lo puedo publicar aqui porque es muy extenso, si necesitan este codigo haganme llegar su direccion de correo y con gusto se los hago llegar.

Una cosa mas, alguno de ustedes ha trabajado con smart cards?, necesito ayuda con el chip sle 4442, aun no logro hacerla funcionar con el 16F876.

Bueno amigos gracias por su ayuda, y si necesitan de mi escribanme a fjhanna@hotmail.com

Adios
Título: RE: Problemas con DS1302 y 16F876
Publicado por: pocher en 30 de Octubre de 2004, 00:27:00
Yo grabé una SLE 442, desde un PIC y en C.

Para más información sobre smart cards arriba tienes el botón "buscar", púlsalo y pón smart cards como frase de búsqueda (también "buscar en toda la Comunidad"Giño

Un saludo