Pages: [1] 2 3 ... 9   Go Down
Author Topic: Passare da 0022 a 1.0.1 per la programmazione ISP  (Read 9365 times)
0 Members and 1 Guest are viewing this topic.
Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK, con un po' di calma e le preziose indicazioni di Testato sono riuscito a programmare con 1.0.1. Altri l’hanno già fatto senza problemi, ma leggo che ogni giorno qualcuno ha le mie stesse difficoltà, proviamo a diffondere la cosa.
Un breve riepilogo a beneficio di tutti coloro che stanno usando le versioni IDE 0022-0023 e volessero passare alla nuova 1.0.1 . Le seguenti informazioni servono per la programmazione di uno sketch o del bootloader su un micro ATmega328P. Partendo dalla board che vi allego, potete con le opportune variazioni, crearvi tutte le versioni che volete. Raccomando la lettura della Guida di Testato per questa fase della programmazione, mentre per la parte hardware vale sempre la mia Guida che, a questo punto, mi corre obbligo di aggiornare quanto prima, aggiungendo un paragrafo specifico.
Una nota importante: purtroppo, senza una ragione valida, a mio parere, entrambe le versioni di IDE creano e modificano lo stesso file di preferenze e questo crea casino ovviamente; quindi se avete una cartella “personale” in cui avete finora tenuto cores e boards aggiuntive per la 0022, vi conviene sdoppiarla perché la 1.0.1 vuole file di info specifici e questa convivenza crea solo problemi! Ogni volta che aprirete l’una o l’altra versione di IDE dovrete prendervi la briga di controllare/cambiare il percorso della cartella personale.

Procedura:

0 - Aggiungi nel file boards.txt queste righe:
Code:
##############################################################
atmega3216.name=ATmega328P 16MHz
atmega3216.upload.protocol=arduino
atmega3216.upload.maximum_size=32768
atmega3216.upload.speed=115200
atmega3216.bootloader.low_fuses=0xff
atmega3216.bootloader.high_fuses=0xdf
atmega3216.bootloader.extended_fuses=0xFF
atmega3216.bootloader.path=optiboot
atmega3216.bootloader.file=optiboot_atmega328.hex
atmega3216.bootloader.unlock_bits=0x3F
atmega3216.bootloader.lock_bits=0x0F
atmega3216.build.mcu=atmega328p
atmega3216.build.f_cpu=16000000L
atmega3216.build.core=arduino
atmega3216.build.variant=standard
salva e chiudi il file. Apri l'IDE 1.0.1.
1 - Setta la board che usi (UNO, Duemilanove, ecc) e la relativa COM/USB/DEV (in base alla versione di S.O.).
2 - Setta come Programmatore "Arduino as ISP"
3 - Carica lo sketch ArduinoISP presente negli esempi ed invialo all'Arduino UNO
4 - Carica ora lo sketch blink
5 - Setta la board "ATmega328P 16MHz"
6 - Esegui il comando File - Carica con un programmatore
Con questa semplice procedura a me ha funzionato al primo colpo.
Se invece di uno sketch vuoi caricare il bootloader, devi eseguire solo i passi 1-2-3 quindi:
4 - Esegui il comando Strumenti - Scrivi il bootloader.
Tieni presente che:
il micro esce di fabbrica ad 1MHz, se vuoi usarlo a 16MHz devi settare i fuse; l'unico modo per settare i fuse è caricare PRIMA il bootloader e poi inviare lo sketch.
[le istruzioni sono al singolare perché stavo scrivendo in risposta a Marcus Barnet, poi ho pensato che fosse preferibile aprire un Topic di pubblica utilità.]
« Last Edit: June 12, 2012, 04:48:40 am by Michele Menniti » Logged

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

0
Offline Offline
Shannon Member
****
Karma: 129
Posts: 10447
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ottimo lavoro, spero di vedere a breve tutte le guide aggiornate per la 1.0.1
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Marche
Offline Offline
Edison Member
*
Karma: 33
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Chiaro come sempre, bravo Michele.
Ho una domanda: al primo passaggio dici "Setta la board UNO e la relativa COM/USB/DEV quella che è", lo stesso discorso vale ugualmente per arduino 2009?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ottimo lavoro, spero di vedere a breve tutte le guide aggiornate per la 1.0.1
Grazie Lesto smiley l'idea è quella, per ora, di aggiungere uno-due paragrafi nella sezione delle tecniche ISP, per spiegare le differenze tra le due versioni; inoltre devo sistemare un paio di cosette che nel tempo si sono rivelate non molto chiare, tipo il fatto che il caricamento del bootloader è indispensabile per cambiare i fuse, prima di inviare uno sketch ad un micro che dovrà lavorare ad un clock più elevato di 1MHz (fatto salvo l'uso di AVRDUDE in modalità terminale); a diversi utenti questa cosa non è risultata chiara e hanno avuto qualche difficoltà. Se hai suggerimenti sono più che ben accetti smiley-lol

@ BUD: grazie anche a te. Certamente, come detto stavo scrivendo in risposta a Marcus, che usa la UNO, e non mi sono preoccupato di standardizzare, proprio perché mi riservo di modificare seriamente la Guida (però ora correggo... smiley). Resta sempre valido il discorso che a prescindere dalla board che usi puoi caricare sullo stand-alone il bootloader che più ti piace, tanto per fare un esempio.
La chiave di tutto sta nel fatto che le board virtuali hanno alcune varianti, ben descritte da Testato e soprattutto nel fatto che devi tenere alla larga tutto il "materiale aggiuntivo" (leggi cartella "personale") per la 0022/23, non che crei conflitti ma, almeno a me, manda in confusione. Certo se facessero due diversi file di preferences sarebbe davvero l'ideale.
Logged

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

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 415
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie al mitico Michele Menniti, sono riuscito a risolvere il problema della programmazione tramite ISP.

Premetto che uso MAC OSX e Arduino 1.0.1.

Per la programmazione dell'atmel in standalone, ho utilizzato i passaggi elencati nel primo post di questo topic, però, se usavo la board personalizzata ricevevo un errore di questo tipo:

Quote
Dimensione del file binario dello sketch: 1.084 bytes (su un massimo di 32.768 bytes)
avrdude: stk500_recv(): programmer is not responding

Per risolvere, prima di caricare lo sketch, ho dovuto scegliere come board quella di Arduino UNO e tutto è andato a buon fine.

Non lo so, magari può servire a qualcuno..
Logged

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 415
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Al primo tentativo, comunque, quell'errore me lo da lo stesso, ma poi se riprovo me lo carica.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Al primo tentativo, comunque, quell'errore me lo da lo stesso, ma poi se riprovo me lo carica.
Beh, grazie del "mitico" ma mi pare davvero troppo smiley-red
Invece sono io che ringrazio te ed un altro amico (su Open Electronics) che mi avete "costretto" a prendere finalmente di punta queste benedette prove e finalmente le ho portate a buon fine.
Purtroppo non ho possibilità di fare test su MAC OS, vorrei però chiederti:
Se provi a caricare, come prima prova, il bootloader (ovviamente usando la board Arduino UNO) ti dà sempre errore al primo tentativo?
Sul tuo topic mi pare di capire che si accendono i tre led, ma lì se non erro nei comments è scritto che uno dei tre devi usarlo "rosso" in quando se si accende indica errore, prova a controllare...
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oggi mi sono cimentato anche io con la 1.0.1.
Sono riuscito a programmare un 644 ed un 1284 in standalone usando l'Arduino come ISP. Mi ci è voluto un po' per capire che dovevo usare il comando presente nel menu File invece che usare semplicemente l'upload, come si faceva con la 0022, ma a parte questo ci sono riuscito  smiley-lol
Domani provo ad integrare il core Tiny, se tutto va bene il passaggio alla 1.0.1 si pnuò dire concluso. Mi restano solo i dubbi sulla questione SoftwareSerial con i Tiny, ma qualcuno tempo fa aveva fatto delle prove e mi pare che fossero state positive.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oggi mi sono cimentato anche io con la 1.0.1.
Sono riuscito a programmare un 644 ed un 1284 in standalone usando l'Arduino come ISP. Mi ci è voluto un po' per capire che dovevo usare il comando presente nel menu File invece che usare semplicemente l'upload, come si faceva con la 0022, ma a parte questo ci sono riuscito  smiley-lol
Domani provo ad integrare il core Tiny, se tutto va bene il passaggio alla 1.0.1 si pnuò dire concluso. Mi restano solo i dubbi sulla questione SoftwareSerial con i Tiny, ma qualcuno tempo fa aveva fatto delle prove e mi pare che fossero state positive.
quale core hai usato per i 644/1284? io ho provato solo il 328 perché poi mi sono messo a scrivere le istruzioni (perfino quelle in inglese per Open El  smiley-sweat)
Inoltree ho fatto l'aggiornamento della toolchain e poi ho usato con successo il tuo ISP smiley-wink
Prossime prove proprio i tiny e i bestioni, mi servono info....grazie smiley
Logged

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

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi ci è voluto un po' per capire che dovevo usare il comando presente nel menu File
tutta la mia guida si basa sulla spiegazione di questo punto  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

quale core hai usato per i 644/1284?
Il core che ho citato più volte nel thread di Pelletta sul 644, il maniacbug-mighty1284, che poi è lo stesso che è stato usato come core per la Bobuino. Inoltre quel core ha un bootloader modificato (Optiboot 4.5) che dovrebbe risolvere il problema della programmazione degli sketch oltre i 64 kB di flash.

Quote
Inoltree ho fatto l'aggiornamento della toolchain e poi ho usato con successo il tuo ISP smiley-wink
Prossime prove proprio i tiny e i bestioni, mi servono info....grazie smiley
Appena ne avrò  sarai il primo a saperle smiley-wink
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi ci è voluto un po' per capire che dovevo usare il comando presente nel menu File
tutta la mia guida si basa sulla spiegazione di questo punto  smiley

Vero, infatti ti ho citato nel post iniziale perché grazie a quelle info e anche a quelle relative alle boards virtuali sono riuscito a flashare sia il bl che uno sketch al primo colpo.
Però ho un appunto da farti: se non erro tu ad un certo punto dici che le board virtuali non servono e che si possono usare quelle dell'IDE, però con quelle come programmi i chip con clock diversi da 16MHz? Per non parlare dei modelli di micro non usati dalle board Arduino...

@ Leo: ma quel core non ha i tuoi interventi correttivi, che farai, ti metti al lavoro su questo nuovo? Ormai è inutile fare un bootloader per la 0022.
Logged

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

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si ho letto, grazie della citazione.

per il discorso delle board il concetto e' questo:
- con l'ide fino al 0.23 eri costretto a fare le board per qualsiasi cosa, proprio perche' non era previsto ufficialmente l'upload via icsp di sketch.
Ora che e' ufficialmente supportato tutte le board presenti permettono di usarlo, senza toccarle.
E' normale che se ti serve una board che non c'e' te la devi creare, mentre se ti va bene una delle tante presenti la usi cosi' come e'.
L'utente medio che vuole caricare blink via icsp su una ArduinoNG, oppure su una Arduino 2009, oppure su una Uno, ecc ecc non dovra' nemmeno sapere cosa e' una board.
Questo prima non era possibile

Ho voluto sottolineare entrambe le cose, sia che quelle presenti non serve toccarle, sia ho spiegato come creare, ed anche inserita una per atmega8A, perche' nei casi in cui nessuna delle board ufficiali vada bene la si puo' creare da solo, mettendo in evidenza le differenze da tener presente nella creazione di nuove board rispetto alle vecchie.
« Last Edit: June 12, 2012, 04:50:38 pm by Testato » Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Leo: ma quel core non ha i tuoi interventi correttivi, che farai, ti metti al lavoro su questo nuovo? Ormai è inutile fare un bootloader per la 0022.
Ho già dato un'occhiata al core maniacbug ed ho sistemato l'unica cosa che mancava, per cui per quanto riguarda i 644/1284 sono a posto. Adesso devo guardare il core Tiny ma, soprattutto, le librerie per la seriale e l'I2C.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 498
Posts: 12303
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Leo: ma quel core non ha i tuoi interventi correttivi, che farai, ti metti al lavoro su questo nuovo? Ormai è inutile fare un bootloader per la 0022.
Ho già dato un'occhiata al core maniacbug ed ho sistemato l'unica cosa che mancava, per cui per quanto riguarda i 644/1284 sono a posto. Adesso devo guardare il core Tiny ma, soprattutto, le librerie per la seriale e l'I2C.
ok, appena devo mettere mano a queste famiglie ti contatto e mi dai il materiale, inutile che faccio collezione ora....
Logged

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

Pages: [1] 2 3 ... 9   Go Up
Jump to: