[OT] Arduino DUE senza quarzo da 32 kHz

Un lettore del mio sito ha commentato il mio articolo sulla libreria advancedFunctions dicendomi che il core di Arduino non usa il quarzo esterno da 32 kHz come fonte del segnale Slow Clock, che il SAM3X usa non solo per il modulo RTC ma anche per altre periferiche. Di default, infatti, il chip attiva un oscillatore interno che non è molto preciso: il datasheet parla di frequenza oscillante fra 22 e 42 kHz (la scheda del lettore perde 10 secondi al minuto usando la funzione RTC della mia libreria!).
Mi consigliava un fix che aveva letto in un altro thread del forum ma non riuscivo a farlo funzionare. Ho così elaborato un fix studiando il datasheet (che ho pubblicato nel thread citato) ma anche questo non funzionava.

Non capendo perché mi sono messo a studiare la board della scheda su Eagle per capire dove fosse il quarzo… e non l’ho trovato!!! La mia DUE non ha il quarzo da 32 kHz (è il quarzo marcato come Y2 negli schemi ufficiali). Ci credo che non funzionava!!
Fortunatamente mi avevano regalato alcuni mesi fa un’altra scheda DUE che, per via del doppio regalo, non avevo neanche spacchettato! L’ho perciò tirata fuori ed ho constatato che questa invece ha il quarzo in questione!! Non solo, mancano anche i condensatori relativi (C23 e C24). Preciso che la DUE senza quarzo è una delle prime messe in vendita, acquistata lo scorso anno (esattamente non ricordo, ma mi pare fra ottobre e novembre) mentre la seconda scheda me l’hanno regalata a gennaio.

Allego una foto dove si vede a sinistra la scheda senza quarzo mentre a destra vedete la scheda che lo monta, insieme ai suoi condensatori.

Qualcun altro ha una DUE senza quarzo da 32 kHz?

arduino_due_clock_y2.jpg

Interessante, ho fatto una verifica sulla mia, comprata anche io molto tempo fa, e il quarzo è già presente e c'è impresso sopra : 32.7A20 (... se leggo bene)

Guglielmo

Ci ho perso 1 ora, stamani, dopo la segnalazione del mio lettore, perché non riuscivo a capire come mai, abilitando il quarzo esterno, il modulo RTC sembrava si bloccasse... Si bloccava sì! Senza clock.... :sweat_smile: :sweat_smile:

PS:
sul quarzo che c'è sulla seconda DUE leggo 327JID.

E poi sono le chinaduino che non sono fatte bene :wink: :wink: :wink:

Hai già segnalato la cosa al supporto ufficiale?

Ho scritto a Federico, per sapere se è a conoscenza della cosa e se lui sa se ci sono altre schede simili in circolazione.

Mi ha risposto Federico confermandomi che il quarzo è stato aggiunto dopo la prima mandata perché si sono accorti che senza di esso l'RTC ovviamente era meno preciso. Quindi immagino che tutte le DUE del primo lotto di produzione siano senza quarzo.

Me l'hanno sempre detto di non comprare un'auto nuova appena uscita ma di aspettare almeno sei mesi... :sweat_smile:

leo72:
Me l'hanno sempre detto di non comprare un'auto nuova appena uscita ma di aspettare almeno sei mesi... :sweat_smile:

Ti dico anche di non fare nessun passaggio alla versione superiore di un sistema operativo/software prima che esca il SP1 :smiley:

astrobeed:
...
Ti dico anche di non fare nessun passaggio alla versione superiore di un sistema operativo/software prima che esca il SP1 :smiley:

[OT] ... difatti, col cavolo che in questi giorni ho aggiornato ad iOS 7.0 ... si aspetta la 7.01 minimo ... :grin: :grin: :grin: [/OT]

Guglielmo

gpb01:
[OT] ... difatti, col cavolo che in questi giorni ho aggiornato ad iOS 7.0 ... si aspetta la 7.01 minimo ... :grin: :grin: :grin: [/OT]

Guglielmo

[OT] Sul 5s si potrà fare il downgrade, allora? [OT]

Io ho comprato la YUN al Day 1. :grin: :grin:
Però funziona!

cece99:
[...
[OT] Sul 5s si potrà fare il downgrade, allora? [OT]

[OT] ... non mi risulta, anzi, mi risulta proprio che non si potrà più fare da nessuna parte (guarda QUI e QUI), salvo probabilmente versioni jailbreak :wink: [/OT]

Guglielmo

PaoloP:
Io ho comprato la YUN al Day 1. :grin: :grin:
Però funziona!

Sssst … dillo sottovoce, e tieni tutte e dodici le dita incrociate mentre lo dici, senno ti sente e si bricca … :stuck_out_tongue: XD

mah… non vorrei ingannarmi ma mi pare di ricordare che nelle presentazioni ante-uscita si parlasse della possibilità di aggiungere il quarzo RTC come optional in un secondo tempo, perchè nella versione in vendita non era presente.

Ho una ChipKit MEGA32 e ha lo stesso “problema”. Ha le piazzole vuote per aggiungerlo, ma di default non c’è.

Ma poi c’è da cambiare qualche fuse per attivarlo? Nei PIC si sceglie l’oscillatore secondario (esterno o interno) con i fuse.

Utilizzando un PIC32 senza quarzo esterno, ho attivato l’oscillatore interno a 8 MHz, confidente che il fatto che avesse una tabella di tuning +/- per settare run-time, e con precisione, l’oscillatore interno, mi avrebbe consentito di avere 8 MHz precisi.

Ho programmato i fuse per l’ OSc interno, 8MHz. Misuro l’uscita, 7.880 MHz effettivi. Agisco sui registri di tuning finchè sono 8 “quasi” perfetti e tutto bene. Senonchè il giorno dopo mi viene l’idea di ricontrollare, così per scrupolo… Ebbene era a 8.300MHz alla faccia della precisione!

Morale: per applicazioni che necessitano un minimo di precisione, l’oscillatore interno RC è da dimenticare!

BaBBuino:
Morale: per applicazioni che necessitano un minimo di precisione, l'oscillatore interno RC è da dimenticare!

Microchip, ma anche Atmel, scrive chiaramente sul data sheet che la stabilità degli oscillatori interni, tutti di tipo rc, è bassa e legata alla temperatura, ovvero vanno bene per applicazioni dove non ti serve una grande precisione sulle temporizzazioni, figurati che puoi avere problemi anche con le UART se lavori a baud rate elevati.

Eppure c'è qualche dispositivo che dichiara per il proprio oscillatore interno precisioni dell'ordine dei 50 ppm, che non è poi male.

Ora non ricordo se sono i dsPIC di Microchip o gli Infineon, ma esiste una qualche tecnica per avere precisione discreta anche con oscillatori interni. Probabilmente la discriminante è il prezzo.

BaBBuino:
Ora non ricordo se sono i dsPIC di Microchip o gli Infineon, ma esiste una qualche tecnica per avere precisione discreta anche con oscillatori interni.

Stai facendo confusione tra precisione e stabilità, sono due cose diverse.
Quasi tutte le mcu hanno un registro per il tuning dell'oscillatore interno che, con un pochino di pazienza, consente di portarlo al valore nominale ad una certa temperatura ambiente, però proprio per la natura RC (Resistenza, Condensatore) questa tipologia di oscillatore deriva sensibilmente in funzione della temperatura.

Senza andare troppo lontano e restando in casa Atmel sugli XMega per esempio si ha il DFLL che assieme alla calibrazione permette un'accuratezza di +/- 1% a ogni tensione e temperatura, scordati però 50ppm :smiley:

Knowing the fundamental characteristics of the RC oscillators, it is possible to make
an efficient calibration routine that calibrates the RC oscillator to a given frequency, at
any operating voltage and at any temperature with an accuracy of +/-1%

@Babbuino:
il quarzo da 32 kHz sul SAM3X alimenta un circuito di clock separato che si chiama Slow Clock. Questo circuito è usato da alcune periferiche del chip, come ad esempio il modulo RTC, il modulo RTT, il watchdog ecc... Se questo quarzo non è presente, il chip usa un oscillatore RC interno. Che però, come detto sopra, anche questo non alimenta il clock principale ma sempre questo dispositivo Slow Clock .

Il clock principale ha un'altra fonte di clock.

flz47655:
Senza andare troppo lontano e restando in casa Atmel sugli XMega per esempio si ha il DFLL che assieme alla calibrazione permette un'accuratezza di +/- 1% a ogni tensione e temperatura, scordati però 50ppm :smiley:

+/- 1% a 8 MHz, valore tipico per gli oscillatori RC interni, vuol dire +/- 80 kHz pari a +/- 10000 ppm. :grin: