Ho appena recuperato un ATmega16.
Sto cercando di programmarlo utilizzando il mio Arduino con lo sketch "Arduino as ISP", che non fa altro che trasformare l'Arduino in un programmatore ISP.
Prima di tutto, da AVR Studio ho creato un nuovo progetto (con target ATmega16) e ho inserito il seguente codice:
- Codice: Seleziona tutto
#include <avr/io.h>
int main(void)
{
DDRA = 0xFF;
PORTA = 0x00;
unsigned char c = 0;
while(1)
{
PORTA = c;
if (c = 255)
{
c = 0;
} else {
c++;
}
}
}
Non ha nessuno scopo, non sono sicuro che funzioni perché finora ho programmato solo Arduino, ma teoricamente dovrebbe mettere ripetutamente sulla porta A i valori da 0 a 255.
Ho compilato il progetto, ma ho scoperto che AVR Studio 5 non riconosce l'Arduino come fosse un programmatore.
Così, "googlando" un po', ho trovato un programma che si chiama "AVR Burn-O-Mat", che non è altro che un'interfaccia grafica per AVRDUDE.
Ho impostato la porta seriale dell'Arduino e su tipo di programmatore ho messo "Atmel AVRISP" e ho caricato il file HEX che ho generato prima con AVR Studio.
La scrittura della flash mi ha però dato errore. Questo è il log:
- Codice: Seleziona tutto
avrdude.exe: stk500_getsync(): not in sync: resp=0x00
avrdude.exe: stk500_disable(): protocol error, expect=0x14, resp=0x51
Ora, considerando che io non ho usato nessun oscillatore esterno e che l'ATmega16 era stato già precedente usato e il suo precedente utilizzatore non si ricorda se l'ultima volta avesse usato l'oscillatore interno o quello esterno, potrebbe essere questa la causa?
Spero di essere stato abbastanza chiaro, se non avete capito qualcosa chiedetemi pure.
Grazie a tutti in anticipo.