Go Down

Topic: Guida: La programmazione di micro ATMEL con Arduino [rel. 4] (Read 65 times) previous topic - next topic

Michele Menniti

Leo, ma eravamo d'accordo che non l'avremmo detto più di NON usare il quarzo :smiley-sad-blue:
Va bene, proviamo a riscrivere la regola generale:

  • Per programmare un micro mediante ISP, bisogna configurare l'hardware in base al clock per il quale il micro è impostato.

  • Nel caso in cui il micro sia impostato per un clock con quarzo esterno, il quarzo previsto è indispensabile

  • Nel caso in cui il micro sia impostato per un clock interno, il quarzo esterno, se usato, non influenzerà il buon fine dell'operazione


ergo, usate sempre il quarzo da 16MHz, non fa danno e nemmeno lo sprecate, visto che si usa su breadboard.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

niki77

Il punto era CAPIRE, non necessariamente, 'facciamo così perchè è più pratico'.

Mi sfugge il perchè se io vado a programmare il bootloader su un micro con il clock ad 1 mhz , questo poi possa essere utilizzato solo ad 1 mhz.

Ma l'impostazione dei fuse non può essere fatta a prescindere dalla velocità con la quale il micro viene programmato?

Mi spiego meglio,  non posso programmare il micro vergine la prima volta con un clock ad 1 mhz per poi utilizzarlo successivamente con bootloader già caricato solo ed esclusivamente a 16mhz con quarzo su un altra scheda?

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Michele Menniti

Beh, allora il gioco si fa duro 8)
Il clock ed i valori dei fuse sono intimamente legati. Tu programmi i fuse dando loro un valore in base alle caratteristiche di base che vuoi dare al tuo micro; se decidi che deve lavorare ad 1MHZ devi dare alcuni valori ben precisi, se deve lavorare a 8MHz altri, altri ancora per 16MHz, ma il clock non è l'unico parametro, ce ne sono molti altri.
Restando sul clock, il micro, una volta programmato lavora a quella frequenza, non puoi semplicemente togliere o variare il valore del quarzo per cambiare il clock del micro.
Un esempio: programmo i fuse per quarzo a 8MHz, carico il blink, metto il micro su un circuito con quarzo a 16MHz, il blink lampeggia ogni mezzo secondo e non ogni secondo, perché il micro sta lavorando a velocità doppia rispetto a come è impostato, in pratica lo hai over-clockato.
Un altro esempio: programmi il micro per quarzo a 16MHz e poi lo metti in un circuito senza quarzo, il micro non lavora, perché si aspetta di avere un oscillatore esterno che non ha.
Così va meglio?

Sottolineo quanto detto da Leo, il bootloader NON ti serve se il circuito deve lavorare in stand-alone e non prevedi aggiornamenti tramite seriale.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72


Leo, ma eravamo d'accordo che non l'avremmo detto più di NON usare il quarzo :smiley-sad-blue:

Eh, lo so. Ma continuano a chiederlo. Magari per esser certi di non doverlo comprare.

niki77

Dai su ragazzi fate i serii, non credo che un pò di sana teoria faccia schifo a nessuno.

@menniti (alias piccolo e nero ,pertanto insignificante :D)
Premetto che non sono un genio, ma la storia del clock potevi evitarla!

RIPREMETTO!! Stò cercando di capire, non devo fare niente di tutto ciò nell'immediato che non sia solo sana sperimentazione !

Cerco di essere più specifico.

Io ho un arduino UNO con  caricato l'hex di ISP , e lo collego opportunamente ad un 328 VERGINE senza utilizzo di quarzo alcuno.
Vado a programmarci sopra il bootloader di arduino UNO senza modifica alcuna, così come viene fornito nel pacchetto.
Ecco a questo punto io sostengo che, non solo la programmazione vada a buon fine, ma anche che, prendendo il mio 328 appena dotato di bootloader, montato in una board con quarzo a 16mhz questa funzioni correttamente a quel clock.

Basandovi su quello che ho sopra descritto, se sono stato chiaro, c'è qualcuno che ha basi teoriche per contraddirmi?
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Go Up