Pages: 1 ... 15 16 [17] 18 19 ... 36   Go Down
Author Topic: Topic permanente di programmazione newbie  (Read 28307 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho scaricato invece il core tiny, ma sei sicuro che si tratti di una versione modificata dell'originale? Ricordo che per diverso tempo Leo fece riferimento ad un core che dava parecchi problemi, non vorrei che si trattasse di quello smiley-sad-blue
Il core a cui facevo io riferimento in passato era quello di Saporetti, che consigliavo di non usare perché molto limitato.
Il core Tiny che ha modificato Brain mi pare che sia stato toccato solo nei file pins_arduino.c e pins_arduino.h per inserire il riconoscimento del 4313 ed il setup della piedinatura. Non vedo però le modifiche da apportare ad avrdude.conf per fargli riconoscere il micro.

EDIT: ho provato a cambiare in AVRDUDE.CONF la signature (tecnica adottata con successo per il 328 noP) in FF FF FF ma niente da fare. Il messaggio " use -F to override this check." significa che posso bypassare il controllo, ma come devo usarlo questo parametro, forse si riferisce alla riga di comando?
Sì, questi sono parametri da dare ad avrdude via terminale. Il parametro "-F" forza il programma a saltare i check di verifica di cui parlava astrobeed: alle volte riesci a portare a termine un'operazione di scrittura, ma non sempre con -F risolvi tutto, andrebbe visto che controlli avrdude salta usando quel parametro.
Logged


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

@ BB e Astro: ok, la signature non si ripristina e qui ormai ci siamo arrivati tutti, perfino io…. Riguardo la programmazione ti sei spiegato benissimo, io mi riferivo al fatto che l’IDE è evidentemente uno di quei programmi che NON permette la programmazione del micro e quindi per me l’unica possibilità resta l’HV o il Dragon, quando finalmente troverò il tempo di metterlo in moto (erano questi gli usi futuri a cui mi riferivo)
@ Leo e BB: quindi ora vorrei poter aggiungere una board per programmare correttamente il 4313 (mi basta 1MHz); da quanto ho capito i file da modificare sono tre:
 – AVRDUDE.CONF: qui (come feci allora col 328noP) mi limito a fare un copincolla del 2313 ed a modificare nome, descrizione e signature; Vi ricordo che ieri, semplicemente modificando la signature ho programmato il 4313 con la board ed il finto boootloader del 2313, cambiando solo il valore del LFuse che, peraltro, non ha alcuna importanza per gli sketch; quindi la manovra su AVRDUDE in linea di massima va; poi non scordiamo tutto ciò che disse Astro a proposito di questo tipo di operazioni barbariche, ma visto che ieri ho fatto lampeggiare tre led senza questioni, a me basta.
– pins_arduino.c e pins_arduino.h: anche qui posso fare un copincolla del 2313 modificando le sole info varianti, ho già verificato che la pinature è identica e le assegnazioni dei pin sono perfettamente compatibili
-boards.txt: e anche qui una nuova board a partire dalla 2313 in cui modifico i vari attributi, l’LFuse (giusto per esattezza) e il nome dell’mcu, mentre lascio inalterato il bootloader che, a farla sporca, forse potrei copiare e rinominare opportunamente nella cartella specifica.
La questione è: tutto ciò mi evita l’errore dell’IDE che ogni volta mi strapazza le vecchie che mi dice che non conosce il 4313 e mi mostra l’infinito elenco di quelli che dice di conoscere?
A voi l’ardua sentenza.

@ Leo: l'IDE nel messaggio sembra chiaro: usare -F significa non controllare la signature, che altro dovrebbe fare/non fare?
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

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

Menniti, non credo che basti solo cambiare il nome al 2313 in 4313 e incollare, questo è un estratto dal mio avrdude.conf
Code:
#------------------------------------------------------------
# ATtiny4313
#------------------------------------------------------------

part
     id            = "t4313";
     desc          = "ATtiny4313";
     has_debugwire = yes;
     flash_instr   = 0xB2, 0x0F, 0x1F;
     eeprom_instr  = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
             0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC,
             0x99, 0xE1, 0xBB, 0xAC;
     stk500_devcode   = 0x23;
##   Use the ATtiny26 devcode:
     avr910_devcode   = 0x5e;
     signature        = 0x1e 0x92 0x0d;
     pagel            = 0xD4;
     bs2              = 0xD6;
     reset            = io;
     chip_erase_delay = 9000;

     pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
                        "x x x x  x x x x    x x x x  x x x x";

     chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
                        "x x x x  x x x x    x x x x  x x x x";

    timeout = 200;
    stabdelay = 100;
    cmdexedelay = 25;
    synchloops = 32;
    bytedelay = 0;
    pollindex = 3;
    pollvalue = 0x53;
    predelay = 1;
    postdelay = 1;
    pollmethod = 1;

    pp_controlstack     =
        0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E,
        0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E,
        0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A,
        0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
    hventerstabdelay    = 100;
    progmodedelay       = 0;
    latchcycles         = 5;
    togglevtg           = 1;
    poweroffdelay       = 15;
    resetdelayms        = 1;
    resetdelayus        = 0;
    hvleavestabdelay    = 15;
    chiperasepulsewidth = 0;
    chiperasepolltimeout = 10;
    programfusepulsewidth = 0;
    programfusepolltimeout = 5;
    programlockpulsewidth = 0;
    programlockpolltimeout = 5;

     memory "eeprom"
         size            = 256;
        paged           = no;
        page_size       = 4;
         min_write_delay = 4000;
         max_write_delay = 4500;
         readback_p1     = 0xff;
         readback_p2     = 0xff;
         read            = "1   0  1  0   0  0  0  0   0 0 0 x  x x x x",
                           "a7 a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";

         write           = "1   1  0  0   0  0  0  0   0 0 0 x  x x x x",
                           "a7 a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";

loadpage_lo = "  1   1   0   0      0   0   0   1",
  "  0   0   0   0      0   0   0   0",
  "  0   0   0   0      0   0  a1  a0",
  "  i   i   i   i      i   i   i   i";

writepage = "  1   1   0   0      0   0   1   0",
  "  0   0   x   x      x   x   x   x",
  " a7  a6  a5  a4     a3  a2   0   0",
  "  x   x   x   x      x   x   x   x";

mode = 0x41;
delay = 6;
blocksize = 4;
readsize = 256;
       ;
     memory "flash"
         paged           = yes;
         size            = 4096;
         page_size       = 64;
         num_pages       = 64;
         min_write_delay = 4500;
         max_write_delay = 4500;
         readback_p1     = 0xff;
         readback_p2     = 0xff;
         read_lo         = "  0   0   1   0    0   0   0   0",
                           "  0   0   0   0    0 a10  a9  a8",
                           " a7  a6  a5  a4   a3  a2  a1  a0",
                           "  o   o   o   o    o   o   o   o";

         read_hi         = "  0   0   1   0    1   0   0   0",
                           "  0   0   0   0    0 a10  a9  a8",
                           " a7  a6  a5  a4   a3  a2  a1  a0",
                           "  o   o   o   o    o   o   o   o";

# The information in the data sheet of April/2004 is wrong, this works:
         loadpage_lo     = "  0   1   0   0    0   0   0   0",
                           "  0   0   0   x    x   x   x   x",
                           "  x   x   x   x   a3  a2  a1  a0",
                           "  i   i   i   i    i   i   i   i";

# The information in the data sheet of April/2004 is wrong, this works:
         loadpage_hi     = "  0   1   0   0    1   0   0   0",
                           "  0   0   0   x    x   x   x   x",
                           "  x   x   x   x   a3  a2  a1  a0",
                           "  i   i   i   i    i   i   i   i";

# The information in the data sheet of April/2004 is wrong, this works:
         writepage       = "  0  1  0  0   1   1  0  0",
                           "  0  0  0  0   0 a10 a9 a8",
                           " a7 a6 a5 a4   x   x  x  x",
                           "  x  x  x  x   x   x  x  x";

mode = 0x41;
delay = 6;
blocksize = 32;
readsize = 256;
       ;
#   ATtiny4313 has Signature Bytes: 0x1E 0x92 0x0D.
     memory "signature"
         size            = 3;
         read            = "0  0  1  1   0  0  0  0   0  0  0  x   x  x  x  x",
                           "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
       ;
     memory "lock"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
                           "x x x x  x x x x  1 1 i i  i i i i";
         read           = "0 1 0 1  1 0 0 0  0 0 0 0  0 0 0 0",
                          "x x x x  x x x x  x x o o  o o o o";
        min_write_delay = 9000;
        max_write_delay = 9000;
       ;

     memory "lfuse"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 0 0 0",
                           "x x x x  x x x x  i i i i  i i i i";

         read            = "0 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0",
                           "x x x x  x x x x  o o o o  o o o o";
        min_write_delay = 9000;
        max_write_delay = 9000;
       ;

     memory "hfuse"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  1 0 0 0",
                           "x x x x  x x x x  i i i i  i i i i";

         read            = "0 1 0 1  1 0 0 0  0 0 0 0  1 0 0 0",
                           "x x x x  x x x x  o o o o  o o o o";
        min_write_delay = 9000;
        max_write_delay = 9000;
       ;

     memory "efuse"
         size            = 1;
         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
                           "x x x x  x x x x  x x x x  x x x i";

         read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
                           "x x x x  x x x x  o o o o  o o o o";
        min_write_delay = 9000;
        max_write_delay = 9000;
     ;
# The Tiny4313 has calibration data for both 4 MHz and 8 MHz.
# The information in the data sheet of April/2004 is wrong, this works:

     memory "calibration"
         size            = 2;
         read            = "0  0  1  1   1  0  0  0    0 0 0 x  x x x x",
                           "0  0  0  0   0  0  0  a0   o o o o  o o o o";
     ;
  ;

la maggiorparte dei parametri sono uguali,ma non tutti.
Poi basta che ti crei la board per l'ide e hai finito.
L'opzione -F per avrdude potrebbe aiutare se il chip è sbrickato ed ha solo la signature danneggiata e nient'altro.
L'ide richiamando avrdude con i parametri di default (senza -F per esempoi) non può programare un chip con la signature divera da quella attesa (salvo modifiche).
Logged

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

Io uso la 0022, forse il tuo CONF è più aggiornato, ora provo a copiare questi dati nel mio conf e vediamo che succede. Grazie
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: 523
Posts: 12333
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Niente da fare, ho inserito le tue righe in AVRDUDE.CONF, ho aggiornato i files pins.Arduino.h e .c, ho creato la board, appena provo la compilazione mi dice
Quote
mcu attiny4313 supported for assembler only

e

Quote
unknown MCU 'attiny4313' specified
Known MCU names:
   avr2
   at90s2313

che manca? ma tu, bb, l'hai mai provata questa mcu, intendo dire che basta selezionarla e fare un banale compilazione del blick per sapere se ti funziona o meno
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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9179
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Niente da fare, ho inserito le tue righe in AVRDUDE.CONF, ho aggiornato i files pins.Arduino.h e .c, ho creato la board, appena provo la compilazione mi dice
mcu attiny4313 supported for assembler only

Questo non è un errore di avrdude, è del GCC, ti dice che non riconosce quel micro e che non può compilare.



Logged

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

Niente da fare, ho inserito le tue righe in AVRDUDE.CONF, ho aggiornato i files pins.Arduino.h e .c, ho creato la board, appena provo la compilazione mi dice
mcu attiny4313 supported for assembler only

Questo non è un errore di avrdude, è del GCC, ti dice che non riconosce quel micro e che non può compilare.
Dunque io ho solo eseguito il verify, senza tentare di fare upload, per cui dovrei spiegare al GCC che questo micro esiste, secondo te posso farlo e come?
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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9179
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dunque io ho solo eseguito il verify, senza tentare di fare upload, per cui dovrei spiegare al GCC che questo micro esiste, secondo te posso farlo e come?

Non puoi farlo, è necessario eseguire l'upgrade del compilatore per risolvere.

Logged

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

Dunque io ho solo eseguito il verify, senza tentare di fare upload, per cui dovrei spiegare al GCC che questo micro esiste, secondo te posso farlo e come?
Non puoi farlo, è necessario eseguire l'upgrade del compilatore per risolvere.
Ottimo, allora faccio come il vecchio cinese, mi siedo davanti al PC e aspetto, qualcosa accadrà  smiley per il momento il 4313 può aspettare anche lui e tornare nel cassetto.
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

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9179
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo, allora faccio come il vecchio cinese, mi siedo davanti al PC e aspetto, qualcosa accadrà  smiley per il momento il 4313 può aspettare anche lui e tornare nel cassetto.

Ho verificato, il compilatore  4.3.2 abbinato all'IDE di Arduino non prevede il 4313, è previsto nella 4.3.3 che trovi nell'ultima release di WinAvr.
Possibile soluzione indolore, non è detto che funzioni e adesso non ho tempo per provare, però se ti va di perderci un po di tempo prova a scaricare l'ultima relase di WinAvr, esegui l'installazione, si limita ad espandere i contenuti, dopo di che cancella il contenuto della cartella "..\arduino-0023\hardware\tools\avr" e copiaci dentro tutto quello presente nella cartella WinAvr, dovresti trovarla in "C:\Programmi\Atmel\WinAvr", esclusa la cartella avr32 che non ti serve.
Fatto quanto sopra dovresti avere l'IDE aggiornato al compilatore 4.3.3 che include il 4313.
Logged

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

Ottimo, allora faccio come il vecchio cinese, mi siedo davanti al PC e aspetto, qualcosa accadrà  smiley per il momento il 4313 può aspettare anche lui e tornare nel cassetto.

Ho verificato, il compilatore  4.3.2 abbinato all'IDE di Arduino non prevede il 4313, è previsto nella 4.3.3 che trovi nell'ultima release di WinAvr.
Possibile soluzione indolore, non è detto che funzioni e adesso non ho tempo per provare, però se ti va di perderci un po di tempo prova a scaricare l'ultima relase di WinAvr, esegui l'installazione, si limita ad espandere i contenuti, dopo di che cancella il contenuto della cartella "..\arduino-0023\hardware\tools\avr" e copiaci dentro tutto quello presente nella cartella WinAvr, dovresti trovarla in "C:\Programmi\Atmel\WinAvr", esclusa la cartella avr32 che non ti serve.
Fatto quanto sopra dovresti avere l'IDE aggiornato al compilatore 4.3.3 che include il 4313.

grazie, provo subito, sono curioso, anche perché se va a buon fine mi troverò altri possibili micro in elenco
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: 523
Posts: 12333
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Possibile che non riesco a trovare WINAVR sul sito Atmel? smiley-eek-blue
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

Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://winavr.sourceforge.net/download.html

Ciao
QP
Logged

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


ma hai chiamato il 4313 con il nome giusto nella board?(t4313)
Logged

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


ma hai chiamato il 4313 con il nome giusto nella board?(t4313)
ho provato ora per scrupolo, ma anche l'attiny2313 viene scritto per intero, ecco perché dico che il nome deve essere altrove, come giustamente dice Astro.

@ QP: grazie, me lo dà come primo link ma mi era sembrato un po' sospetto smiley-eek-blue oltretutto mi dà in ftp una cartella zeppa di versioni, scarico l'ultima?
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 ... 15 16 [17] 18 19 ... 36   Go Up
Jump to: