Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Thermostat
RETRAITE128
Débutant
Débutant
Messages : 60
Enregistré en : août 2021

#1 Message par RETRAITE128 » dim. 9 avr. 2023 17:59

Bonjour,
Je viens vous demander votre aide, j'ai voulu réaliser un thermostat relevé sur la revue Electronique Pratique.
Je ne comprends pas pourquoi celui-ci ne fonctionne pas comme indiqué.
Le réglage de la température de consigne fonctionne correctement, mais hélas lorsque l'on bascule sur l'affichage de la température, celui-ci est figé sur une valeur fixe de 3.5°C.
Parfois, sans savoir pourquoi, la bonne température apparaît, mais si l'on coupe l'alimentation de la carte, nous revenons à la case départ.
Je ne possède hélas pas le fichier source en assembleur, juste celui en .HEX du PIC 16F84.
Le dialogue entre le PIC et le capteur (un DS1621) se fait en I²C.

Je tiens le schéma et le fichier exécutable à votre disposition si vous désirez me venir en aide.

Dans l'attente de vous lire.

Cordialement,

Alain

Thermostat
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#2 Message par paulfjujo » dim. 9 avr. 2023 18:58

bonjour,

Oui, il faut poster le schema associé ... pour esperer avoir une aide .

nota :
quelle est la charge commutée par ce "thermostat" ?
Beaucoup de problemes sont liées aux parasites engendrés par la commuation du relais ... ( si il y a un relais ?)
=> risque de reset MCU .
Aide toi, le ciel ou FantasPic t'aidera

Thermostat
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

#3 Message par Temps-x » dim. 9 avr. 2023 19:52

Bonsoir RETRAITE128, paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message Oui, il faut poster le schema associé ... pour esperer avoir une aide .


:+1: Effectivement, il nous faut le schéma, et le numéro de la revue d'électronique Pratique avec l'année de préférence. :-)

En ce qui concerne le code ça devrait pas trop posé de problème, le seule soucis, c'est que le capteur DS1621 fonction en I2C
et le Pic16F84 ne possède pas de I2C

:roll: Obligé de faire un I2C bit bang

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Thermostat
RETRAITE128
Débutant
Débutant
Messages : 60
Enregistré en : août 2021

#4 Message par RETRAITE128 » lun. 10 avr. 2023 10:41

Bonjour,

Merci pour vos réponses, je vous joints l'article de la revue, et le programme du PIC.

Comme j'avais aussi des doutes sur les parasites possible, j'ai réalisé deux typons avec plan de masse rapproché, ça n'a rien changé.

Pour l'instant le relais n'est pas câblé puisque la température ne s'affiche pas (bloquée à 3.5°C)

Dans l'attente de vous lire,

Alain
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Thermostat
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

#5 Message par Temps-x » lun. 10 avr. 2023 12:18

Bonsoir RETRAITE128, et tout le forum,

Le problème ressemble à une collision sur I2C, ce qui a pour effet de bloquer le programme.

Même si l'auteur se sert du tirage des résistances sur le PORTB pour I2C, je te conseille de faire le test.

mettre une résistance de 10Ko sur RB6 relié au +5 volts
mettre une résistance de 10Ko sur RB5 relié au +5 volts

Puis mettre en fonction...pour les essais retirer le relais

==> A+
Modifié en dernier par Temps-x le lun. 10 avr. 2023 17:21, modifié 3 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Thermostat
gwion
Passionné
Passionné
Messages : 210
Enregistré en : février 2022

#6 Message par gwion » lun. 10 avr. 2023 15:37

Bonjour tout le monde,

Je commencerais par strapper l'inter de commutation en mode affichage de température, histoire de le mettre hors de cause. C'est un excellent candidat comme source du problème puisque ça fonctionne parfois.

Thermostat
RETRAITE128
Débutant
Débutant
Messages : 60
Enregistré en : août 2021

#7 Message par RETRAITE128 » lun. 10 avr. 2023 16:55

Bonjour à vous tous,

J'avais déjà fait l'essai de câbler deux résistance de 10Ko, sans changement.

Pour ce qui est de l'interrupteur, si je le strappe, je suis en mode programmation de la température de consigne, cette partie fonctionne correctement.
L'affichage de la température de la pièce est obtenu inter ouvert.

Merci pour votre aide.

Alain

Thermostat
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2618
Enregistré en : juillet 2016
Localisation : Terre

#8 Message par Temps-x » lun. 10 avr. 2023 17:46

Re

Le mieux, c'est de faire une simulation, Proteus a ce circuit, je vais voir de ce coté là pour faire une simulation.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Thermostat
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » lun. 10 avr. 2023 18:46

bonsoir,


Curieux que ce ne soit pas RA4 utilisé pour SDA I2C
vu que c'est la seul pin avec collecteur ouvert .. pour ecriture/lecture du ACK ou NACK en retour

sur l'I2C , je mets des 2,7K ...en pull up
un analyser logique serait ici le bien venu ..
ou coup d' oscilloscope

un morceau de code pour DS1621 24 ... de 2006 ( :sifflotte: à l'époque j'étais 100% ASM !)

Code : Tout sélectionner


CONFIG_1624
:            ; configures device for CPU operation continuous
    CALL    START
    BCF    STATUS
C
    Movf   DEV_1624
,W
    IORLW    90H
    CALL    OUT_BYTE
    CALL    NACK
    MOVLW    0ACH        
send config information
    CALL    OUT_BYTE
    CALL    NACK
    MOVLW    02H
    CALL    OUT_BYTE
    CALL    NACK
    CALL    STOP
    CALL    _DELAY10
    
RETURN

BEGIN_CNVT:    ; turns on circuitry to begin conversions
    CALL    START
    BCF    STATUS
C
    Movf   DEV_1624
,W
    IORLW    90H
        CALL    OUT_BYTE
    CALL    NACK
    MOVLW    0EEH
        CALL    OUT_BYTE
    CALL    NACK
    CALL    STOP
    CALL    _DELAY10
        
RETURN


MEASURE:
    
CALL    START
    BCF    STATUS
C
    Movf   DEV_1624
,W
    IORLW    90H
    CALL    OUT_BYTE
    CALL    NACK
    MOVLW    0AAH
        CALL    OUT_BYTE
    CALL    NACK
    CALL    START
    BCF    STATUS
C
    Movf   DEV_1624
,W    bit R/W doit etre à 1 pour lecture
    IORLW    91H        
soit 90H 02H +193H
    CALL    OUT_BYTE
    CALL    NACK
    CALL    IN_BYTE        
lecture MSB
    MOVF    I_BYTE
W
    MOVWF    TC_HI        
sauve dans TC_HI
    CALL    ACK
    CALL    IN_BYTE        
lecture LSB
    MOVF    I_BYTE
W
    MOVWF    TC_LO        
sauve dans TC_LO
    CALL    NACK
    CALL    STOP
        
RETURN

 


et ceci pourait etre utile ...
mais ----SDA MUST BE AN OPEN DRAIN PIN----


I2C_M_OpenDrain.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Thermostat
RETRAITE128
Débutant
Débutant
Messages : 60
Enregistré en : août 2021

#10 Message par RETRAITE128 » lun. 10 avr. 2023 20:39

Bonsoir à tous,

Merci de vous intéresser à mon problème.

Je vous joints une photo de l'écran de mon scope pour le signal relevé sur la broche RB6, je ne sais si ça peut vous aider.



Alain
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités