Frequenzimetro Digitale con micro ATMEL - FINITO -

Grazie :slight_smile: 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. :slight_smile:

Nessun problema ... ho gia piazzato alcune trappole per orsi intorno all'edicola, cosi quando arrivera' la rivista, non me la fregheranno sul tempo :fearful: :stuck_out_tongue: XD ]:smiley: :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 ? ... :wink: 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: :stuck_out_tongue: XD ]:smiley: :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 ? ... :wink: 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.

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...

Se è uno sketch per Arduino basta copiarlo nell'IDE e compilarlo.
Per il trasferimento forse devi usare Arduino as ISP come programmatore.
Non credo che Michele abbia lasciato il bootloader nel progetto originale. O forse si.

Ho sempre sostenuto l'assoluta inutilità del bootloader nei progetti in stand-alone, a meno che il micro non necessiti di collegamento seriale esterno per altre funzioni, nel qual caso vale la pena prevedere anche l'eventuale upgrade del firmware.
Nello specifico il file .ino va aperto nell'IDE e caricato mediante tecnica ISP, ma solo dopo aver settato correttamente i fuse, quindi consiglio una bella riga di comando AVRDUDE o meglio ancora il programma AVRDUDESS che permette di fare tutto in un solo passaggio; in questo caso bisogna però ottenere il file HEX: è sufficiente attivare la modalità verbose dell'IDE ed eseguire il compile del sorgente; nello spazio monitor si localizza (nelle ultimissime righe) il percorso in cui è stato memorizzato il file .hex e lo si copia pari pari in AVRDUDESS, poi si settano i fuse attivando l'opzione "set fuses" e infine si clicca su "program" ottenendo il risultato desiderato.

Attenzione a non sbagliare i fuse altrimenti questo è il risultato :slight_smile:

YES! WARNING!!! Ma io i valori dei fuses li ho scritti chiaramente non solo nell'articolo sulla Rivista ma anche nel sorgente del firmware, quindi coscienza salva :grin: