Ciao a tutti ragazzi, ho un problema che da un paio di giorni mi sta facendo ammattire, ci sto qui 10 ore al giorno e ancora non sono riuscito a risolverlo. Premesso che sto cercando vie alternative (aka ADC esterno), la mia curiosità mi preme per risolverlo, e anche un intensiva ricerca non ha portato alla risoluzione, benchè ci siano molte persone con lo stesso problema.
Vengo al dunque, ma cercherò di essere il più chiaro possibile. Sto facendo un digital recorder basato su PIC, in particolare su PIC18F4525. Da ora in poi citerò delle pagine del datasheet che si trova QUI. Inolte farò riferimento alla pagina del PDF, e non del documento, così la potrete raggiungere più velocemente.
Allora il mio problema è che dopo aver configurato manualmente tutti i registri dell'ADC, quindi senza usare le funzioni già pronte del compilatore (che nel mio caso è mikroC), la simulazione su Proteus mi da il seguente errore: "ADC conversion clock period (5e-7) violates the minimum required TAD time". Come dicevo questo problema è comune e molti su internet danno come soluzione una formula, deducibile da pagina 231 del PDF, paragrafo 19.3. In pratica qui dice che per una conversione ci vogliono minimo 11 TAD, e poi rimanda al parametro 130, che è il TAD minimo, pari a 0,7 us. Allora dice che il tempo di conversione che bisogna impostare deve essere il minimo possibile, ma maggiore di TAD, cosi io ho fatto i calcoli e ho impostato il divisore di frequenza nel registro in base al mio clock per rispettare tale parametro. In realtà l'avevo fatto maggiore di 11 TAD, perché non avevo capito bene, ma tanto se è maggiore di 1 è anche maggiore di 1.
Quindi, supponendo che non ho sbagliato i calcoli perché li ho fatti 20 volte, anche non violando questa condizione l'errore mi compare, mentre facendo scendere il clock del mio sistema a 1 MHz l'errore scompare. Per esempio, con un clock da 4 MHz e divisore al massimo (64), quindi con la condizione ampiamente rispettata, mi dà l'errore, mentre con 1 MHz e lo stesso divisore no.
Ho anche provato a modificare il parametro Acquisition time, paragrafo 19.2 di pag 231, provando tutti i valori, ma non sortisce nessun effetto (come immaginavo visto che quel parametro non sembra c'entrare molto).
Qualsiasi consiglio o intuizione è ben accetto, anche qualche suggerimento cosi a pelle che mi possa indirizzare nella stra da giusta...grazie!
Problema ADC PIC18F4525
Moderatore:
Paolino
7 messaggi
• Pagina 1 di 1
0
voti
Se la frequenza è di 4MHz ed il TAD minimo è di 0.7us allora 4Tosc dovrebbe andare bene.
Tosc = 1/4MHz = 0.25us
2Tosc = 0.5us
4Tosc = 1us
8Tosc = 2us
16Tosc = 4us
32Tosc = 8us
64Tosc = 16us
La configurazione
Se continua a dare errori allora c'è qualcos'altro che non va. Forse nel progetto di mikroC hai settato una frequenza diversa da quella di proteus?
Tosc = 1/4MHz = 0.25us
2Tosc = 0.5us
4Tosc = 1us
8Tosc = 2us
16Tosc = 4us
32Tosc = 8us
64Tosc = 16us
La configurazione
- Codice: Seleziona tutto
ADCON2 &= 0b100;
Se continua a dare errori allora c'è qualcos'altro che non va. Forse nel progetto di mikroC hai settato una frequenza diversa da quella di proteus?
-

giovannispina
126 1 3 - Messaggi: 43
- Iscritto il: 27 lug 2013, 12:31
0
voti
ciao giovannispina, grazie per la risposta. Alla fine, dopo qualche altro tentativo, mi sono orientato verso un ADC esterno, presente anche in Proteus. Adesso comunque sto abbandonando i PIC18 per passare ai dsPIC33 (ho fatto un 3d nell'altra sezione) perché anche con l'ADC esterno non riesco a ottenere una buona qualità della registrazione (benchè ancora non sia in grado di stabilire se è un problema del PIC o della simulazione)
0
voti
Ciao
deltax, solo una curiosità, a prescindere dall'anomalia che ti ha restituito "proteus", poi, hai provato comunque a caricare sul micro una porzione di codice per verificare in pratica il comportamento ?
Non ho capito se lo hai fatto o meno.
Saluti
Non ho capito se lo hai fatto o meno.
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8985
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
No non l'ho fatto perché sto prototipando un progettino in cui le varie prove su proteus avrebbero comportato la scelta di un PIC. Dovendo comrpare tutto (breadboard, PIC stesso, componenti esterni ecc) volevo prima fare qualche simulazione. Proverò a brevissimo il comportamento fisico ma ormai ho abbandonato il PIC18F4525, e addirittura forse passerò ai dspic33, quindi probabilmente mi rimarrà il dubbio per il resto della vita 
0
voti
Spesso capita di non riuscire a far funzionare correttamente le periferiche per non aver settato o settato male alcuni registri. Io per il momento (ho provato anche MikroC) sto utilizzando MPLAB e il compilatore gratuito XC8 con il plugin di Microchip "code configurator". Con pochi "click"si impostano correttamente periferiche come l'ADC. Vale la pena provarlo.http://www.microchip.com/pagehandler/en ... /home.html
-

ivanpascolo
20 3 - New entry

- Messaggi: 71
- Iscritto il: 29 set 2014, 20:44
0
voti
In pratica i miei calcoli erano tutti giusti solo che il TAD si doveva impostare in un opzione di proteus. In pratica, anche se proteus ha diversi modelli di PIC, esistono dei settaggi specifici che si devono impostare, e il TAD è uno di questi. In particolare si imposta in un menù a tendina nella stessa finestra dove si imposta la frequenza del PIC.
L'errore me lo dava perché, non avendo impostato questo TAD, lo riconosceva come 0, e anche se rispettavo il tempo del datasheet non rispettavo quello di proteus, appunto 0.
7 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
