Pas de sauvegarde avec le PCF8583
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Pas de sauvegarde avec le PCF8583



  1. #1
    boy30

    Pas de sauvegarde avec le PCF8583


    ------

    Bonjour, j'utilise un PCF8583 sur ma carte électronique gérée par un PIC 16F876A, j'ai aussi une pile CR2032 connectée sur le RealTimeClock PCF et j'ai un souci de sauvegarde de l'horloge: au démarrage du programme, je lit le PCF, j'affiche, j'attends et si l'heure = 00:00; je lui rentre une valeur dedans et je relis le PCF et je l'affiche, j'ai bien ce que je lui ai envoyé.
    Mais seulement quand j'éteinds le montage avec la pile bien connectée sur le PCF, il fait la même chose, à savoir qu'il m'affiche 00:00 , l'heure qu'il vient de lire dans le PCF, je ne comprends pas pourquoi il n'y a pas de sauvegarde alors même que le Vdd du PCF est à 3V...

    Le schéma:

    Nom : carte_rtc.JPG
Affichages : 113
Taille : 188,7 Ko

    contrôlé par le 16F876A:

    Code:
    ;NEUF		EQU	B'00100000'	; valeur en 7 segments de NEUF
    ;BLANC		EQU	B'11111110'	; pas d'affichage, accès avec 10
    ;LETTRECM	EQU	B'01001110'	; valeur de c en 7 segments accès avec 11
    ;LETTREC		EQU	B'10001100'	; valeur de C en 7 segments accès avec 12
    ;LETTRED		EQU	B'01000010'	; valeur de d en 7 segments accès avec 13
    ;LETTREE		EQU	B'00001100'	; valeur de E en 7 segments accès avec 14
    ;LETTREF		EQU	B'00011100'	; valeur de F en 7 segments accès avec 15
    ;LETTREP		EQU	B'00011000'	; valeur de P en 7 segments accès avec 16
    ;DEGRE		EQU	B'00000000'	; valeur de ° en 7 segments accès avec 17
    
    ; Affiche P C F (blanc)
    	movlw	D'16'		; charger 16
    	movwf	dact1		; dans digit1
    	movlw	D'12'		; charger 12
    	movwf	dact2		; dans digit1
    	movlw	D'15'		; charger 15
    	movwf	dact3		; dans digit1
    	movlw	D'10'		; charger 10
    	movwf	dact4		; dans digit1
    ;***** balayage de l'affichage activé
    	bsf	T1CON, TMR1ON	; mise en route du timer1
    
    	call	tempolong	; tempo longue pour affichage visible quelques instants
    	call	tempolong	;
    
    ;***** balayage de l'affichage désactivé
    	bcf	INTCON,GIE		; désactiver toutes les interruptions
    	bcf	T1CON, TMR1ON	; mise hors service du timer1
    
    ;***** lecture du RTC PCF8583
    	call	lecture_pcf	; va lire le PCF8583
    
    ;***** fonction de mise en forme de l'heure dans les digits
    	call	conv_pcf	; va convertir les données lues
    
    ;***** balayage de l'affichage activé
    	bsf	T1CON, TMR1ON	; mise en route du timer1
    	bsf	INTCON,GIE		; réactiver toutes les interruptions
    	call	tempolong	; tempo longue pour affichage visible quelques instants
    	call	tempolong	;
    	call	tempolong	;
    
    ;***** balayage de l'affichage désactivé
    	bcf	INTCON,GIE		; désactiver toutes les interruptions
    	bcf	T1CON, TMR1ON	; mise hors service du timer1
    
    
    
    ;***** vérification si date différent de 01/01/xxxx 0 H 00 M 00 S 00 1/100 S
    verifdate
    	movlw	0x00		; charge 0 dans w
    	subwf	heure,w		; (heure) - w dans w
    	btfss	STATUS, Z	; saute si = 0
    	goto	verifdateok	; sort de la routine de vérification
    	movlw	0x00		; charge 0 dans w
    	subwf	minute,w	; (minute) - w dans w
    	btfss	STATUS, Z	; saute si = 0
    	goto	verifdateok	; sort de la routine de vérification
    
    ;***** pas à l'heure? => recherche DCF
    						; désactiver toutes les interruptions sauf
    						; timer1 servant à l'affichage
    						; envoyer DCF à l'afficheur
    						; attendre, ...
    						; et envoyer "d" sur un des 4 digits en continu
    						; et désactiver toutes les interruptions pour
    						; ne pas perturber la recherche de l'heure
    						; 
    						; 
    						; recherche DCF terminée?
    						; oui => écriture dans PCF8583
    
    ; pour l'exemple => 18 H 56
    	movlw	D'1'		; charger 15
    	movwf	dact1		; dans digit1
    	movlw	D'8'		; charger 11
    	movwf	dact2		; dans digit1
    	movlw	D'5'		; charger 14
    	movwf	dact3		; dans digit1
    	movlw	D'6'		; charger 10
    	movwf	dact4		; dans digit1
    
    ;***** convertit les données pour les envoyer au PCF8583
    	call	conv_pour_pcf	; va convertir
    ;***** écriture des données "formatées" au PCF8583
    	call	ecriture_pcf	; mettre à jour le PCF8583
    
    ;********************************
    ;*pour test de sauvegarde pcf8583
    	movlw	0x01
    	movwf	dact1
    	clrf	dact2
    	clrf	dact3
    	clrf	dact4
    ;*********************************
    
    ;***** balayage de l'affichage activé
    	bsf	T1CON, TMR1ON	; mise en route du timer1
    	bsf	INTCON,GIE		; réactiver toutes les interruptions
    
    	call	tempolong	;
    	call	tempolong	;
    
    
    ; Affiche P c F (blanc)
    	movlw	D'16'		; charger 16
    	movwf	dact1		; dans digit1
    	movlw	D'11'		; charger 11
    	movwf	dact2		; dans digit1
    	movlw	D'15'		; charger 15
    	movwf	dact3		; dans digit1
    	movlw	D'10'		; charger 10
    	movwf	dact4		; dans digit1
    
    	call	tempolong	;
    	call	tempolong	;
    
    ;***** balayage de l'affichage désactivé
    	bcf	INTCON,GIE		; désactiver toutes les interruptions
    	bcf	T1CON, TMR1ON	; mise hors service du timer1
    
    
    ;***** lecture du RTC PCF8583
    	call	lecture_pcf	; va lire le PCF8583
    
    ;***** fonction de mise en forme de l'heure dans les digits
    	call	conv_pcf	; va covertir les données lues
    
    
    
    
    verifdateok
    ;***** RTC à l'heure => exécution programme principal
    
    premain					; label pour les tests
    	bsf	INTCON,GIE		; réactiver toutes les interruptions
    ;***** balayage de l'affichage activé
    	bsf	T1CON, TMR1ON	; mise en route du timer1
    
    ;***** programme principal
    boucle
    
    	movf	TMR0, w	;
    	btfsc	STATUS, Z	; TMR0 overflow?
    	call	special	; oui =>
    
    ; y a t-il un comptage à faire?
    	btfsc	mode, OPE	; saute si OPE = 0
    	goto	comptage
    
    	goto	boucle	; boucler

    -----
    ....j'ai glissé chef!

  2. #2
    boy30

    Re : Pas de sauvegarde avec le PCF8583

    Quelqu'un a déjà utilisé ce composant?
    ....j'ai glissé chef!

  3. #3
    DAUDET78

    Re : Pas de sauvegarde avec le PCF8583

    Tu peux faire un reset permanent du µC avant de couper le jus ?
    Puis de remettre le jus et de relâcher le reset

    Ca marche ?
    J'aime pas le Grec

  4. #4
    boy30

    Re : Pas de sauvegarde avec le PCF8583

    Oui, j'ai appuyé sur Reset sans le relâcher, j'ai éteint, j'ai rallumé et j'ai relâché le RESET, à l'instant, rien, il me lit toujours 00H00 à chaque démarrage du PIC. Ou bien il y a un problème au niveau de l'écriture ou de la lecture dedans mais je ne pense pas puisque je lis bien ce que je lui ai écrit dedans avant en ayant pris soin d'effacer les variables au format BCD directement liées aux digits pour voir. Ou alors 3V n'est pas suffisant pourtant ils disent sur la datasheet, VDD min = 1V si le bus I²C est inactif...
    Vers où débugger?
    ....j'ai glissé chef!

  5. A voir en vidéo sur Futura
  6. #5
    DAUDET78

    Re : Pas de sauvegarde avec le PCF8583

    Donc je pense que tu as un problème de soft ... et ce n'est plus de ma compétence. Le fait de couper le jus pendant le reset , c'était pour voir si tu n'avais pas d'écriture parasite au power On/Off
    J'aime pas le Grec

  7. #6
    boy30

    Re : Pas de sauvegarde avec le PCF8583

    Ok, au cas où il aurait écrit dans le PCF à la mise sous tension (sans que je le lui dise). Donc il faudrait que quelqu'un examine le code tout entier? Serait-ce possible en ce bas monde ...?
    Dernière modification par boy30 ; 22/04/2013 à 16h35. Motif: oubli pour la compréhension
    ....j'ai glissé chef!

  8. #7
    DAUDET78

    Re : Pas de sauvegarde avec le PCF8583

    Citation Envoyé par boy30 Voir le message
    Ok, au cas où il aurait écrit dans le PCF à la mise sous tension (sans que je le lui dise).
    Non Non ... un µC, c'est con comme un balai ! c'est toi qui fait quelque chose de pas cathodique ....
    J'aime pas le Grec

  9. #8
    boy30

    Thumbs up Re : Pas de sauvegarde avec le PCF8583

    Topic résolu, l'erreur était sous mes yeux depuis le début; je m'attelais bien à vérifier toutes les chronologies des routines I²C et même les sous-routines bas niveau et je n'avais pas vu (sans doute un copié/collé inattentif), que je ne sauvegardais pas la valeur lue dans la variable RAM adéquate mais je l'écrasais par la valeur de la variable elle-même...
    En gros, je faisais:
    movf variable, w ; sauvegarde de w dans (variable)
    alors qu'il fallait;
    movwf variable ; sauvegarde de w dans (variable)
    un bug d'inattention alors que les commentaires étaient bien là.
    Voilà qui pourra peut-être aider pour un futur visiteur de ces pages.
    ....j'ai glissé chef!

  10. #9
    boy30

    Re : Pas de sauvegarde avec le PCF8583

    RE.
    J'ai une autre question concernant ce composant et aux vues des économies d'énergies qu'il faut faire, je ne voulais pas ouvrir un autre topic dessus pour pouvoir économiser de l'espace mémoire dans le serveur futura.
    La question, cependant, porte sur l'année que l'on peut lire dans le PCF8583; elle est modulo 4 par rapport à la précédente année bissextile. Il ne compte que sur 4 ans. Après, obligé de redéfinir sa "première" année bissextile pour qu'il fasse correctement son travail calendaire.
    Mais la RAM qu'a le PCF8583, ne pourrais-je pas y stocker une valeur correspondant à sa première année bissextile d'où il est obliger de compter et, 4 ans plus tard, qu'il incrémente juste cette valeur ou la mette à jour moyennant le code nécessaire.
    En gros, vu qu'il sauvegarde l'heure, la date , etc quand le circuit où il est, est éteint sauf lui, est-ce que sa RAM est aussi sauvegardée quand il est juste alimenté par sa pile de secours?

    Nom : pcf_saved.JPG
Affichages : 74
Taille : 143,6 Ko
    Dernière modification par boy30 ; 05/05/2013 à 22h33. Motif: faute grammaticale
    ....j'ai glissé chef!

Discussions similaires

  1. programme PCF8583 avec le pic16f877
    Par invitefc2c2429 dans le forum Électronique
    Réponses: 10
    Dernier message: 13/03/2013, 11h43
  2. ne peut pas simuler PCF8583 sous ISIS
    Par boy30 dans le forum Électronique
    Réponses: 1
    Dernier message: 14/02/2013, 21h22
  3. Pc Toshiba 660-14q : pas de CD de sauvegarde !
    Par invitef4317b2e dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 24/10/2010, 21h26
  4. programmation de l'heure pic18f252 avec un pcf8583 alim
    Par invite72eaeca6 dans le forum Électronique
    Réponses: 3
    Dernier message: 21/04/2010, 15h17
  5. Plus de sauvegarde avec Ccleaner !!!
    Par inviteb88e7c48 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 05/10/2006, 20h51
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...