Pages: [1] 2 3   Go Down
Author Topic: Problemi Programmazione ISP  (Read 1996 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


  Dopo aver letto le guide di MENNITI e TESTATO
  Mi sono messo al lavoro.

  I miei componenti:

  Sistema operativo Ubuntu 10.10

  Programmatore       - Arduino UNO rev 3
  Chip da programmare - ATmega328P su breadboard
  IDE 1.0
 
  I collegamenti li ho eseguiti come da guida MENNITI
  utilizzando il connettore 6 poli esempio di pag. 27
 
  Come indicato da TESTATO a pag.2
 
  1) Seleziono Board->Arduino UNO
  2) Carico lo sketch ArduinoISP da \Examples\ArduinoISP
     Nel caricamento rilevo dei Warning vedi allegati Warn_1 e Warn_2
  3) Seleziono la borad di destinazione, ho provato diverse board:
            Arduino Uno                                     
            Arduino BT W/Atmega328
            Arduino Pro or Pro Mini (5v, 16Mhz) w/ATmega328
  4) Seleziono Tools\Programmer->Arduino as ISP
  5) Caricamento dello sketch blik.ino tramite
            File\Upload Using Programmer
     I LED del caricamento lavorano però mi ritorna
     questo Error "avrdude: stk500_recv(): programmer is not responding:

     Naturalmente non mi funziona.
       
 Ma dove sbaglio?

 Grazie
 Carletto           
Logged

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma nel chip di destinazione hai messo prima il bootloader?
Logged

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 312
Posts: 21601
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma nel chip di destinazione hai messo prima il bootloader?

Con la tecnica ISP il bootloader non serve perché scrivi direttamente nella Flash.

@carletto:
Questo errore:
Error "avrdude: stk500_recv(): programmer is not responding:
ti dice che c'è qualcosa che non va con l'Arduino che sta lavorando come programmatore ISP.
Prova a  sostituire lo sketch ArduinoISP con lo sketch ArduinoISP2 che ho modificato qualche settimana fa. Questo perché lo sketch allegato alla IDE 1.0 non funziona, come è riportato anche nella guida di Testato. Ma l'ArduinoISP è migliore del TinyISP che c'è riportato nella guida di Testato (non me ne voglia Testato  smiley-sweat ).

* ArduinoISP2.pde (12.77 KB - downloaded 9 times.)
Logged


MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono d'accordo con te leo, però se lui seleziona la board come se dovesse programmare normalmente una scheda riprogramma l'arduino che fa da isp, o sbaglio?

Io ricordo di aver dovuto modificare il file board.txt creando una entry apposita che tra le varie configurazioni aveva nomeconfigurazione.upload.usign=arduinoisp , altrimenti mi scriveva lo sketch sull'arduino che fungeva da programmatore!
Logged

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

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

Per caricare il bootloader via ISP non serve alcuna modifica alla board, con IDE 0022/23 è sufficiente caricare ArduinoISP sull'Arduino, selezionare una delle board ufficiali di Arduino (in base alla versione di bl che si vuole caricare), e poi il burn bootloader automaticamente va a scrivere via ISP sul micro stand-alone.
Se invece si vuole caricare uno sketch via ISP allora serve la riga aggiuntiva, altrimenti lo sketch finisce sull'Arduino, quindi non bisogna fare confusione tra le due operazioni.
Nel caso dell'IDE 1.0 la questione è un po' diversa, peraltro ArduinoISP originale non funziona e Testato ha messo a punto una tecnica che supera il problema con il TinyISP, confermo che la versione fatta da Leo e BrainBooster (almeno io ricordo che c'aveva messo mano pure lui) è decisamente superiore, ma non credo che da sola garantisca il buon fine dell'operazione; se c'è un errore non penso dipenda dal TinyISP.
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

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

Ma nel chip di destinazione hai messo prima il bootloader?

Con la tecnica ISP il bootloader non serve perché scrivi direttamente nella Flash.

Anche se non bisogna dimenticare di specificare che l'operazione di bootloader è obbligatoria se si sta usando un micro vergine e si pensa di volerlo far lavorare a frequenze diverse da 1MHz (valori di default); infatti solo col caricamento del bootloader è possibile cambiare i valori dei fuse. Naturalmente l'operazione è fattibile anche con AVRDUDE ma quando si parla con coloro che stanno facendo i primi tentativi meglio restare sulle facili operazioni software.
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

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Premetto che non ho avuto modo di valutare bene l'ide arduino 1.0 ed eventuali sostanziali modifiche, in questo caso , visto che carletto doveva caricare lo sketch blink su un chip vergine tramite arduinoisp, non è necessario che crei una entry specifica sul file board.txt con la configurazione che ho allegato nel post precedente (ma in tutti i casi se il chip fosse veramente completamente vergine in questa maniera non verrebbero scritti i fuses con la configurazione del clock e varie e pertanto non funzionerebbe mai a 16mhz), oppure carichi necessariamente precedentemente il bootloader?
Logged

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

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

Temo di non aver capito bene la domanda, faccio quindi un riepilogo per totale chiarezza:
1 - Il chip esce da ATMEL a 1MHz
2 - Può essere programmato direttamente con una board virtuale (restiamo su IDE 0022/23 per non fare confusione) a patto che essa preveda la configurazione con clock interno a 1MHz
3 - Se invece vuole settare il chip a frequenza diversa (p.es 16MHz) DEVE farlo caricandoci il bootloader dell'UNO o 2009, usando le relative board Arduino.
4 - Se NON fa precedere questa operazione e invia direttamente lo scketch, anche se usa una board virtuale settata per 16MHz, i fuse del micro resteranno settati per 1MHz, quindi lo sketch darà letteralmente i numeri, cosa visibile facilmente anche colo solo blink classico a 1Hz
5 - Se carica lo sketch CORRETTAMENTE dopo l'invio del bootloader tutto funzionerà ma il bootloader verrà cancellato, ma questo non ha alcuna importanza ai fini di un circuito stand-alone
6 - Se vuole avere un su chip bootloader e sketch quest'ultimo può caricarlo solo tramite tecnica seriale o montando il chip su Arduino al posto dell'originale
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

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi, con la tecnica isp si sovrascrive sempre e comunque il bootloader (giusto e sacrosanto) , caricare il bootloader serve più che mai a  settare i fuses in questo caso.

Quello che però non ha specificato è se per scrivere lo sketch blink via isp (ovviamente su un chip con fuses settati correttamente e correttamente collegato ad un arduino con a bordo il corretto software per emulare ISP) sia necessario o meno modificare board.txt come illustrato.

Con 022/023 mi pare di si perchè ci ho sbattuto la testa, con 1.0 è cambiato qualcosa?
Logged

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

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dipende dalla frequenza di clock dell'atmega di destinazione.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 156
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

4 - Se NON fa precedere questa operazione e invia direttamente lo scketch, anche se usa una board virtuale settata per 16MHz, i fuse del micro resteranno settati per 1MHz, quindi lo sketch darà letteralmente i numeri, cosa visibile facilmente anche colo solo blink classico a 1Hz
Io non riesco proprio a caricarlo il mio sketch.

Ho caricato ArduinoISP2.pde di leo.
Ho provato a compilarlo è andato a buon fine però con dei warning come da allegati.
Poi con File\Upload Using programmer carico il mio blink ma ricevo sempre lo stesso errore:
avrdude: stk500_recv(): programmer is not responding.
Allego lo schema che ho utilizzato e chiedo un chiarimento.
Come si vede l'ho collegato cosi:

Arduino programmer SCK    con ATmega328P pin 19 SCK
    "             "            MOSI            "                     17 MOSI
    "             "            MISO            "                     18 MISO
E' corretto?

Non sono considerati Arduino come Master e l'ATmega328P come Slave?
Quindi MOSI con MISO e
           MISO con MOSI?

Grazie

Carletto


* ArduinoISP2_a.png (7.42 KB, 680x102 - viewed 13 times.)

* ArduinoISP2_b.png (4.41 KB, 718x37 - viewed 13 times.)
* UNO_ICSP_C.pdf (10.09 KB - downloaded 15 times.)
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

devi collegare ogni pin al proprio omologo non invertirli
Logged

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Arduino programmer SCK    con ATmega328P pin 19 SCK
    "             "            MOSI            "                     17 MOSI
    "             "            MISO            "                     18 MISO
E' corretto?

Non sono considerati Arduino come Master e l'ATmega328P come Slave?
Quindi MOSI con MISO e
           MISO con MOSI?

Grazie

Carletto


MOSI = MasterOutputSlaveInput
MISO = MasterInputSlaveOutput

non devi collegarli all'inverso come si fa con Tx e Rx della seriale.
Logged

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

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no
Logged

0
Offline Offline
Faraday Member
**
Karma: 38
Posts: 5601
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con 022/023 mi pare di si perchè ci ho sbattuto la testa, con 1.0 è cambiato qualcosa?
Si, e' cambiato
Nell'ide 1.0 e' stato ufficialmente inserita la programmazione di sketch via ISP, proprio per supportare questa importante novita' e' nata la mia guida.
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

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