BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   Come Impostare Pin Vref 12f683 (https://www.baronerosso.it/forum/circuiti-elettronici/159227-come-impostare-pin-vref-12f683.html)

buby72 12 gennaio 10 14:47

Come Impostare Pin Vref 12f683
 
Ciao a tutti, mi sto cervellando con un 12F683 :blink: , non riesco ad attivare il VREF, è il mio primo lavoro con i pic, sto imparando con il corso di Tanzilli.
Ho impostato come segue:

__CONFIG _FCMEN_ON & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_ON & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

BSF STATUS,RP0 ;BANK 1
MOVLW B'00001011' ;GP3 GP1 GP0 INPUT, IL RESTO OUT
MOVWF TRISIO
MOVLW B'00000011' ;IMPOSTA GP0 E GP1 ANALOGICO
MOVWF ANSEL
MOVLW B'10001100' ;IMPOSTA ATTIVA CVREF,CVREF HI, VR1
MOVWF VRCON
BCF STATUS,RP0 ;BANK0
MOVLW B'01010100' ;IMPOSTA COMP. RIFERIMENTO INTERNO
MOVWF CMCON0
MOVLW B'01000000'
MOVWF ADCON0

END

sul pin GPIO1 dovrei leggere la tensione di riferimento? o sbaglio?

illez 12 gennaio 10 15:01

No,
il pin Vref è di input; puoi selezionare come tensione di riferimento in base alla quale verranno fatte le misure dell'adc o la tensione di alimentazione del pic, o quella fornita sul pin Vref (A1).
Vai a pagina 63 del datasheet e leggi bene :wink:
ciao

buby72 12 gennaio 10 15:50

ok, ora devo andare al lavoro, stasera vedo , a presto grazie. :rolleyes:

buby72 13 gennaio 10 19:25

Ciao ragazzi, ho provato e riprovato a leggere e cercar di capire il datasheet, ma non cavo un ragno dal buco. ho provato a impostare ADCON0, ma non vedo nulla. forse erro nel misurare: dopo aver impostato il VRCON e il COMPARATORE con riferimento interno, la tensione Vref la posso misurare con un tester? Il piedino COUT del comparatore lo imposto come uscita nel GPIO? lo posso leggere con il BTFSS?

MSchiepp 14 gennaio 10 08:58

Citazione:

Originalmente inviato da buby72 (Messaggio 1881809)
Ciao ragazzi, ho provato e riprovato a leggere e cercar di capire il datasheet...

Coraggio riprova! In effetti stai facendo confusione e stai facendo un mix di due cose: il comparatore e il convertitore ADC sono due cose diverse!!!
Tu stai impostando un po' di registri del convertitore e un po' del comparatore.
Nell'ordine:
1) definisci cosa ti serve fare e cosa ti serve usare.
2) Come ti hanno già detto, la tensione di Vref non è disponibile all'esterno.
3) Per comparatore e convertitore le tensioni di riferimento sono diverse: per il convertitore (VRef) puoi solo usarla in ingresso e per il comparatore (CVref) puoi generarla all'interno, ma non puoi farla uscire dal micro.
3) Se vuoi vedere all'esterno l'uscita del comparatore devi usare un'altra configurazione; per leggere lo stato del comparatore devi leggere il bit 6 del registro CMCON0 (vedi 8.4.1 del datasheet).

Facci sapere i progressi...

Michele

buby72 14 gennaio 10 17:07

Eccomi di nuovo, grazie per avermi fatto vedere che mescolo un po' le cose, ho controllato e ricontrollato il datasheet, cosi dovrei aver impostato esattamente:

#include <p12f683.inc>
__CONFIG _FCMEN_ON & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_ON & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
REF EQU 2
BUZZ EQU 5
REED EQU 3
COMP EQU 6
ORG 0x00

BSF STATUS,RP0 ;BANK 1
MOVLW B'00001011' ;GP3 GP1 GP0 INPUT, IL RESTO OUT
MOVWF TRISIO
MOVLW B'00000011' ;IMPOSTA GP0 E GP1 ANALOGICO
MOVWF ANSEL
MOVLW B'10101100' ;IMPOSTA ATTIVA CVREF,VRR HI, Vref 2.5V CON VDD V
MOVWF VRCON
BCF STATUS,RP0 ;BANK0
MOVLW B'00010101' ;IMPOSTA COMPARATORE CON RIF INT
MOVWF CMCON0
START
BCF GPIO,BUZZ
BTFSS CMCON0,COMP
BSF GPIO,BUZZ
GOTO START
END

se non sbaglio variando la tensione all'ingresso del comparatore tramite GPIO0
il BTFSS CMCON0,COMP legge lo stato d'uscita del comparatore?
programmato il pic non ho nessuna variazione. :(

MSchiepp 15 gennaio 10 09:51

Citazione:

Originalmente inviato da buby72 (Messaggio 1883320)
...ho controllato e ricontrollato il datasheet, cosi dovrei aver impostato esattamente:

Stiamo migliorando... metti a zero il registro ANSEL, altrimenti i due ingressi vengono collegati al sample & hold del convertitore!

Michele

buby72 15 gennaio 10 13:56

Grazie Michele, son contento di riuscire a capire qualcosa, ma ancora troppo poco :P .
ho provato a copiare nel registro ANSEL b'00000000' , ho provato con CLRF ANSEL ma il risultato non cambia.
Sto cercando anche che cos'è il collegamento del sample & hold del convertitore.
a prestissimo

MSchiepp 15 gennaio 10 16:02

Scritto così mi sembra giusto e dovrebbe andare; devi controllare alcune cosette:

1) hai programmato i bit di configurazione per abilitare l'oscillatore, il reset e disabilitare il watch-dog?

2) la tensione variabile per far scattare il comparatore deve essere inviata su GPIO1 (CIN-), altrimenti devi settare CMCON0 a 00011101

3) prova a muovere un bit in uscita e a vedere se il micro funziona

4) se guardi il pin GPIO5 devi usare un oscilloscopio, perchè oscilla e con un tester non vedresti niente...

Controlla questi punti e poi ne riparliamo

Michele

buby72 18 gennaio 10 13:54

:hail::hail::hail::hail: onore al merito. cambiato il settaggio di CMCON0.
Mi sono piantato perchè da :azz: POLLO :azz: GPIO1 è il secondo piedino dall'alto del comparatore,io non contavo il Vss quindi il secondo dall'alto è il CIN+. Ho battuto parecchio la testa prima di vedere l'errore, non ho fatto subito quello che mi hai detto perchè ho poco tempo a disposizione. per ora ti ringrazio enormemente. spero di non piantarmi ancora su errori così.
Tempo addietro ho fatto un tiro a segno,interamente progettato da me, avevo utilizzato :asd: 17 ic a porte logiche, ora vorrei farlo con i pic, molto, ma moto meno complicato. ci sentiamo


Tutti gli orari sono GMT +2. Adesso sono le 05:51.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002