Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Conversion A/D



  1. #1
    Toufinet

    Conversion A/D


    ------

    Bjr, je suis toujours avec mon 16F877.

    Donc j'utilise le convertisseur A/D sur AN0 ( RA0 ).
    Première question : lorsque je configure ADCON1, je luis dis que Vref+ = Vdd, Vref- = Vss. J'ai supposé que configuré ainsi, il n'était pas nécessaire de brancher les pins Vref+ à Vdd, et Vref- à Vss. Faux ?

    Ensuite, j'ai fait plusieurs tests :
    Une résistance de Vref+ à AN0 => CAN = 00 00000000
    Un pont diviseur sur AN0 => CAN = 00 00000000
    Un fil de Vref+ à AN0 => CAN = 11 11111111

    J'en conclus que soit j'ai mal configuré le PIC, soit il y a une impédance nulle sur AN0 (ce qui m'étonnerait fort) .

    Voici la config :

    Code:
                    BANK1
    		movlw	b'00000000'
    		movwf	TRISA
    		movlw	b'10001110'
    		movwf	ADCON1
    		BANK0
    		bcf		ADCON0, CHS2
    		bcf		ADCON0, CHS1
    		bcf		ADCON0, CHS0
    		bcf		ADCON0, ADCS1
    		bcf		ADCON0, ADCS0
    		bsf		ADCON0,	ADON
    D'avance merci

    -----

  2. Publicité
  3. #2
    DavidDB

    Re : Conversion A/D

    Salut,

    Quelle est la valeur de la résistance que tu utilises ?

    De même pour ton diviseur de tension, tu ne peux pas utiliser n'importe quelle valeur pour les résistances...

    David.

  4. #3
    Toufinet

    Re : Conversion A/D

    peux tu expliquer pourquoi ????

    Car là je ne vois vraiment pas !

    Résistances utilisées : 220 Kohms et 100 Kohms

  5. #4
    DavidDB

    Re : Conversion A/D

    Cela ne fonctionne pas avec ces valeurs...

    L'entrée du CAN accèpte MAXIMUM 2.2K

    Ce sont les carcactérisques du CAN qui imposent ces valeurs, elle sont indiquées dans le datasheet.

    C'est pourquoi, il vaut mieux utiliser un AOP monté en suiveur sur l'entrée du CAN si les valeurs des résitances à utiliser ne sont pas compatibles.

    David.

  6. #5
    Toufinet

    Re : Conversion A/D

    ok, j'ai pris note, merci bcp.

    Décidément il est capricieux ce CAN !

  7. A voir en vidéo sur Futura
  8. #6
    Toufinet

    Re : Conversion A/D

    Toujours le même problème ..

    Lorsque je met un fil entre Vdd et AN0, j'ai CAN = 11 11111111
    Lorsque je met un fil entre Vss et AN0, j'ai CAN = 00 00000000

    Lorsque je réalise un pont diviseur comme ceci :

    Vdd -------- R1 ------- AN0 --------- R2 -------- Vss

    avec R1 = R2 = 1 Kohms

    J'obtient CAN ~ 00 00000000
    alors que je devrais théoriquement obtenir ~ 00 00011111

    Que fais-je de pas bien ?

  9. Publicité
  10. #7
    Toufinet

    Re : Conversion A/D

    En lisant un peu mieux la datasheet, j'ai le sentiment d'avoir oublié quelquechose.
    La datasheet dit :
    - configure ADCON1
    - select AD input channel (ADCON0)
    - select AD conversion click ( ADCON0 )
    - turn on AD module (ADCON0)

    - wait the required acquisition time
    - start conversion
    - wait for AD conversion to complete

    Voici mon programme :

    Initialisation :
    Code:
    	BANK1
    	movlw	b'00000000'
    	movwf	TRISA
    	movlw	b'10001110'; right justify, AN0, Vref+=Vdd, Vref- = Vss
    	movwf	ADCON1
    	BANK0
    	bcf	ADCON0, CHS2; selection
    	bcf	ADCON0, CHS1; du input channel
    	bcf	ADCON0, CHS0; AN0
    	bcf	ADCON0, ADCS1; sélection de clock
    	bcf	ADCON0, ADCS0; = Fosc / 2
    	bsf	ADCON0,	ADON; Mise en marche du CAN
    Ensuite, l'acquisition :
    Code:
    ad	bsf	ADCON0, 2;  start conversion
    bt	btfsc	ADCON0, 2;  loop jusqu'à ce que
    	goto	bt;      la conversion soit finie
    suite ...
    Voilà, donc je m'aperçois que j'ai zappé "wait the required acquisition time".
    Qu'es-ce que cet acquisition time ?
    Que faut-il faire ?

  11. #8
    DavidDB

    Re : Conversion A/D

    C'est le temps de chargement du condensateur interne au CAN.

    Il faut donc une boucle d'attente pour charger ce condo avant de lancer la convertion.

    David.

  12. #9
    Toufinet

    Re : Conversion A/D

    erreur(s) trouvée(s)

    1° Utilisant un quartz 14 MHz, il fallait choisir l'horloge = Fosc / 32 et non Fosc / 2
    2° J'ai mis le port A en sortie au lieu d'Entrée :d

    Maintenant tout fonctionne, mci

  13. #10
    DavidDB

    Re : Conversion A/D

    N'oublie pas d'ajouter une tempo pour le chargement du condo...

    Sinon dans 10minutes tu es de retour!

    David.

  14. #11
    Toufinet

    Re : Conversion A/D

    ouep, c'est bon en fait, puisque l'initialisation est bien avant la convertion

Sur le même thème :

Discussions similaires

  1. conversion
    Par haddadou dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 01/12/2007, 09h26
  2. conversion
    Par scholasticus dans le forum Physique
    Réponses: 2
    Dernier message: 29/09/2006, 20h44
  3. conversion
    Par scholasticus dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 09/09/2006, 18h41
  4. conversion
    Par mein gutter dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 08/11/2005, 10h40
  5. Conversion AC\DC
    Par Nickyo dans le forum Électronique
    Réponses: 7
    Dernier message: 11/04/2005, 17h16