Go Down

Topic: ATMega328 stand alone 1 MHz errore (Read 7894 times) previous topic - next topic

menniti

No, ma devi avere pazienza, siamo qui per passatempo non per lavoro, se stiamo tutto il giorno sul Forum la sera non si mangia :D
Quando fai il caricamento via seriale (tx, ecc)lo togli il micro originale da Arduino?
Una volta che hai caricato il bootloader a 8MHz lo hai sostituito il quarzo da 16 con uno da 8 sulla breadboard?
Che board stai usando nell'IDE per lavorare col micro a 8MHz? e quali valore di LOW FUSE stai usando?
Secondo me c'è qualche casino a livello clock nella versione a 8MHz

Goretto

#16
Mar 04, 2014, 09:09 pm Last Edit: Mar 04, 2014, 10:51 pm by Goretto Reason: 1
Eccomi, intanto mi scuso per l'insistenza! So benissimo che lo fate per passatempo, i problemi di tutti i giorni già son troppi se poi c'è da sobbarcarsi anche i problemi degli utenti di un intero forum non si vive più, ne sono consapevolissimo e mi ritengo già fortunatissimo ad avere un'assistenza da voi gratuita, aggiungo solo, beati voi che avete il "problema" del lavoro... lo vorrei tanto anche io! se solo qualcuno me lo desse...  :smiley-sad-blue:

Ad ogni modo... premetto che ho risolto tutto e sono al settimo cielo, ora prima rispondo e poi spiego cosa ho cambiato.

Quote
Quando fai il caricamento via seriale (tx, ecc)lo togli il micro originale da Arduino?

Si,signore.

Quote
Una volta che hai caricato il bootloader a 8MHz lo hai sostituito il quarzo da 16 con uno da 8 sulla breadboard?

No, signore. Non ho mai letto che bisogna farlo da nessuna parte e non ci avevo pensato...

Quote
Che board stai usando nell'IDE per lavorare col micro a 8MHz?

Quella creata con la procedura descritta nella guida ovvero:
"ATmega in Stand Alone 8MHz internal clock (w/ Arduino as ISP)"

Quote
quali valore di LOW FUSE stai usando?

quelli della guida, cioè 0xe2

-------------------------
Come sono riuscito a fare funzionare il tutto?
Ho provato a creare una terza nuova board virtuale, con i parametri dettati nella guida ufficiale di Arduino con le seguenti stringe:

Code: [Select]
atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock)

atmega328bb.upload.protocol=stk500
atmega328bb.upload.maximum_size=30720
atmega328bb.upload.speed=57600
atmega328bb.bootloader.low_fuses=0xE2
atmega328bb.bootloader.high_fuses=0xDA
atmega328bb.bootloader.extended_fuses=0x05
atmega328bb.bootloader.path=arduino:atmega
atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.bootloader.unlock_bits=0x3F
atmega328bb.bootloader.lock_bits=0x0F
atmega328bb.build.mcu=atmega328p
atmega328bb.build.f_cpu=8000000L
atmega328bb.build.core=arduino:arduino
atmega328bb.build.variant=arduino:standard



Ho caricato il bootloader selezionando la sopracitata board virtuale e poi ho caricato uno sketch con metodo seriale TX, RX, GND, 5V,GND pin to pin solita e tutto è andato a buon fine.

Le differenze tra board virtuale creata dalla guida del buon Prof.Menniti sono le seguenti:
(in rosso le vecchie, in blu le nuove)

atmega328bb.upload.maximum_size=30720
mega3208.upload.maximum_size=32768

atmega328bb.upload.speed=57600
mega3208.upload.speed=115200

atmega328bb.bootloader.high_fuses=0xDA
mega3208.bootloader.high_fuses=0xdf

atmega328bb.bootloader.extended_fuses=0x05
mega3208.bootloader.extended_fuses=0x07

atmega328bb.bootloader.path=arduino:atmega
mega3208.bootloader.path=optiboot

atmega328bb.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
mega3208.bootloader.file=optiboot_atmega328.hex

atmega328bb.build.core=arduino:arduino
mega3208.build.core=arduino

atmega328bb.build.variant=arduino:standard
"""mancante""" (aggiunta su consiglio del buon Leo72 senò l'ide non funzionava mega3208.build.variant=standard)

------------------------

Spero di aver fatto una segnalazione gradita e di non aver fatto solo perdere del tempo.
Il mio dubbio è, non è che i valori sono così discordanti perchè uso l'IDE 1.5.1 R2  1.0.5 R2al posto della 1.0.1?

gpb01


Il mio dubbio è, non è che i valori sono così discordanti perchè uso l'IDE 1.5.1 R2 al posto della 1.0.1?


Non entro nel merito del thread ...
... vorrei solo capire perché cavolo uno, non solo si mette ad usare un software in BETA invece che uno stabile e definitivo, che già è tutto dire, ma oltretutto di una BETA vecchia ed obsoleta che conteneva degli errori !!!  :smiley-eek: :smiley-eek: :smiley-eek:

Se non è masochismo questo ...  ]:D

Guglielmo
Search is Your friend ... or I am Your enemy !

menniti

Goretto mannaggia a te. Tu hai solo una grande confusione in te. Il problema nasce sempre da una lettura superficiale della guida. Risulr: confusione tra versioni ide, tra isp e seriale, tra clock esterno e interno. Ora non ho tempo, domani ti darò gli indispensabili chiarimenti, almeno capirai PERCHÉ hai risolto. :smiley-sweat:

Goretto

#19
Mar 04, 2014, 10:49 pm Last Edit: Mar 04, 2014, 10:54 pm by Goretto Reason: 1
Guglielmo e Menniti ferrrrrmi ho solo sbagliato a digitare la sigla!!!  :smiley-mr-green: 1.0.5 R2!!! Non 1.5.1R2 (che manco esiste credo)  :smiley-mr-green:  Lo dimostra anche il VIDEO che ho fatto pocanzi... oooops  :smiley-sweat:

Come daltronde ho dichiarato all'inizio del post.... sto usando l'ultima versione ufficiale stabile nessuna beta.

menniti

Lo vedi che sei in confusione? :P domani ti spiego tutto x bene  ;)

Goretto

ci sono nato in confusione!  :smiley-mr-green: a domani!  ;)

menniti

#22
Mar 05, 2014, 05:08 pm Last Edit: Mar 06, 2014, 12:27 pm by Michele Menniti Reason: 1
Ciao, risolta la questione dell'IDE, resta appunto la questione dell'IDE  :P leggendo bene la Guida, specialmente nella parte introduttiva, ho spiegato che essa si basa sull'IDE 0022 e che ho scritto un capitolo apposta per l'IDE 1.0.x che, se te lo vai a leggere, ti dice appunto che devi aggiungere alcune righe extra alle board virtuali ed usare un comando alternativo.
Seconda cosa, io non ho mai spiegato in quella Guida come mettere il bootloader su micro con clock inferiore a 16MHz, a prescindere dal fatto che possa essere interno o esterno, però ho spiegato chiaramente che se vuoi programmare un micro via ISP, puoi risparmiare tutta la flash occupata dal bl perché non serve. Allora se tu parti da una board (la mia) che NON prevede il bootloader e poi ci vai a caricare il bootloader ovvio che, l'operazione va a buon fine ma il bootloader viene scritto nella prima locazione di memoria e non nella parte terminale della flash, di conseguenza probabilmente non lavora come deve.
Le differenze tra la mia board e quella che ti ha risolto il problema sono appunto quelle:
1 - righe previste per l'IDE 1.0.1 mentre la mia board è per la 0022
2 - HFuse = DA che serve appunto per riservare lo spazio al bootloader e lanciarlo dalla sua corretta allocazione
3 - upload.maximum_size=30720, che imposta la quantità che resta libero considerando quella occupata dal bootloader (1,5k, ma l'impostazione va fatta a 2k)
4 - l'EFuse invece serve per impostare il controllo della tensione di alimentazione, ma è ininfluente
5 - il bootloader nel mio caso era ininfluente in quanto non veniva caricato, o meglio serviva solo per impostare la prima volta i fuse, mente a te serve giustamente una versione compilata a 8MHz

Ora ti racconto una barzelletta: vuoi sapere cosa ti bastava fare per risolvere il tuo problema?
1 - Fare una copia esatta della board "Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328"
2 - Rinominare il prefisso delle varie righe
3 - Cambiare l'LFuse in E2 (clock interno a 8MHz)
;) e ti risparmiavi tre giorni di fatiche di Ercole  :)
Ci aggiorniamo per la tua scheda, avvisami quando fai la spedizione.

Goretto

#23
Mar 06, 2014, 11:42 am Last Edit: Mar 06, 2014, 11:53 am by leo72 Reason: 1
Ossignore iddio ma che minestrone ho fatto della tua guida!  :smiley-zipper:
Merito di essere punito a scariche elettriche sulle p***e!  :smiley-sad-blue:
Mi hai fornito una spiegazione esemplare! sembri quasi.... un docente! mai pensato di insegnare in una scuola?  :smiley-mr-green:  ;)

Grazie di cuore! mi sa che Leo quando ha letto le ultime mie battute ha chiuso la discussione dal nervoso... Leo non te la prendere! Imparerò.... spero, hihihi

E non è mica finita qui! dopo tutto sto macello, il circuito che ho realizzato con il chip finalmente programmato e downclockkato a puntino, è totalmente inefficace per un maledettissimo ritorno di massa che ho sull'hardware! datemi un litro di benzina e un accendino!!! devo "sistemare" le cose!!!!  ]:D

juan3211


Ciao, risolta la questione dell'IDE, resta appunto la questione dell'IDE  :P leggendo bene la Guida, specialmente nella parte introduttiva, ho spiegato che essa si basa sull'IDE 0022 e che ho scritto un capitolo apposta per l'IDE 1.0.x che, se te lo vai a leggere, ti dice appunto che devi aggiungere alcune righe extra alle board virtuali ed usare un comando alternativo.
Seconda cosa, io non ho mai spiegato in quella Guida come mettere il bootloader su micro con clock inferiore a 16MHz, a prescindere dal fatto che possa essere interno o esterno, però ho spiegato chiaramente che se vuoi programmare un micro via ISP, puoi risparmiare tutta la flash occupata dal bl perché non serve. Allora se tu parti da una board (la mia) che NON prevede il bootloader e poi ci vai a caricare il bootloader ovvio che, l'operazione va a buon fine ma il bootloader viene scritto nella prima locazione di memoria e non nella parte terminale della flash, di conseguenza probabilmente non lavora come deve.
Le differenze tra la mia board e quella che ti ha risolto il problema sono appunto quelle:
1 - righe previste per l'IDE 1.0.1 mentre la mia board è per la 0022
2 - HFuse = DA che serve appunto per riservare lo spazio al bootloader e lanciarlo dalla sua corretta allocazione
3 - upload.maximum_size=30720, che imposta la quantità che resta libero considerando quella occupata dal bootloader (1,5k, ma l'impostazione va fatta a 2k)
4 - l'EFuse invece serve per impostare il controllo della tensione di alimentazione, ma è ininfluente
5 - il bootloader nel mio caso era ininfluente in quanto non veniva caricato, o meglio serviva solo per impostare la prima volta i fuse, mente a te serve giustamente una versione compilata a 8MHz

Ora ti racconto una barzelletta: vuoi sapere cosa ti bastava fare per risolvere il tuo problema?
1 - Fare una copia esatta della board "Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328"
2 - Rinominare il prefisso delle varie righe
3 - Cambiare l'LFuse in E2 (clock interno a 8MHz)
;) e ti risparmiavi tre giorni di fatiche di Ercole  :)
Ci aggiorniamo per la tua scheda, avvisami quando fai la spedizione.


Hi and excuse me, but i don't know italian.

Is ATmegaBOOT_168_atmega328_pro_8MHz.hex bootloader an optiboot's one ? I think it isn't, is it ?

I am looking for an optiboot bootloader for an ATMEGA328 with 9600 bauds and 8 MHz, also for 1 MHz. Both of them with internal clock.

I have tried to compile optiboot, but ld.exe crashed always.

What I have to do ??

Best regards,

leo72

You're right, that bootloader is NOT an Optiboot.
But you could try to compile yourself the Optiboot for 8 MHz, by using the "atmega328_pro8" param passed to make.

juan3211


You're right, that bootloader is NOT an Optiboot.
But you could try to compile yourself the Optiboot for 8 MHz, by using the "atmega328_pro8" param passed to make.



I have tried to compile optiboot, but ld.exe crashed always.

I'm on Win7 64 bits and I already try doing it with cmd with admin rights,


leo72

ld.exe included in the Arduino IDE has a flaw and it doesn't work correctly.
You have to look for a newer version, from WinAvr. I don't have the links at the moment but if you do a little search I think you'll find it (I don't use Windows, so I don't help you).

Gonoshift

#28
Apr 26, 2015, 02:44 pm Last Edit: Apr 26, 2015, 02:45 pm by Gonoshift
In rete ho trovato chi ha compilato un Optiboot ad 1MHz!

Le istruzioni sono qui:
http://auroraproject.eu/how-to-setup-an-arduino-1-8v-1mhz-using-internal-oscillator/

Go Up