Topic permanente di programmazione newbie

Ora guardo il core Tiny, se con poco è possibile implementare il 4313.

leo72: Ora guardo il core Tiny, se con poco è possibile implementare il 4313.

Ottimo, allora aspetto il tuo verdetto prima di rifare il test.

In allegato trovate il core Tiny 0022 modificato per il supporto al 4313.
Scompattate l’archivio e sostituite la cartella ottenuta a quella presente in /hardware/tiny/cores.

A me compila senza problemi, però ho avr-gcc 4.3.5, tengo a precisare.
Dovete anche creare una board virtuale nel file /hardware/tiny/boards.txt.
Come test io ho usato questa:

###########################################################################

attiny4313at1.name=ATtiny4313 @ 1 MHz
attiny4313at1.upload.using=arduino:arduinoisp
#attiny2313at1.upload.using=pololu
attiny4313at1.upload.maximum_size=4096
attiny4313at1.bootloader.low_fuses=0x64
attiny4313at1.bootloader.high_fuses=0x9F
attiny4313at1.bootloader.extended_fuses=0xFF
attiny4313at1.bootloader.path=empty
attiny4313at1.bootloader.file=empty2313at1.hex
attiny4313at1.bootloader.unlock_bits=0x3F
attiny4313at1.bootloader.lock_bits=0x3F
attiny4313at1.build.mcu=attiny4313
attiny4313at1.build.f_cpu=1000000L
attiny4313at1.build.core=tiny

tiny.zip (57.7 KB)

Ottimo Leo e grazie, cambia solo LFuse=0x62, ormai li conosco a memoria :sweat_smile:

menniti: Ottimo Leo e grazie, cambia solo LFuse=0x62, ormai li conosco a memoria :sweat_smile:

Ecco, quello è da ricontrollare perché ho fatto solo un copia-e-incolla dalla board del 2313 per fare la compilazione. Cmq i fuse sono inutili dato che vengon usati dall'IDE solo quando si programma il bootloader, e sui Tiny il bootloader non si mette per cui...

leo72:

menniti: Ottimo Leo e grazie, cambia solo LFuse=0x62, ormai li conosco a memoria :sweat_smile:

Ecco, quello è da ricontrollare perché ho fatto solo un copia-e-incolla dalla board del 2313 per fare la compilazione. Cmq i fuse sono inutili dato che vengon usati dall'IDE solo quando si programma il bootloader, e sui Tiny il bootloader non si mette per cui...

Vero, è solo per una questione di "precisione" :)

menniti:
Ottimo Leo e grazie, cambia solo LFuse=0x62, ormai li conosco a memoria :sweat_smile:

Per scrupolo ho ricontrollato col FuseCalculator. I fuse che ho messo io sono giusti :stuck_out_tongue:
$62 si usa per i Tinyx4/x5: per attivare il clock a 1 MHz con i Tinyx313 va bene $64 :wink:

Il motivo è presto detto: i Tinyx313 hanno l’oscillatore interno che può andare a 4 o 8 MHz, a differenza degli altri Tiny. Il valore di $62 seleziona il clock a 4MHz/8, per il clock a 8MHz/8 ci vuole $64.

Hai ragione Leo, nel mio array ho messo il valore 62 perché l'ho preso da una Tabella che avevo a disposizione; mi sono fidato e ho fatto male, visto che è mia intenzione basarmi sui fuse che risultano come "default" su FuseCalc. Ora cambio il valore nell'array. tnx :)

leo72: In allegato trovate il core Tiny 0022 modificato per il supporto al 4313. Scompattate l'archivio e sostituite la cartella ottenuta a quella presente in /hardware/tiny/cores.

Provato, adesso con la 0023, ma pure con la 1.0, si compila senza problema anche per i 4313.

Un piccolo aggiornamento relativo al trapianto della 4.3.3, per poter programmare il micro dall'IDE è necessario copiare la cartella etc, che contiene avrdude.conf, nella cartella dove si è copiato il nuovo winavr, o più semplicemente non cancellare quella originale, inoltre è necessario copiare avrdude.exe dalla cartella originale dell'IDE e sostituire quello presente nel nuovo winavr, non è modificato per Arduino e non riconosce le board.

astrobeed: Provato, adesso con la 0023, ma pure con la 1.0, si compila senza problema anche per i 4313.

L'unica prova da fare è vedere se poi il codice compilato funziona ;) Non ho 4313 per cui non ho potuto provare.

leo72: L'unica prova da fare è vedere se poi il codice compilato funziona ;) Non ho 4313 per cui non ho potuto provare.

Idem, al limite posso allegare il file .hex generato e se Michele ha un 4313 funzionante lo prova lui, però a questo punto deve riuscire per forza di cose a compilare per il 4313 se ha scaricato la giusta release di WinAvr.

astrobeed:

leo72: In allegato trovate il core Tiny 0022 modificato per il supporto al 4313. Scompattate l'archivio e sostituite la cartella ottenuta a quella presente in /hardware/tiny/cores.

Provato, adesso con la 0023, ma pure con la 1.0, si compila senza problema anche per i 4313.

Un piccolo aggiornamento relativo al trapianto della 4.3.3, per poter programmare il micro dall'IDE è necessario copiare la cartella etc, che contiene avrdude.conf, nella cartella dove si è copiato il nuovo winavr, o più semplicemente non cancellare quella originale, inoltre è necessario copiare avrdude.exe dalla cartella originale dell'IDE e sostituire quello presente nel nuovo winavr, non è modificato per Arduino e non riconosce le board.

infatti questa cosa dell'etc l'avevo notata perché non trovavo più l'AVRDUDE.CONF nel quale peraltro (anche il nuovo) non c'è comunque traccia del 4313. Comunque appena finisco il programma faccio un po' di prove :)

menniti: infatti questa cosa dell'etc l'avevo notata perché non trovavo più l'AVRDUDE.CONF nel quale peraltro (anche il nuovo) non c'è comunque traccia del 4313. Comunque appena finisco il programma faccio un po' di prove :)

Non c'è traccia perché la versione di avrdude allegata è la stessa di quella precedente, però dovrebbe bastare modificare il file .conf per introdurlo, anche se tocca un attimo vedere con cosa lo vai programmare effettivamente, avrdude è solo un programma che fornisce i comandi ad un programmatore hardware, non è lui che programma fisicamente il micro.

menniti:
infatti questa cosa dell’etc l’avevo notata perché non trovavo più l’AVRDUDE.CONF nel quale peraltro (anche il nuovo) non c’è comunque traccia del 4313.

Ed ecco un bel regalone, avrdude.conf modficato per il 4313, ora non da più nessun errore e cerca di trasferire il programma sul micro, qui mi fermo con un classico “not in sync” perché non avendo il micro non posso fare altri test.

avrdude.conf (415 KB)

XD XD XD pomeriggio faccio le dovute prove, è il minimo che possa fare per quanto impegno state mettendo :sweat_smile: Grazie!

Ho provato con successo il comando Serial.print("\033[2J"); (Grazie Astro XD), ma possibile che non esista un comando equivalente per il Serial Monitor dell'IDE? Ho provato un Serial.clear(); ma mi ha preso a ceffoni :disappointed_relieved:

menniti: ma possibile che non esista un comando equivalente per il Serial Monitor dell'IDE? Ho provato un Serial.clear(); ma mi ha preso a ceffoni :disappointed_relieved:

Pare di no, il serial monitor non è una vera emulazione terminale, p.e. VT100, e non supporta i vari comandi previsti per questi.

Ho dato una sbirciatina al sorgente java del serial monitor, non è previsto nessun comando per cancellare lo schermo e nemmeno uno per riposizionare il cursore.

va bene, pazienza, tanto alla fine userò hypertermial, il tuo vLCD ed un display 20x4 :slight_smile:

... ah se qualcuno mi avesse dato un pò di feedback su arduopen per windows :D se non ricordo male arduopen x windows aveva già il winavr recente, il file avrdude.conf aggiornato e le board già fatte per il 4313, avevo anche cambiato il normale avrdude con un'altra versione in grado di fare bitbang dell'spi conla seriale e che supportava più micro. A puro titolo inforativo: Il file avrdude.conf può stare sia nella sua cartella etc sia insieme all'eseguibile avrdude.exe, anzi credo che quando parte, l'eseguibile cerchi il file di cofigurazione prima della sua stesa cartella e poi su etc . (credo che sia ancora così).