Vai al contenuto
PLC Forum


Convertitore A/D ST62 - Volore oscillante


fabmatt

Messaggi consigliati

Sto provando ad utilizzare il convertitore A/D di un ST62E20, ho creato un partitore di tensione con una NTC 100K a 25° ed una resistenza, il valore che vado a leggere (nel nodo tra la NTC e la resistenza)mi oscilla oltre 10°. Siccome è la prima volta che provo questa cosa, sapete come posso riuscire ad avere una buona precisione?

Grazie.

Link al commento
Condividi su altri siti


lemiz+20/11/2006, 01:17--> (lemiz @ 20/11/2006, 01:17)

Ho collegato il +5V ad una NTC, l'altro capo è collegato ad un ingresso del micro ed a un aresistenza, l'altro capo della resistenza è collegato a massa. Faccio la conversione del segnale analogico con il micro e non riesco ad avere un valore costante, cioè oscilla da 20° ad 35°. Nel micro sono collegati dei display, ed i numeri scorrono di continuo.

Come è possibile ovviare a queste oscillazioni del valore letto?

Grazie.

Link al commento
Condividi su altri siti

Per favore aggiungi informazioni come chiede giustamente lemiz

Io controllerei nell'oridne

Riferimento di tensione: è stabile?

Tensione di alimentazione è stabile ?

Connessione di massa: lunga o corta ...

Per il sw guarderei innanzitutto il valore A/D letto dal convertitore non la temperatura ottenuta da un calcolo che potrebbe essere sbagliato.

Aggiungo un'alòtra prova Stacca il sensore NTC e metti una resistenza da 100K al suo posto per avere un ingresso stabile paria 25°C

Modificato: da accacca
Link al commento
Condividi su altri siti

Grazie per queste informazioni, il valore che io leggo, è il valore che mi da il convertitore, perchè avvio la conversione e il valore letto lo mando nel display senza nessuna operazione.

La distanza tra il micro e la NTC sarà circa 1.5m

Per le altre due cose appena esco da lavoro le controllo.

Per il sw, siccome è la prima volta non so se è una cosa errata come ho fatto io, quindi se avete qualche consiglio è ben accettato.

Grazie.

Link al commento
Condividi su altri siti

Ho misurato la tensione di alimentazione, 4,83-4,84V, mentre al pindino di ingresso misuro una tensione di 1,156..1,159. E' possibile che questa piccola oscillazione possa influenzare? Il micro dovrebbe sentire variazioni di 0.02V e non di 0.003.

Grazie.

Link al commento
Condividi su altri siti

leggo dal datasheet

freq oscillatore > 1.2MHz altrimenti la misura peggiora credo sia ok confermi ?

Dice di mettere un'istruzione wait mentre fai conversione per migliorare la precisione della misura hai provato?

Solo un input alla volta dev'essere configurato come analog input

Devi scrivere il bit STA a 1 e aspettare il bit EOC a 1 prima di leggere il risultato.

Io per ora non userei il bit PDS per il basso consumo (Sempre alimentato)

e non userei l'interrupt farei un loop con test su EOC per vedere se funziona.

Hai visto la formula per caricare la capacità d'ingresso del canale ?

Per misure corrette devi garantire che la capacità si carichi alla tensione di misura in 6.5us LQuello che attacchi in ingresso deve avere impedenza 30K. Hai verificato questo ? .

Fai una cosa molto semplice se ho capito bene dovrebbe funzionare così:

metti l'ingresso di misura in input

aggiungi nop, tanti nop, per raggiugnere un ritardo di 100us/200us

poi fai la conversione

vedi se migliora eventualmente aggiugni altri nop

poi se funz<iona decidiamo cosa fare

Link al commento
Condividi su altri siti

Questa è la routin di conversione:

analog ldi wdog,0feh

ldi adcr,00110000B

conv jrr 6,adcr,conv ;Attendi la conversione

ld a,addr ;carico il valore in a

ld analo,a ;carico il valore nella variabile analo

ret

A questo punto invio il valore analo al displ

Più frequente viene chiamata questa routin e più il valore oscilla.

(Hai visto la formula per caricare la capacità d'ingresso del canale ?

Per misure corrette devi garantire che la capacità si carichi alla tensione di misura in 6.5us LQuello che attacchi in ingresso deve avere impedenza 30K. Hai verificato questo ? . )

Questo passaggio non l'ho capito, ma non l'ho letto in nessun libro. Posso sapere dove lo posso trovare per leggere?

Grazie.

Link al commento
Condividi su altri siti

datasheet di un ST62 leggi il paragafo relativo all'AD converter

La prova che ti suggerisco è inutile ma per fugare ogni dubbio io proverei a fare anche così

metti PDS= 1 all'inizio una volta per tutte fuori dalla routine di conversione e per far partire la conversione fai

or ADCR,#00100000B (ho messo or non conosco l'asm dell'st6)

oppure se si può

set bit,registro

Poi non so come devi dichiarare l'input analogico lo lasci sempre configurato così e sempre collegato ? Non fai acquisizioni su più ingressi ?

Link al commento
Condividi su altri siti

walterword+21/11/2006, 23:10--> (walterword @ 21/11/2006, 23:10)

se poi oscilla ancora fai una media su 5 o 10 campionature

e visualizzi quella

Campioni ogni 100 ms , scrivi i dati in un buffer e alla fine fai la somma diviso quanti sono , questa e' la media

Prova e vediamo cosa succede

Link al commento
Condividi su altri siti

Se il segnale oscilla con la frequenza della rete potrebbe essere anche una forza elettromotrice indotta da campo magnetico nel circuito della tua resistenza/sensore

Link al commento
Condividi su altri siti

Grazie per i vari consigli, ho risolto il problema apportando modifiche sia harware che software.

Con il software ho aggiunti dei nop trasformando la vecchia routin con questa:

analog nop

res 7,ADCR

set 4,ADCR

set 5,ADCR

nop

conv: jrs 6,ADCR,fconv

jp conv

fconv nop

nop

ld a,adr

ld analo,a

Per quanto riquarda il circuito, ho preso l'oscilloscopio e mi sono accorco che i 5V non erano propio stabili, ma c'era il picco di tensione, quindi ho aumentato i condensatore e sostituito il 7805 con7806.

Ora il valore oscilla di 1 o 2 gradi, quindi con una piccola modifica software non ci dovrebbero essere più problemi.

C'è qualcuno che utilizza questo tipo di micro (ST6)?

Grazie.

Link al commento
Condividi su altri siti

  • 2 months later...

Ciao, ho usato questo micro tempo fà. Il problema lo risolvi facendo fare al micro molte letture e poi la media.

Visto che il post è di qualche mese fà, dimmi se ancora ti può servire, che ti invio la routine che gli fà fare 32 letture e poi la media.

Se non hai bisogno di una grossa precisione puoi andare così, ma se invece vuoi i decimi di grado come serviva a me, ho optato per un convertitore A/D a 12 bit, e come sonda un LM35.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...