Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Frequenzimetro con PIC

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Frequenzimetro con PIC

Messaggioda Foto Utentepgiagno » 24 nov 2020, 11:26

Ho visto questo frequenzimetro che si basa su un microcontrollore PIC16F628A. È uno schema molto comune e replicato in vari articoli. A quanto ho capito la misurazione della frequenza fino a circa 50 MHz (ma c'è chi sta più basso fino a circa 30 MHz) è effettuata direttamente dal PIC contando gli impulsi in arrivo sul pin n. 3 (RA4/T0CKI/CMP2 pag 15 fig 4.2) che consente l'accesso "diretto" a TMR0.

Questo per me significa che quel PIC da quel pin è in grado di "contare" impulsi di appena 20ns. Dato che conosco appena un po' meglio lo ATmega328, ho cercato di vedere nel datasheet se è contemplato qualcosa di simile, ma non sono riuscito a trovare niente. Mi è sembrato di capire che i pin di I/O non consentono l'accesso ad accumulatori interni se non attraverso il clock del micro (pag 85 fig 14.2); il che limita l'acquisizione di impulsi a frequenze inferiori alla frequenza di clock diviso 2 = meno di 8 MHz. Salvo errori.

Mi potete confermare quanto sopra? Grazie,

Ciao,
P.
Avatar utente
Foto Utentepgiagno
503 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 363
Iscritto il: 5 gen 2015, 21:27

0
voti

[2] Re: Frequenzimetro con PIC

Messaggioda Foto UtenteIlGuru » 24 nov 2020, 12:51

Guardando sommariamente lo schema, il segnale in ingresso arriva al micro attraverso il prescaler U3.
Quindi la frequenza effettivamente letta è quella del segnale in ingresso divisa n volte.
Dubito che un micro che, tirato per il collo arriva a 5M cicli macchina al secondo, possa leggere direttamente un segnale da 50M Hz
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

0
voti

[3] Re: Frequenzimetro con PIC

Messaggioda Foto Utentelino9999 » 24 nov 2020, 14:09

Con ATmega328 puoi arrivare fino a 8 MHz, ho fatto un frequenzimetro con Nano, e arriva fino a 6 MHz perché ha l' oscillatore a 16 MHz.
Avatar utente
Foto Utentelino9999
188 3 5
Frequentatore
Frequentatore
 
Messaggi: 281
Iscritto il: 19 dic 2019, 16:17

0
voti

[4] Re: Frequenzimetro con PIC

Messaggioda Foto Utenteedgar » 24 nov 2020, 15:40

lino9999 ha scritto:ho fatto un frequenzimetro con Nano, e arriva fino a 6 MHz perché ha l' oscillatore a 16 MHz.

Aumentare la frequenza massima senza perdere risoluzione non è comunque difficile: bastano un paio di flip flop come front end e 3 / 4 I/O liberi per leggerne lo stato, azzerarli e abilitare il conteggio. La frequenza massima sarà 4 volte superiore.

pgiagno: Ho realizzato a mia volta un frequenzimetro da circa 30 MHz basato su un PIC qualche tempo fa, ma il mio primo frequenzimetro, basato sul "solito integrato dedicato tanto costoso quanto introvabile" ( 4-5 euro su ebay) che cita l'articolo mi dà maggior sicurezza :mrgreen:
Avatar utente
Foto Utenteedgar
10,0k 4 5 8
Master
Master
 
Messaggi: 5229
Iscritto il: 15 set 2012, 22:59

0
voti

[5] Re: Frequenzimetro con PIC

Messaggioda Foto Utentelelerelele » 24 nov 2020, 16:03

Non concordo con chi afferma di non riuscire a raggiungere la lettura di una frequenza neanche ravvicinata alla frequenza di clock, per me sbagliano approccio! Se intendete leggere il tempo tra due fronti consecutivi avete ragione ma non vedo il perché usare questa tecnica controproducente!

Posso benissimo credere a quanto affermato da Foto Utentepgiagno, se uso il contattore interno del micro, (Quindi leggo direttamente da contatore hardware), posso credere che mi legga anche frequenze dell'ordine di decine di mega, quindi andrò a leggere a scadenza fissa (ottenuta con altro contatore), ed il valore accumulato sarà la mia frequenza, moltiplicata se necessario per un costante,(dipende ovviamente dal tempo che ho usato per caricare il contatore).

Poi se parliamo di precisione, può non essere mostruosa, ma direi che la lettura ci sarà.

non posso dirti Foto Utentepgiagno se possibile replicare il circuito con arduino, non lo conosco, ma sono sicuro che il microcontrollore usato per arduino lo farà, senza dubbio, resta da vedere se a livello hardware è accessibile la funzione, e se a livello software, tu possa trovare qualcosa gia fatto, credo che se vorrai farti il software tu, si dovrebbe riuscire.

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[6] Re: Frequenzimetro con PIC

Messaggioda Foto Utentelino9999 » 24 nov 2020, 16:05

edgar ha scritto:
lino9999 ha scritto:ho fatto un frequenzimetro con Nano, e arriva fino a 6 MHz perché ha l' oscillatore a 16 MHz.

Aumentare la frequenza massima senza perdere risoluzione non è comunque difficile: bastano un paio di flip flop come front end e 3 / 4 I/O liberi per leggerne lo stato, azzerarli e abilitare il conteggio. La frequenza massima sarà 4 volte superiore.


L'ho realizzato senza flipflop, la frequenza entra direttamente su un piedino del Nano.
Avatar utente
Foto Utentelino9999
188 3 5
Frequentatore
Frequentatore
 
Messaggi: 281
Iscritto il: 19 dic 2019, 16:17

1
voti

[7] Re: Frequenzimetro con PIC

Messaggioda Foto UtenteDarwinNE » 24 nov 2020, 17:31

Io ho costruito in passato frequenzimetri basati su PIC. Quelli pubblicati in rete sono spesso e volentieri derivazioni di quest'idea:

http://ww1.microchip.com/downloads/en/a ... 00592d.pdf

Si tratta di sfruttare il prescalerad 8 bit interno al PIC per dividere la frequenza e far avanzare un contatore (sempre ad 8 bit), usando poi un trucco intelligente per sapere alla fine del conteggio quanti "scatti" sono rimasti nel prescaler recuperando quindi valori su 16 bit. La frequenza di clock la si può superare benissimo, tanto il lavoro "sporco" alla fine lo fa il prescaler.

L'idea potrebbe essere applicata su altri micro solo se è possibile utilizzare un prescaler ed un contatore come si può fare sui PIC piccolini.
Follow me on Mastodon: @davbucci@mastodon.sdf.org
Avatar utente
Foto UtenteDarwinNE
31,0k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 4420
Iscritto il: 18 apr 2010, 9:32
Località: Grenoble - France

1
voti

[8] Re: Frequenzimetro con PIC

Messaggioda Foto Utenteedgar » 24 nov 2020, 17:56

Ho appena controllato il DS dell'ATmega 328: prima di arrivare al prescaler e successivo contatore, il clock esterno passa attraverso un edge detector sincrono al clock di sistema con le limitazione che ne conseguono.
Ho poi verificato il DS del PIC 16F628: il Timer1, a 16 bit, può essere usato in modo asincrono. In questa applicazione è decisamente un vantaggio.
Avatar utente
Foto Utenteedgar
10,0k 4 5 8
Master
Master
 
Messaggi: 5229
Iscritto il: 15 set 2012, 22:59

0
voti

[9] Re: Frequenzimetro con PIC

Messaggioda Foto Utentelelerelele » 24 nov 2020, 18:48

edgar ha scritto:Ho appena controllato il DS dell'ATmega 328: prima di arrivare al prescaler e successivo contatore, il clock esterno passa attraverso un edge detector sincrono al clock di sistema con le limitazione che ne conseguono..
Bene, nono lo sapevo, hai trovato autonomamente una riposta.
bravo. :ok:
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[10] Re: Frequenzimetro con PIC

Messaggioda Foto Utenteedgar » 24 nov 2020, 18:54

Lo avevo letto tempo fa, ma era un'informazione che non mi serviva. Era finita nel dimenticatoio.
Avatar utente
Foto Utenteedgar
10,0k 4 5 8
Master
Master
 
Messaggi: 5229
Iscritto il: 15 set 2012, 22:59

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti