STK500

Buongiorno ho letto che è possibile utilizzare lo STK500 come programmatore del micro atmega8u2 tramite l'IDE di Arduino, ma volevo chiedere come era possibile fare questo? Basta collegare STK 500, con inserito il micro , al pc e scegliere la porta seriale a cui è collegato dall'IDE di arduino? Grazie.

Ho collegato STK500 tramite adattatore alla porta USB del mio PC e ho scelto COM2 sull'IDE di Arduino per fare l'upload degli sketch. P.S. ovviamente ancora non ho inserito il micro sopra la STK500. :)

L'8U2 mi pare non sia supportato dell'IDE di Arduino. Devi almeno creare una nuova scheda in board.txt Come programmatore devi scegliere "AVR ISP" che corrisponde al STK500v1.

La scheda è questa? giusto?

Dovresti creare una board apposita nel file /hardware/arduino/boards.txt con "upload.using=" con il programmatore che stai usando (sceglilo fra quelli presenti in /hardware/arduino/boards.txt). Qui qualche info: http://arduino.cc/en/Hacking/Programmer

Leo, però un problema è che non può compilare sketch per l'8U2. Non è un micro supportato. L'unico firmware disponibile, già compilato, è quello per farlo funzionare come convertitore USB/Seriale e si carica direttamente tramite USB senza programmatore, in DFU (direct firmware upgrade mode)

PaoloP: Leo, però un problema è che non può compilare sketch per l'8U2. Non è un micro supportato. L'unico firmware disponibile, già compilato, è quello per farlo funzionare come convertitore USB/Seriale e si carica direttamente tramite USB senza programmatore, in DFU (direct firmware upgrade mode)

scusa Paolo come micro usiamo atmega328 errore mio :* questo è supportato giusto?

http://www.atmel.com/tools/STK500.aspx?tab=devices

su sto link dice di si :)

Grazie

PaoloP: L'8U2 mi pare non sia supportato dell'IDE di Arduino. Devi almeno creare una nuova scheda in board.txt Come programmatore devi scegliere "AVR ISP" che corrisponde al STK500v1.

La scheda è questa? giusto?

si cmq la stk500 che abbiamo è questa

PaoloP: Leo, però un problema è che non può compilare sketch per l'8U2. Non è un micro supportato.

Non lo può compilare dall'IDE, ma lo può compilare dal terminale. D'altronde, il firmware non è uno sketch dell'Arduino ma un sorgente in C/C++ quindi come si compila il bootloader della UNO/Leonardo, potrà anche compilare quello.

Una volta creato, lo flasha dall'IDE specificando il percorso del file .hex creato nel file boards.txt

leo72: Dovresti creare una board apposita nel file /hardware/arduino/boards.txt con "upload.using=" con il programmatore che stai usando (sceglilo fra quelli presenti in /hardware/arduino/boards.txt). Qui qualche info: http://arduino.cc/en/Hacking/Programmer

Grazie Leo è quello che dovrei fare...programmare atmega328 con l'STK500 facendo l'upload degli sketch con l'IDE di ARDUINO ;)

leo72: Dovresti creare una board apposita nel file /hardware/arduino/boards.txt con "upload.using=" con il programmatore che stai usando (sceglilo fra quelli presenti in /hardware/arduino/boards.txt). Qui qualche info: http://arduino.cc/en/Hacking/Programmer

dovrei aprire quel file board.txt e all'inizio scrivere atmega328.upload.using = STK500 se come programmatore uso l'STK 500 e come micro voglio programmare atmega328??? poi salvo quel file board.txt con le modifiche?

Si per il 328P non hai problemi. Nessuna modifica da fare. (tu avevi parlato di 8U2 :sweat_smile:) Selezioni Arduino UNO e come programmatore AVR ISP. Carichi lo sketch da compilare, inserisci il micro nella scheda STK500 e premi upload. :grin: Ti verrà cancellato il bootloader dal micro.

PaoloP: Si per il 328P non hai problemi. Nessuna modifica da fare. (tu avevi parlato di 8U2 :sweat_smile:) Selezioni Arduino UNO e come programmatore AVR ISP. Carichi lo sketch da compilare, inserisci il micro nella scheda STK500 e premi upload. :grin: Ti verrà cancellato il bootloader dal micro.

Ciao Paolo scusa quindi è come dicevo all'inizio ? sul primo post?

Si, tranne che li parlavi dell'8U2 che ci ha portato fuori strada. ]:D

PaoloP: Si, tranne che li parlavi dell'8U2 che ci ha portato fuori strada. ]:D

Scusatemi non ricordavo che usavo atmega328 :)

Atmega328*P* :P

Quindi facendo in quel modo lo programmo tramite l'IDE di Arduino utilizzando l'STK500? giusto ? Grazie

Si. Dovrebbe funzionare.

stk500v1 oppure stk500v2

Buongiorno ho provato a programmare l'atmega328p tramite il programmatore stk500 facendo l'upload degli sketch dall'IDE di ARDUINO il fatto è che sul mio atmega328p ho collegati a 2 piedini due led che dovrebbero blinkare x lo sketch che ci carico dentro ...lo sketch viene caricato ma i led non lampeggiano?

come programmatore sull'IDE ho scelto AVR ISP visto che utilizzo stk500 e come board ho scelto arduino Uno visto che devo programmare atmega328

avete qualche consiglio da darmi?

Grazie in anticipo ;)

Visto che è già successo... Hai individuato i piedini giusti? :sweat_smile:

PaoloP: Visto che è già successo... Hai individuato i piedini giusti? :sweat_smile:

I piedini dove ho collegato i led sono il 23 e 24 dell'atmega328p quello smd con il tqfp per intendersi che è saldato su un'altra scheda...e lo sketch che vado a caricare è questo

/*
    Lampeggio
 Accende il LED1 per un secondo, poi lo spegne per un secondo, ripetendo queste fasi.
 Accende il LED2 per un secondo, poi lo spegne per un secondo, ripetendo queste fasi.

 Questo codice è di dominio pubblico.
 */

//  I Pin 23,24 hanno un LED connesso.

int led1 = 23;
int led2 = 24;

//  La routine di setup viene eseguita una volta che viene premuto il pulsante di Reset
void setup() {                
  //  Inizializza i pin digitali come uscite.
  pinMode(led1, OUTPUT);    
  pinMode(led2, OUTPUT); 
}

//  La routine di Loop viene eseguito per sempre
void loop() {
  digitalWrite(led1, HIGH);   //  Accendi il LED1 (Livello di tensione HIGH)
  delay(2000);                //  Attendi 1 secondo
  digitalWrite(led1, LOW);    //  Spegni il LED1 (Livello di tensione LOW)
  delay(2000);                //  Attendi 1 secondo

  digitalWrite(led2, HIGH);   //  Accendi il LED2 (Livello di tensione HIGH)
  delay(2000);                //  Attendi 1 secondo
  digitalWrite(led2, LOW);    //  Spegni il LED2 (Livello di tensione LOW)
  delay(2000);                //  Attendi 1 secondo
}