Frequenzimetro Digitale con micro ATMEL - FINITO -

Testato: ... devo leggere tutte le pagine ? ...

Come minimo, tre volte ... :P XD

Complimenti anche da parte mia, articolo molto bello. E poi il contenitore dell'apparecchio lo fa apparire molto professionale, veramente ben curato.

Test, i tre Topic che incredibilmente hai scovato e messo assieme con la tua “iscrizione” sono la storia di questo progetto, o quantomeno delle problematiche che ho incontrato nel suo sviluppo, quello che devi leggere, se ti va, è l’articolo; a quel punto la rilettura di questi Topic di farà comprendere quanto lavoro e tempo ci sia dietro a quello che alla fine diventa magari un paragrafo di 5-6 righe, scritto con la naturalezza di chi ha semplicemente messo assieme dei componenti e li ha fatti funzionare senza alcuna difficoltà :sweat_smile: e d’altra parte non puoi certo raccontare tutte le peripezie vissute, diverrebbe un romanzo invece di un articolo; nove mesi di tempo/laboratorio non sono uno scherzo. Nel caso in cui mi aiutò FLZ c’è dell’incredibile, ve lo racconto … Per lo stadio BF ho usato due operazionali MCP662 (consigliatimi dal grande Astro), siccome esistono solo in smd, dovendo però mettere a punto ben 4 stadi, li saldai su due adattatori PDIP della Sparkun e montai tutto su breadboard; arrivato alla condizione di massime prestazioni, correggo lo schema iniziale, disegno il PCB, saldo i componenti e mi compare un’autooscillazione spaventosa che non mi faceva funzionare nulla se non applicando segnali di ampiezza sconsiderata; comincio a leggere di qua e di là e capisco che bisogna adottare dei condensatori, ma senza avere la più pallida idea, qualche inutile prova e poi mi viene in mente che FLZ aveva studiato a fondo gli operazionali e lo contatto; un paio di giorni di scambi, lui mi spiega la problematica e me la mostra con le immagini di un simulatore, alla fine mi basta aggiungere un C da 1pF su ognuna delle R della retroazione; ma perché sulla bread funzionava??? perché 1-2pF è una capacità parassita tipica delle piste delle breadboard, e quindi era come se tali C fossero montati direttamente nella bread :fearful:. Lui mi consigliava da 1 a 4 pF, poi una volta capito il meccanismo di quei grafici adottai quelli da 1pF per ottenere il miglior rapporto [sensibilità/frequenza massima] per ciò che mi serviva ai fini del progetto. Come la racconti una storia del genere in un articolo di presentazione di un progetto? però nella spiegazione dello schema elettrico troverai scritto che i tre C da 1pF servono per… e chi legge penserà che sono la prima cosa che ho messo quando ho disegnato lo stadio :grin: Ovviamente non è andato tutto così, quindi il merito del lavoro mi sento sinceramente di assumermelo, ma gli aiuti ricevuti sono stati fondamentali, e bisogna riconoscerlo per onestà.

@ Leo: grazie, c’è anche la tua parte, come ho detto prima, il contenitore l’ho scelto io, la mascherina però l’hanno fatta loro, io l’ho mandata lavorata ma “nuda”. La sola cosa che mi sipace è che in una foto di un frequenzimetro che arriva a oltre 1 GHz mettono una lettura di pochi kHz :disappointed_relieved:

Michele, a parte i dovuti (realmente, per tutto il lavoro che c'e' dietro) complimenti, volevo chiederti una cosa ... il firmware e' modificabile, o e' proprietario ?

Perche' mi era venuta un'idea un po folle (come al solito), di usare un display 16x4 (o 20x4), e far visualizzare contemporaneamente piu parametri ... ad esempio frequenza, periodo (tempo), lunghezza d'onda, ecc ... considerando che la funzione principale (frequenza) la fa il circuito completo, mentre il resto, che sono fondamentalmente solo calcoli basati sul dato "frequenza" letto, la potrebbe fare il micro, magari con una routine secondaria, e non servirebbe neppure che fosse in tempo reale, sarebbe una modifica fattibile con il tuo circuito, oppure ritieni che stravolgerebbe troppo il tutto ?

Grazie :) il firmware è di proprietà della Rivista, questi sono gli accordi; loro lo rendono disponibile, in genere in formato hex, altre volte in formato sorgente (.ino), ma non so dirti con che criterio. Posso però dirti che la libreria FreqCounter che ho usato, indispensabile ai fini del funzionamento del circuito, non lascia spazio nemmeno per le virgole, assorbe tutta la "timeria" del 328P; infatti disponevo anche della lib del periodimetro, dello stesso autore, ma era inutilizzabile, altrimenti avrei inserito anche questa importante funzionalità, che mi avrebbe permesso di estendere le letture a valori inferiori all'hertz. Tanto per farti capire, per far funzionare i due tastini è stato necessario (by Leo XD) ricorrere all'uso del watchdog, con grande soddisfazione ai fini del funzionamento, ma tanta frustrazione per l'impossibilità di gestirli con due semplici righe di programma, come ho sempre fatto. Leggo che tu parli di calcoli (mentre io pensavo al periodimetro proprio come misura...) e quelli si possono fare ed anche mostrare, l'importante è che non tocchino risorse hardware, quindi devi per forza di cose operare in tempo reale; la "perdita di tempo" di questi calcoli è compensabile col metodo di taratura che ho adottato io, anche se penso che, su un gate di 1 secondo, questa ulteriore routine sarebbe pressocché ininfluente. Comunque il mio firmware non è niente di straordinario, chiunque lo farebbe meglio, però se faccio un progetto a firma mia il grosso deve essere mio, ed allora quello di Leo è un aiuto e basta. Nei casi in cui al firmware non metto proprio mano, finora quello isolato del Micrologio, allora condivido la firma con chi lo scrive (nello specifico proprio Leo), come è giusto che sia.

Etem, buone notizie, ma vale per chiunque sia interessato al progetto ho ottenuto che il firmware venga distribuito in formato sorgente; il motivo è che la taratura iniziale (da ripetere quando si necessita di ricalibrazione) si fa via hardware per poi fissare un valore in una costante del firmware, quindi il firmware va modificato un paio di volte (ci sono ovviamente istruzioni ben precise sulla Rivista) per poter "avviare" il frequenzimetro. La distribuzione però avverrà nel prossimo numero, quello col quale si presenterà appunto il firmware e poi il montaggio nel contenitore. :)

Nessun problema ... ho gia piazzato alcune trappole per orsi intorno all'edicola, cosi quando arrivera' la rivista, non me la fregheranno sul tempo :fearful: :P XD ]:D :grin:

A proposito del display a piu righe, si, parlavo solo di calcoli sul valore letto, non di un periodimetro (anche se sarebbe il massimo ... magari la versione 2.0, con un mega ? ... ;) XD) ... mi spiego, lo so che sono tutti valori che in 30 secondi e con una calcolatrice (le operazioni in virgola mobile con tanti decimali a me riescono male, a mente :P) ti ricavi da solo ... ma siccome vorrei montarlo nella versione piu piccola e portatile che riesco a costruire, e se sei in giro la maggior parte delle volte la calcolatrice non ce l'hai sottomano, avere la possibilita' di averli a schermo "al volo", anche solo aggiornati ogni secondo, risolverebbe il problema ... era solo per questo motivo ... come vedi, nulla di indispensabile, solo un piccolo "extra" ...

Etemenanki: Nessun problema ... ho gia piazzato alcune trappole per orsi intorno all'edicola, cosi quando arrivera' la rivista, non me la fregheranno sul tempo :fearful: :P XD ]:D :grin:

A proposito del display a piu righe, si, parlavo solo di calcoli sul valore letto, non di un periodimetro (anche se sarebbe il massimo ... magari la versione 2.0, con un mega ? ... ;) XD) ... mi spiego, lo so che sono tutti valori che in 30 secondi e con una calcolatrice (le operazioni in virgola mobile con tanti decimali a me riescono male, a mente :P) ti ricavi da solo ... ma siccome vorrei montarlo nella versione piu piccola e portatile che riesco a costruire, e se sei in giro la maggior parte delle volte la calcolatrice non ce l'hai sottomano, avere la possibilita' di averli a schermo "al volo", anche solo aggiornati ogni secondo, risolverebbe il problema ... era solo per questo motivo ... come vedi, nulla di indispensabile, solo un piccolo "extra" ...

Sì l'ho capito, infatti ho detto che una routine in più per fare qualche calcolo non crerà problemi e l'ulteriore ritardo introdotto nel gate sarà compensato a livello di taratura, cosa per la quale, modestamente, ho avuto davvero grande intuizione XD Non so se mi cimenterò in una nuova versione del Frequenzimetro, penso lo farei solo se questo progetto facesse il boom, la prima cosa sarebbe sicuro aumentare la portata dell'RF a 2,5GHz, quindi di sicuro nuova strumentazione per il mio stracolmo banco $), vedremo.

[quote author=Michele Menniti link=topic=145059.msg1402442#msg1402442 date=1379956274] la prima cosa sarebbe sicuro aumentare la portata dell'RF a 2,5GHz, quindi di sicuro nuova strumentazione per il mio stracolmo banco $), vedremo. [/quote]

Non per fare il disfattista, però con una risoluzione reale di "solo" 7.000.000 di count non ha molto senso spingersi oltre l'attuale 1 GHz.

astrobeed: [quote author=Michele Menniti link=topic=145059.msg1402442#msg1402442 date=1379956274] la prima cosa sarebbe sicuro aumentare la portata dell'RF a 2,5GHz, quindi di sicuro nuova strumentazione per il mio stracolmo banco $), vedremo.

Non per fare il disfattista, però con una risoluzione reale di "solo" 7.000.000 di count non ha molto senso spingersi oltre l'attuale 1 GHz.

[/quote] è la volta buona che passo al PIC XD

:grin:

Per gli interessati: la seconda ed ultima puntata del Frequenzimetro è stata pubblicata sul numero 180 di Ottobre, dovrebbe essere già in edicola ed in arrivo agli abbonati. L'altra buona notizie è che il firmware, su richiesta del sottoscritto, è stato pubblicato sia in formato hex che in formato sorgente (.ino). Se qualche softwarista volesse dare un'occhiata e suggerire migliorìe ben vengano.

Ho visto che nel codice disabiliti gli input digitali sugli stessi pin dell'ADC.

 /* DIDR0 – Digital Input Disable Register 0 
    Disabilita gli ingressi digitali sui pin analogici */
    DIDR0 = 0b00111111;

La stessa cosa la stiamo facendo nell'ArduTester, ma da alcune prove Pighi mi ha detto che non gli cambia molto. Tu hai notato differenze?

In teoria questo è fatto più per ridurre il consumo che per migliorare la campionatura dato che il datasheet dice solo che se su un pin analogico non si usa il circuito digitale, questo andrebbe spento.

Solo che per il suo tipo di funzionamento, ed essendo costantemente alimentato a corrente elettrica, il micro non usa alcuna modalità di risparmio energetico; invece, data l'importanza fondamentale, ai fini della taratura, dell'ingresso analogico che ho usato, ho adottato ogni possibile accorgimento per sfruttare al massimo le capacità dell'ADC All'epoca era uscita questa cosa proprio sul Forum, in seguito non avevo letto i test di pighi, nel mio caso male non fa, almeno finché non si affermi il contrario, resteranno attive quelle righe. In realtà io uso l'ingresso analogico per scovare rapidamente il valore della correzione della campionatura della lettura in frequenza, una volta trovatolo, la lettura la disattivo da firmware e metto il valore trovato in una costante. Questo semplice trucchetto è stato, scusate l'immodestia :D, un colpo di genio, cercare a tentativi un valore fisso tra 1 e 999 significa dover ogni volta programmare il micro e verificare la risposta in precisione; invece in questo modo ruoto un trimmer di precisione, faccio due-tre letture, in pochi minuti trovo il valore (che faccio uscire sul display) che mi garantisce la massima precisione sull'intero range da 0 Hz a 1,1 GHz, quindi lo fisso ed è tutto finito; il trimmer viene disattivato e se ne riparla tra un anno, come per qualsiasi strumento professionale. XD

Buonasera a tutti,
ho trovato molto interessante il progetto del frequenzimetro da te proposto.
Ora, non essendo pratico di arduino e micro ATMEGA, volevo chiederti che software si utilizza per modificare il firmware da te scritto per poter effettuare la calibrazione dello strumento.
Suppongo si debba utilizzare lo Sketch_sep14a , ma che tipo di arduino setto per la compilazione del firmware? vedo che ce ne sono tanti con ATMEGA328…
Scusa per la domanda banale, ma mi sto avvicinando ora a questo mondo e non so come fare.
Grazie per l’aiuto

Ciao, il micro è usato in stand-alone e serve una board virtuale specifica. Peraltro il progetto non prevede un normale quarzo ma un oscillatore quarzato. Ora non ricordo più ma sulla rivista o almeno nello sketch dovrei aver messo i fuse da usare, che sono diversi rispetto a quelli previsti nelle board arduino. Ma tu hai i due articoli? Per i PCB come ti sei organizzato?

EDIT: ho controllato, i fuse sono riportati a pag. 36 del secondo articolo (n. 180), per la programmazione ISP rimando invece ai precedenti articoli (2011) sull'argomento, o alla mia Guida on-line, ora sostituita dal libro che vedi in firma.

Comunque se hai bisogno di altri chiarimenti chiedi pure, sono a disposizione, di questo progetto vado particolarmente fiero (mi scuso per la punta di orgoglio...) perché c'ho lavorato oltre 6 mesi ma alla fine ne è uscito un strumento che può competere con molti altri anche professionali, pur di fascia bassa.

Ciao, effettivamente è un gran bel progetto. stavo cercando in rete un progetto di un frequenzimetro da costruire per il mio laboratorio e mi sono imbattuto nel tuo . Devo dire che hai adottato delle soluzioni molto interessanti per quanto riguardo lo stadio d'ingresso e per la calibrazione dello strumento.

Sono in possesso di entrambe le riviste, e anche avendo il file hex già compilato , ho letto che per effettuare la calibrazione occorre fare una piccola modifica al firmware per poi riportare tutto coma prima; da qui nasce la mia necessità di capire come si compila lo sketch. Premetto subito che non ho mai usato arduino, di solito uso i micro-controllori della Microchip per lavoro.

Per i cs, ho scaricato i master dal sito e mi sono appoggiato ad una ditta della zona che collabora con l'azienda per la quale lavoro.

Veramente dovrebbe esserci il file sorgente, con quello compilato non puoi fare le modifiche; la programmazione, considerando che devi modificare i fuse, devi farla da riga di comando con AVRDUDE; via IDE (il programma di Arduino puoi caricare il file ma non puoi modificare i fuse, a meno che non crei un collegamento ISP stand-alone e carichi prima il bootlaoder, ma non è che si spiega in due parole due.... :sweat_smile:

Ciao,

si il file sorgente ce l'ho, il mio problema è appunto come compilarlo e trasferirlo nell'atmega...