Go Down

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

Michele Menniti


Ragazzi rieccomi .. Sono tornato!
ESAME FATTO

Bravo, sono fiero di te, lo studio prima di tutto!!!
Quote

Michele stavo effettuando l'ordine da gaetano-f e ti volevo avvisare anche che gli ho detto che mi è stato consigliato da te... Speriamo non mi applichi un supplemento per questo :)

significherebbe che mi dà la provvigione :smiley-red: :smiley-red: :smiley-red: meno male che i prezzi sono pubblicati su ebay XD, se proprio vuole farmi una donazione ci rimette lui non tu :smiley-mr-green:
Scherzi a parte, quando gli feci il primo ordine, gli diedi alcuni suggerimenti commerciali (tu non puoi saperlo ma io ho vent'anni di esperienza in materia!) e gli dissi che, nei limiti del possibile, lo avrei fatto conoscere a quelli con cui sono in contatto, sperando di fargli avere un incremento di vendite; lui mi ha ascoltato e i risultati non sono tardati ad arrivare, non certo per i 2-3 amici del Forum, ma per tanta altra gente che ha visto il negozio su ebay. [chiusa parentesi]
Allora aspettiamo l'esito delle tue nuove prove, appena ti arrivano i pezzi. Facci sapere.
Ciao.
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

PS:
l'altro giorno ho comprato anch'io da lui un pannellino solare di dimensioni ridotte col quale voglio rivedere la mia stazioncina meteo.  ;)

f.schiano

Oggi ordino se mi risponde alla domanda sui costi di spedizione.

Sono contento di essere di nuovo qui a poter divertirmi...

Vi tengo aggiornati!
L'impossibile...richiede solo piu' tempo!

niki77

#513
Oct 11, 2011, 01:03 pm Last Edit: Oct 11, 2011, 02:18 pm by niki77 Reason: 1


l'interpretazione della Guida è una possibile: il quarzo ci vuole! ;) :smiley-sweat: basta non dire più a nessuno di NON usarlo se ha i micro vergini ed è risolto; dopo che gli funziona l'operazione gli si spiega che in stand alone ne può fare a meno, una volta programmati. Dico sul serio, se evitiamo questa "aggiunta" all'inizio ci risparmiamo fiumi di problemi, secondo me.



Interessante questa cosa ci stavo giusto indagando su.

Premessa, dato un micro vergine, è possibile programmarci sopra il bootloader con la tecnica breadboard senza utilizzare il quarzo?
Non vedo perchè non debba funzionare, qualcuno ha provato?
Del resto il micro in questione non viene con i fuse di default per l'utilizzo dell'oscillatore interno ad 8mhz diviso per 8?
In questo caso il micro chiamiamolo TARGET , avrà un clock di 1mhz, ma il bootloader che ci verrà scritto sopra avrà impostazioni dipendenti dal tipo di bootloader che ci viene caricato, non dal clock con  la quale viene scritto?
Ho vinto qualche cosa? : $)
Secondo voi  pò ffà?

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

leo72

Se il micro è "veramente" vergine (non comprato da venditori disonesti, come alle volte succede, che spacciano per nuovi prodotti smontati da qualche scheda non più funzionante) puoi tranquillamente programmare il micro senza usare un quarzo esterno.
Questo vale per tutti i micro (io ho programmato diversi micro di diverse famiglie Atmel) perché tutti i micro Atmel escono di fabbrica preimpostati a 1 MHz (oscillatore interno ad 8 MHz con divisore 8x abilitato).

Se vuoi usare il bootloader, come detto più volte, devi ovviamente compilarne uno per la frequenza a cui lavora il micro altrimenti non tornano i tempi. Se il micro va in standalone la domanda è: ma ti serve davvero il bootloader? Che te ne fai, a parte occupare spazio nella flash?

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.

leo72

Quello che dici è giusto, ma proprio perché un Atmega vergine funziona a 1MHz senza clock esterno.
Programmato con bootloader UNO lo imposti anche a 16 MHz. Ancora giusto.

Chi ha detto il contrario?  :P

niki77

La mia era una riflessione sul fatto che volendo , in caso di emergenza, si possa programmare al volo il booloader su un 328 assolutamente vergine semplicemente con 5 fili ed un arduino UNO (ma anche 2009 e tutte le altre credo).
Stasera moglie permettendo faccio delle prove.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Testato

non serve che tu faccia delle prove (se non per solo tuo uso e consumo), perche' tutto quello che hai detto e' vero.
Come gia' spiegatoti, a volte si ricevono micro non vergini, io ne ho ricevuti 3 su 4, quindi per tagliare la testa al toro, visto che il quarzo non puo' far male (cioe' se il micro e' vergine per davvero non si accorge nemmeno della sua presenza), la guida e' stata impostata dicendo di metterlo sempre.
In questo modo passa in secondo piano la presunta castita' dell'MCU  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Michele Menniti


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!

spiega, stavolta non ho capito io; quando chiedi ti fai scappare la logorrea e quando chiedi fai il criptico? Suvvia, un po' di coerenza!


La mia era una riflessione sul fatto che volendo , in caso di emergenza, si possa programmare al volo il booloader su un 328 assolutamente vergine semplicemente con 5 fili ed un arduino UNO (ma anche 2009 e tutte le altre credo).

I fili sono 6, sulla Guida presentata in questo Topic c'è scritto tutto ciò che ti serve per fare ciò che vuoi, ancora non capisco cos'altro devi fare di più.

Quote

Stasera moglie permettendo faccio delle prove.

perché, di solito si siede sulla breadboard per impedirti di sperimentare :smiley-eek-blue:?
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

#524
Oct 12, 2011, 09:28 am Last Edit: Oct 12, 2011, 09:31 am by niki77 Reason: 1

quando chiedi ti fai scappare la logorrea e quando chiedi fai il criptico? Suvvia, un po' di coerenza!

Questa proprio non l'ho afferrata...

Quote

Quote

Stasera moglie permettendo faccio delle prove.

perché, di solito si siede sulla breadboard per impedirti di sperimentare :smiley-eek-blue:?


No generalmente si siede da un altra parte ... ma è off topic
XD
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Go Up