Ciao a tutti,
dopo l'esperienza con esito positivo relativa alla mia precedente
domanda (http://arduino.cc/forum/index.php/topic,60704.0.html)
di qualche mese fa torno con una nuova richiesta.
Premetto che per il mio precedente lavoro ho fatto esperienza con
risultati più che soddisfacienti con l'Arduino Uno ed uno shield
Adafruit per il supporto della scheda di memoria SD ed un orologio
RTC.
Ora però mi pare di avere un po' toccato i limiti di questa
piattaforma in quanto, dopo l'implementazione di un display con driver
Hitachi HD44780, ho dovuto ridurre notevolmente le potenzialità del
mio codice perchè non riuscivo più a far gestire all'Arduino: display,
scheda di memoria SD, real time clock, scrittura su porta seriale, due
led luminosi come ulteriori output. Mi sono accordo che aggiungendo
nel codice gli elementi in questione andavo a perdere funzionalità che
singolarmente non davano problemi quindi credo di aver raggiunto il
limite di questo sistema, inoltre collegando il tutto non ho più
uscite pin digitali a disposizione, ed in futuro ne avrò bisogno di
altre a disposizione (5 o 6).
Altro problema, io avrò bisogno di un RTC molto più preciso e stabile
nel tempo di quello fornito dall'estensione Adafruti (DS1307 della
maxim) che ho sperimentato perdere diversi minuti nel giro di solo un
mese.
Se a questo aggiungiamo che in futuro avrò bisogno di scrivere codici
decisamente più spessi dal punto di vista computazionale ( calcolo dei
parametri per la regressione di dati misurati dal sistema) penso sia
evidente la mia necessità di passare ad una scheda di sviluppo basata
su un controllore più prestante e qui entra in gioco la mia richiesta
di supporto.
Cosa consigliate per le mie esigenze?
Rignrazio
Rimanendo nel campo dell'Arduino, o prendi la Mega, che ha un micro da 128 KB di Flash, decine di I/O ma sempre 8 bit di potenza oppure aspetti la Arduino DUE. Stesso layout della Mega (un sacco di canali I/O), tanta Flash per il codice e SRAM per le variabili come la Mega ma 32 bit di potenza ed un clock di 96 MHz. Fine anno/inizi del 2012.
Opure dividi i compiti con sistemi multiprocessore.
Grazie leo!
Quindi se decidessi di provare l'arduino Mega posso scrivere un codice + lungo (grazie alla > flash) e dichiarare più variabili numeriche nel mio programma (grazie alla > sdram), dico bene?
E per la questione di un orologio rtc più preciso come me la potrei cavare con la soluzione Arduino? L'arduino due col suo nuovo microcontrollore avrà un rtc integrato sufficientemente preciso?
supercolli:
E per la questione di un orologio rtc più preciso come me la potrei cavare con la soluzione Arduino? L'arduino due col suo nuovo microcontrollore avrà un rtc integrato sufficientemente preciso?
Bisogna controllare sul datasheet è un micro nuovo e non lo conosco purtroppo anche perchè non si sa ancora quale verra adottato di preciso....
Ma come ha dimostrato Leo nel suo ultimo Topic anche il 328 può essere usato con risultati eccellenti, se poi implementa il quarzo da 32768Hz non penso che avrai altra necessità, oppure ricorri ad un RTC professionale e non se ne parla più.
Il micro della DUE è già stato definito (al momento non mi ricordo la sigla). Va guardato il datasheet ma senz'altro l'swRTC si potrà adattare anche ad esso. Finché però non avrò per le mani una scheda su cui lavorare, non potrò dire se, come e quando.
Se hai urgenza, prendi la Mega con, come ha detto Menniti, un RTC esterno.
Allora devo precisare che lo shield Adafruit che ho installato e testato sul mio arduino Uno e che si è dimostrato dare deviazioni dell'ordine di qualche minuto nel giro di un mese montava un rtc di tipo Maxim DS1307 con questo oscillatore (http://www.abracon.com/Resonators/AB38T.pdf). Tentativo fallito perchè per me questa deviazione è troppo alta, ho bisogno di qualcosa che funzioni meglio.
Probabilmente il problema è del DS1307 non del quarzo (quello NON è un oscillatore, quindi la precisione è eccellente!)
Forse dovresti spostarti un un componente un po' più valido, secondo me questo IC della Texas potrebbe fare al tuo caso, visto che puoi programmare la calibrazione, dal Datasheet:
The bq32000 has a programmable calibration adjustment from –63 ppm to +126 ppm
C'è da dire poi che lo shield di Adafruit non è costruito secondo i crismi dato che Dallas raccomanda nel datasheet del DS1307 di costruirgli un piano di massa sotto (oltre che a porre il quasto stesso il più vicino possibile ai piedini del micro).
Per aggiungere i miei due centesimi volevo dire che il mio DS1307 non perde diversi minuti in un mese. Se l'rtc sballa di solito e' problema di quarzo... Uno in particolare lo uso da un anno e mezzo e forse ho perso 5 minuti!
Fede
Vero, c'è quarzo e quarzo. Nello specifico quelli da 32768 Hz sono offerti almeno in un paio di capacità di carico, bisogna vedere se quello montato risponde ai requisiti del DS1307.
Vado a memoria, deve essere da 12,5pf (o 12pf, ma nel datasheet e' scritto tutto) altrimenti sfora. Ci sono molte discussioni on line su questo ed ero diventato scemo nel leggerle creando il mio primo ds1307 funzionante.
+1
Federico:
Per aggiungere i miei due centesimi volevo dire che il mio DS1307 non perde diversi minuti in un mese. Se l'rtc sballa di solito e' problema di quarzo... Uno in particolare lo uso da un anno e mezzo e forse ho perso 5 minuti!
Fede
Ti sarei gratissimo se potessi dirmi esattamente di che quarzo si tratta.. in più potrei provare anche l'rtc consigliatomi dbq32000 della Texas per togliermi ogni dubbio sulla componentistica...
dal punto di vista del codice non dovrebbe cambiare nulla visto che ha le stesse caratteristiche del ds1037 (interfaccia i2c e stessi pin) giusto?
Ringrazio tutti voi per il validissimo aiuto
Non e colpa dei micro ma sempre dei quarzi
i quarzi sono molto sensibili alla temperatura, suonato la loro tolleranza tipo 20 ppm parti per milione viene dichiarata ad una determinata temperatura
per.questo ci sono i termocompensati, costano di piu. Un rtc del genere costa sui 30 euro
I think you would like to read some theoretical math Relatività generale - Wikipedia
supercolli:
dal punto di vista del codice non dovrebbe cambiare nulla visto che ha le stesse caratteristiche del ds1037 (interfaccia i2c e stessi pin) giusto?
no, l'i2c è un protocollo di comunicazione. I messaggi che poi vengono scambiati usando questo protocollo dipendono dai vari chip. Insomma, probabilmente devi riadattare il codice, salvo ti vada di culo ed esista uno standard che venga rispettato da entrambi i chip
Testato:
Non e colpa dei micro ma sempre dei quarzi
i quarzi sono molto sensibili alla temperatura, suonato la loro tolleranza tipo 20 ppm parti per milione viene dichiarata ad una determinata temperatura
per.questo ci sono i termocompensati, costano di piu. Un rtc del genere costa sui 30 euro
Mi potresti indicare un modello di rtc termocompensato che secondo te può essere ben implementato sull'arduino?
Ti ringrazio.
lesto:
supercolli:
dal punto di vista del codice non dovrebbe cambiare nulla visto che ha le stesse caratteristiche del ds1037 (interfaccia i2c e stessi pin) giusto?no, l'i2c è un protocollo di comunicazione. I messaggi che poi vengono scambiati usando questo protocollo dipendono dai vari chip. Insomma, probabilmente devi riadattare il codice, salvo ti vada di culo ed esista uno standard che venga rispettato da entrambi i chip
Perfetto, esattamente quello che volevo sapere
Testato:
Non e colpa dei micro ma sempre dei quarzi
i quarzi sono molto sensibili alla temperatura, suonato la loro tolleranza tipo 20 ppm parti per milione viene dichiarata ad una determinata temperatura
per.questo ci sono i termocompensati, costano di piu. Un rtc del genere costa sui 30 euro
Prendo atto, a questo punto il mio suggerimento vale doppio, visto che gli consigliavo un chip che è in grado di compensare questo problema, senza stare lì a sbattere con quarzi e quarzi, che comunque avranno sempre le loro tolleranze; con questo chip ogni circuito avrà la sua perfetta "taratura" in base al quarzo e NON al tipo di quarzo
menniti:
Forse dovresti spostarti un un componente un po' più valido, secondo me questo IC della Texas potrebbe fare al tuo caso, visto che puoi programmare la calibrazione, dal Datasheet:The bq32000 has a programmable calibration adjustment from –63 ppm to +126 ppm
certo il tuo consiglio e' validissimo, pero' si deve vedere se ci sono likbrerie per arduino, e cmq dovresti stare li' a calibrarlo ? non lo conosco quindi non so, mentre un normale RTC termocompensato, che magari viene usato allo stesso modo del DS famoso, sarebbe piu' comodo, essendo preciso gia' di fabbrica e potendo sfruttare librerie gia' fatte.
se vai su sparkfun mi sembra che abbia entrambi i tipi, scusa ma in questo momento n on ho molto tempo per controllare io stesso.