Un saluto a tutti,
qualche mese fa ho iniziato un progetto con un Arduino Mega 2560 ( compatibile ), dato che l'appetito vien mangiando, aggiungendo fonts diversi ed immagini il limite dei 130 KB mi impedisce ulteriori sviluppi. Ora prima di rivedere il progetto per passare ad un Arduino Due vorrei chiedervi due informazioni:
1) il limite dei 130KB vale per tutti gli Arduino Mega 2560 o qualcuno ne è esente?? ( Mega ADK R3, Mega AVR R3 etc )
2) 512 KB di memoria flash dell'Arduino Due sono totalmente sfruttabili o anche qui ci sono dei limiti??
Grazie!!!
Il limite è un problema del vecchio IDE/Compilatore che già pensavo risolto (hai l'ultima versione dell'IDE) ?
Comunque ... scaricati la nuova 1.5.7-Beta (http://arduino.cc/en/Main/Software) che usa il nuovo compilatore e non dovresti avere problemi a sfruttare tutta la Flash della Mega ... :smiley-roll:
Prima di imbarcarti in una avventura con la DUE ... sei conscio che :
1. Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.
2. Molti pochi shield sono fatti per funzionare su Arduino DUE.
3. La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) dei pin degli altri Arduino (max 40 mA). I rimanenti comunque non danno più di 15 mA.
4. E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet (http://www.atmel.com/Images/doc11057.pdf)
5. Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.
Insomma ... salvo tu non abbia esigenze veramente particolari e l'esperienza per utilizzare tale scheda ... lascia stare !
Guglielmo
Grazie Guglielmo,
provo subito la 1.5.7 in effetti io ho la 1.0.5
Sono conscio delle difficolta ed infatti non vorrei ASSOLUTAMENTE cambiare!!!!!
Mi permetto di dissentire, la DUE va benissimo, smettetela di spalare cacca sulla DUE!! :D :D :D
Mi permetto di dissentire, la DUE va benissimo, smettetela di spalare cacca sulla DUE!! :D :D :D
DISSENTO IO !
Primo, io non spalo cacca sulla DUE, dico come stanno realmente le cose, secondo ... va benissimo
per TE ...
non per l'utente medio / hobbista Arduino ! E questo è ampiamente risaputo/dimostrato ... :smiley-roll:
Smettila quindi tu di volerla spingere a tutti i costi, che non sei il primo che c'ha dovuto sbattere la faccia per settimane ! ]:D
Guglielmo
Ci avrò sbattuto la faccia per mesi semai, ma ho ottenuto quello che volevo e di più e si può fare ancora molto.
1. Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.
non è vero, altre possono esser modificate con poco
2. Molti pochi shield sono fatti per funzionare su Arduino DUE.
perchè gli SPI sono sempre SPI e i cs sono sempre CS, I2C sempre I2C, serial sempre serial, USB sempre USB....
3. La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) dei pin degli altri Arduino (max 40 mA). I rimanenti comunque non danno più di 15 mA.
perchè arduino ZERO non avrà queste caratteristiche? allora sconsiglieremo anche quella?
4. E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet
se per più complesso intendi dover leggere di più ... allora scusami
5. Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.
quali sviluppi deve avere? cambiarci qualche condensatore sopra? al massimo ritorni al punto 1)
5. ora c'è da dedicarsi alle nuove schede.
ancora con sta cosa ... ma quali schede ?? forse di un altra parrocchia ....
Comunque se uno deve passare programmi che usava sulla MEGA 2560 alla DUE non ci sono tutte ste storie, basta pochissimo e hai 4 volte il rendimento, se poi si vogliono fare cose più complesse allora c'è da sbattersi e vale il discorso
"va benissimo per TE ... non per l'utente medio / hobbista Arduino"
Ci avrò sbattuto la faccia per mesi semai, ma ho ottenuto quello che volevo e di più e si può fare ancora molto.
:smiley-mr-green: :smiley-mr-green:
Beh, @Pablos questo dimostra che non è semplice passare da una Mega ad una Due. O no ?!? ;)
Non capisco.... quando uscirà la ZERO dirai a tutti
- 1. Arduino ZERO è molto supportato e molte librerie di terze parti sono state convertite per funzionarci.
- 2. Molti shield sono fatti per funzionare su Arduino ZERO.
- 3 La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) ... sulla DUE era un dramma sulla ZERO no!
- 4. E' sicuramente un processore molto più semplice da utilizzare. Basta guardare le oltre 700 pagine di cui è composto il datasheet
- 5 vedrà ulteriori sviluppi perchè la compreranno tutti.
Non capisco.... quando uscirà la ZERO dirai a tutti
Azz !! :D Aspetta che esca e vedremo che se ne dirà.
Ci avrò sbattuto la faccia per mesi semai, ma ho ottenuto quello che volevo e di più e si può fare ancora molto.
:smiley-mr-green: :smiley-mr-green:
Beh, @Pablos questo dimostra che non è semplice passare da una Mega ad una Due. O no ?!? ;)
vabbè ma è una scheda di prototipazione .... è vuota appena la spacchetti speri che il blink funzioni :)
tutte le arduino sono fatte per studiarci su e ottenere soddisfazioni personali, facendosi anche del nervoso, ma questo è in preventivo
Altrimenti mi compro una stazione meteo, un piccolo server, una web cam già fatta e mi levo il pensiero.
Secondo me state perdendo il concetto del prototipo dello sbattimento ehhh.... basta non ho più voglia di scrivere ahahahahha
Scusate non vogli che litighiate per colpa mia!!!
cmq nel mio caso dato che ho costruito dell'hardware attorno all'Arduino Mega, passare al DUE per un problema di memoria era veramente uno spreco!!!
Nel mio caso le prestazione del micro non sono un problema, pertanto mi tengo volentieri il MEGA che oltretutto si trova a prezzi nettamente inferiori. Se domani dovessi fare un nuovo progetto forse userei il DUE.
Se vuoi passare alla DUE ti aiuto io a costo di venire a casa tua!!!
Se vuoi passare alla DUE ti aiuto io a costo di venire a casa tua!!!
Ma se sei di Genova !!! ]:D
@APS650, non litighiamo, si discute. E siamo un pò OT, ma ci perdonerai, la tua risposta credo l'hai ricevuta.
Stiam facendo un pò di "chiacchera".
Per quel che si sà (molto poco) la Zero avrà un pò più di seguito, ma con le difficoltà hw (i famosi 3,3V) della Due. Staremo a vedere. A ma spiace per la Due, e spero vivamente la Zero potrà essere la Uno "Plus", ovvero si possa passare "abbastanza" facilmente da Uno/Mega a Zero.
...attento Pablos, dato che con la IDE 1.5.7 non mi compila più il programma potrei anche prenderti in parola!!!
...attento Pablos, dato che con la IDE 1.5.7 non mi compila più il programma potrei anche prenderti in parola!!!
Ho intravisto... problemi con la gestione PROGMEM. Mi pare gli esperti han la soluzione (ma non la ricordo).
Pure @Pablos mi pare sappia su questo argomento.
In effetti sono bloccato da questo problema, sto leggendo post a non finire ma non trovo indicazioni utili :~ :~ :~
...attento Pablos, dato che con la IDE 1.5.7 non mi compila più il programma potrei anche prenderti in parola!!!
ahahahahah e vabbè ... se l'ho detto dovrò farlo :)
Comunque ragazzi la cosa più difficile e snervande su argomenti sconosciuti è cercare ore e ore su tutti i server del pianeta la pagina che serve, a volte ho dovuto leggere per 3 giorni pagine e pagine per trovare quello che mi serve, abbandonare e riprendere più avanti per lo sconforto ..... se un oggetto lo hanno comprato in 3 in tutto il mondo qualcosa prima o poi si trova :smiley-eek:
Cosa devi fare APS650 ? ... scusa se ho interrotto il tuo treadh :)
io uso la 1.5.2 ... questi sono peggio dei telefonini .... non sei mai all'ultimo grido! appena hai preso respiro ... e no ti devi aggiornare!!!
Se hai bisogno collego la mia MEGA e faccio delle prove, mi farò perdonare per lo sfogo ehehehhehehe
metti qui quello che hai fatto o cosa vuoi fare
ciao
Evito di rispondere a pablos perché rischio di diventare volgare e poi mi bannano ... XD
Per il tuo problema con il PROGMEM si risolve facilmente, basta che cambi un po' la sintassi ...
Ad esempio, un mio vecchio array che usavo :
const prog_uint16_t crctab16[] PROGMEM = { … }
diventa semplicemente :
PROGMEM static const uint16_t crctab16[] = { … }
Quindi ... dicci cosa ti da errore e vediamo come se si riesce a sistemare ;)
Guglielmo
Eviti di rispondere perchè hai torto :D
Comunque puoi essere volgare in PM se vuoi ahahahahhahaha
Eviti di rispondere perchè hai torto :D
Comunque puoi essere volgare in PM se vuoi ahahahahhahaha
Ho ragione XD e quindi non ritengo assolutamente utile proseguire la polemica ...
... risponderai personalmente di quanto ai scritto andando ad aiutare
<< A GRATIS >> tutti gli utenti che leggeranno il tuo post e crederanno alle tue favole ... :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:
Guglielmo
Se vuoi passare alla DUE ti aiuto io a costo di venire a casa tua!!!
Se ti riferisci a questo, si l'ho promesso e lo faccio (posso stare benissimo a casa mia visto che la scheda la possiedo) e poi è riferita a una persona sola.
Non proseguamo la polemica, ma se rileggo di nuovo quei 5 punti ... ricominciamo :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:
Non difendo la scheda in se stesso, non approvo le motivazioni, la compri, la provi e poi descrivi dove hai trovato difficoltà, allora avrai un parere personale toccato con mano, non perchè la voce gira in rete.
Non difendo la scheda in se stesso, non approvo le motivazioni, la compri, la provi e poi descrivi dove hai trovato difficoltà, allora avrai un parere personale toccato con mano, non perchè la voce gira in rete.
pablos ... non parlo mai senza aver toccato con mano !
Ho una intera collezione di schede prodotte dalla Arduino SA ... tra cui ovviamente anche la DUE ... e ... continuo a sconsigliarla agli amatori/hobbisti (
... e continuo a ripetere che tu ed io non facciamo testo, non siamo hobbisti) ... :smiley-mr-green:
la ZERO non l'ho ancora avuta in mano e quindi non posso giudicare ... banzi a promesso varie cose importanti per la ZERO ... aspettiamo e vediamo ... :)
Guglielmo
Ok aspettiamo
Per me non si tratta nemmeno di un confronto tra 5V o 3.3V? Tutti i MC a 8bit funzionano anche a 3.3V.
Non si tratta nemmeno di 20mA o 3mA? Un buon progetto mette sempre qualcosa tra i pin del micro e il mondo esterno.
Invece la diatriba penso sia tra MC 8bit o ARM 32bit? Allora possiamo dire che non cìè nessuna guerra , perchè se per i progetti più complessi si usa ARM che ormai siamo circondati dagli ARM e costano pochi euro, per i progetti semplici come tastierini, display etc, e ce ne sono un infinità si userà MC 8bit che si fà prima. Quindi nessuna battaglia
Buona giornata,
grazie per le risposte, incredibilmente mi sono preso la bronchite a luglio, quindi vi rispondo solo oggi.
La modifica suggerita da Guglielmo non funziona:
Arduino:1.5.7 (Windows 7), Scheda:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
Build options changed, rebuilding all
Uso la libreria UTFT_Geometry nella cartella: C:\Program Files (x86)\Arduino\libraries\UTFT_Geometry (legacy)
Uso la libreria UTouch nella cartella: C:\Program Files (x86)\Arduino\libraries\UTouch (legacy)
C:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega -IC:\Program Files (x86)\Arduino\libraries\UTFT_Geometry -IC:\Program Files (x86)\Arduino\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build5697170763485596690.tmp\Fan.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build5697170763485596690.tmp\Fan.c.o
C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build5697170763485596690.tmp\Fan.c:9:1: error: unknown type name 'prog_uint16_t'
PROGMEM static prog_uint16_t Fan[0xE89] ={
^
C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build5697170763485596690.tmp\Fan.c:9:30: error: variable 'Fan' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
PROGMEM static prog_uint16_t Fan[0xE89] ={
^
...ora tutto questo per me è arabo, io so solo che avevo un programma che con la 1.0.5 funzionava e con la 1.5.7 nemmeno si compila
Non funziona perché NON l'hai applicata come si deve !!! ]:D ]:D ]:D
Guarda cosa ho scritto IO e guarda cosa hai scritto tu ... :smiley-roll:
Guglielmo
Onore e gloria a Guglielmo!!! ...e secchi di cenere sul mio capo, ma ancora non siamo fuori dal tunnel!!!
Altro inghippo:
Arduino:1.5.7 (Windows 7), Scheda:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
Uso la libreria UTFT_Geometry nella cartella: C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry (legacy)
Uso la libreria UTouch nella cartella: C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch (legacy)
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Fan.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Fan.c.o
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Flame.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Flame.c.o
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Logo_Allmand.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Logo_Allmand.c.o
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\SevenSeg_XXXL_Num.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\SevenSeg_XXXL_Num.c.o
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Ubuntu.c -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\Ubuntu.c.o
C:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\cores\arduino -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\hardware\arduino\avr\variants\mega -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTFT_Geometry -IC:\Users\smarchiotto.DOMINIOMCSIT\Desktop\arduino-1.5.7\libraries\UTouch C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\TMAP_800x480.cpp -o C:\Users\SMARCH~1.DOM\AppData\Local\Temp\build9042465336366371662.tmp\TMAP_800x480.cpp.o
TMAP_800x480.ino:2:18: fatal error: UTFT.h: No such file or directory
compilation terminated.
...e naturalmente il file UTFT.h in libreria c'è, ho pure provato a copiarlo nella directory niente da fare
Dopo innumerevoli tentativi e grandi mal di testa mi arrendo, al massimo riesco ad adattare il programma alla IDE 1.5.2, la 1.5.7 rimane un miraggio. In ogni caso, ho l'impressione che il problema dei 130 kB rimarrebbe e davvero non capisco come una cosa del genere sia accettata. Mi sembra un vero peccato poter usare solo il 52% della memoria, un vero spreco!! A questo punto al ritorno dalle ferie dovro' valutare se migrare il progetto dalla MEGA alla DUE o addirittura ad un'altra architettura, a malincuore perché cm Arduino mi ha permesso di realizzare il mio progetto partendo da zero, sia a livello di programmazione che dal punto di vista hardware.
hai cambiato bootloader o è quello originale?
Penso che anche con arduino il limite sia del 50% , 128kbytes , è un limite che si riscontra anche con tanti programmatori ISP, il motivo esatto non l'ho mai studiato a fondo ma penso sia dovuto al cambio banco da 64k.
Per il momento nemmeno mi interessa in quanto i miei programmi non sono mai andati oltre i 64k.
Per il momento nemmeno mi interessa in quanto i miei programmi non sono mai andati oltre i 64k.
questa non è molto carina da dire a uno che sta chiedendo aiuto, da uno che dice di lavorare 8 ore con gli AVR e non giocarci :D
A prescindere da questo che senso ha continuare a vendere per anni una scheda da 256k se poi si può usare a metà?
Questo limite dovrebbe essere descritto nelle specifiche per correttezza.
Con 64k se ne fà di cose pablo , basta scremare le librerie e non includere cose che non servono, una volta con 4k o 8k di assembler si faceva una CNC , con 16k-32k un centralino telefonico sofisticato con 16urbane e 120 interni, non serviva di più, io sono di quella scuola lì, non metto cose che non servono e le librerie le faccio da me.
La 2560 come flash è esagerata, non conosco nessuna applicazione che non usi un RTOS che necessiti di 256K, per me 128k basta e avanza, all'inizio facevano la 1280 ma siccome per loro mettere 128k o 256k costa uguale allora ora fanno solo la 2560, resta il limite dei 128k dei programmatori ISP economici, finora non mi risulta che nessuno abbia mai trovato una soluzione, sono 4 banchi da 64k che i programmatori economici non riescono a gestire, è ovvio che su quelli costosi il problema non sussiste
Penso che anche con arduino il limite sia del 50% , 128kbytes , è un limite che si riscontra anche con tanti programmatori ISP, il motivo esatto non l'ho mai studiato a fondo ma penso sia dovuto al cambio banco da 64k.
Il programmatore non c'entra nulla, la risposta al problema la trovi in questo (http://www.open-electronics.org/arduino-full-memory-upgrade-to-the-last-atmel-toolchain-version/)articolo che abbiamo scritto io e Michele una paio di anni fa.
Non mi risulta che nella versione stabile dell'IDE, la 1.0.5 r2, sia cambiato qualcosa, ovvero il limite dei 128k rimane, però la colpa è del compilatore e non del programmatore.
Io non mi definisco certo un programmatore, meno di un'anno fa nemmeno sapevo dell'esistenza di Arduino, ciò nonostante ho messo insieme il controller di un riscaldatore che si adatta ad altitudine e temperatura ambiente ottimizando la combustione e ne sono molto soddisfatto.
Con 64k si farà pure un centralino non discuto, ma una quindicina di schermate su un display TFT 5" con 3 tipi di carattere, icone varie logo del costruttore etc etc non ci stanno!!!! ...o almeno io non ne sono capace!
Ribadisco la mia posizione se la flash è di 256K usarne al massimo il 52% è uno spreco!!!!
ps: il bootloader è quello originale
mi spiace APS650 anch'io ho la MEGA ma non ho mai superato il 40%, sono passato alla DUE per una questione di performance di clock senza stravolgere troppo il progetto .... spero che non ci siano problemi anche sul SAM!!
Ti ho chiesto del bootloader perchè ho intravisto qualcuno che diceva di cambiarlo, ma non ho info certe sull'argomento. Tra le altrte cose siccome ho usato la mega per 3 anni e la tua domanda l'ho posta anch'io circa un anno fa .... mi era stato assicurato che il problema era stato risolto con le nuove IDE 1.0, apparentemente non è così.
Comunque ti rinnovo l'aiuto, se passi alla DUE ho promesso di aiutarti e lo farò, nel limite delle mie conoscenze acquisite fino ad ora.
ciao
Grazie Pablos, come avrai capito nel mio progetto la memoria è importante, se ti va prova a caricare un qualche fonts e cerca di superare i 135KB, prima di rifare tutto vorrei essere sicuro che anche la DUE non abbia lo stesso problema, sopratutto se la colpa sembra non sia della scheda ma del compilatore.
Grazie mille per l'aiuto!!!!
Mandami un link non farmi cercare :)
Non mi risulta che nella versione stabile dell'IDE, la 1.0.5 r2, sia cambiato qualcosa, ovvero il limite dei 128k rimane, però la colpa è del compilatore e non del programmatore.
Se non mi sbaglio,
- la 1.0.5 usa come compilatore avr-gcc-4.3.2.exe
- la 1.5.7 usa avr-gcc-4.8.1.exe
Nel tuo link si parla di aggiornarsi al avr-gcc-4.5.1.exe quindi mi viene da pensare che con la 1.5.7 il problema sia superato. O no ?!?
ho caricato sulla MEGA tutti questi font (allegato)..... che sono tanti
sull'IDE 1.5.7 nemmeno un graffio alla ram, possibile?
alla compilazione completa senza errori mi da questi valori :smiley-eek-blue: :smiley-eek-blue:
Lo sketch usa 630 byte (0%) dello spazio disponibile per i programmi. Il massimo è 258.048 byte.
Le variabili globali usano 9 byte (0%) di memoria dinamica, lasciando altri 8.183 byte liberi per le variabili locali. Il massimo è 8.192 byte.
- la 1.5.7 usa avr-gcc-4.8.1.exe
Nel tuo link si parla di aggiornarsi al avr-gcc-4.5.1.exe quindi mi viene da pensare che con la 1.5.7 il problema sia superato. O no ?!?
Se non usi la toolchain Atmel te lo puoi scordare di superare il limite dei 128k, o 64 kword se preferisci, il complitore avr gcc non patchato da Atmel non riesce ad indirizzare oltre quel limite indipendentemente dalla sua versione.
Tutte le versioni del IDE superiori alla 1.05 r2 sono delle beta pertanto non affidabili e non conviene utilizzarle per lo sviluppo, vanno bene solo se vuoi fare da beta tester.
Ti faccio un esempio di applicazione open source dove hanno riempito completamente l'ATmega 2560 senza nemmeno utilizzare bitmap da visualizzare su un display, il programma è MultiCopter o MegapirateNG, il secondo è il porting del primo su un hardware diverso come pinout.
Tutte e le applicazioni girano su delle schede basate sul Mega2560 con configurazione Arduino Like, con tanto di relativo bootloader, si tratta di applicazioni per la flight controller dei droni, sono arrivati al limite della flash, il programma compilato è poco meno di 240k, per la compilazione usano un IDE 1.x di Arduino modificato sia per supportare l'HAL (serve per le varie versioni delle schede) sia con la toolchain Atmel proprio per il limite dei 128 k.
.. il complitore avr gcc non patchato da Atmel non riesce ad indirizzare oltre quel limite indipendentemente dalla sua versione.
Ok, quindi non è solo una questione di versione. Ok. Grazie per la info. :D
ho caricato sulla MEGA tutti questi font (allegato)..... che sono tanti sull'IDE 1.5.7
nemmeno un graffio alla ram, possibile?
alla compilazione completa senza errori mi da questi valori :smiley-eek-blue: :smiley-eek-blue:
Lo sketch usa 630 byte (0%) dello spazio disponibile per i programmi. Il massimo è 258.048 byte.
Le variabili globali usano 9 byte (0%) di memoria dinamica, lasciando altri 8.183 byte liberi per le variabili locali. Il massimo è 8.192 byte.
In che senso caricato?
Cosa fa lo sketch?
Se avete problemi con la 1.5.7 consiglio di usare la 1.5.6r2 con il vecchio compilatore avr-gcc.
lo scketch non fa assolutamente nulla il setup() è vuoto e il loop() pure, ho solo messo 1.000.000 di variabili in ram XD
comunque il problema non sussiste più ....
.....
Con 64k si farà pure un centralino non discuto, ma una quindicina di schermate su un display TFT 5" con 3 tipi di carattere, icone varie logo del costruttore etc etc non ci stanno!!!! ...o almeno io non ne sono capace!
La soluzione al tuo problema è semplice , le mappe delle schermate non le mettere in flash ma in una memoria esterna, in una SST25VF016B da 2Mbytes SPI oppure se ancora non ti bastano in una SD da 4Gbytes sempre in SPI
OK astrobeed , per l'impossibilità di superare il banco da 64kword imputato al compilatore, pensavo fosse imputato al programmatore, meglio! Così posso continuare a fornire i programmatori economici senza dover comperare programmatori prof.
Non che ci sia bisogno di confermare quanto dice uno come Astrobeed XD ma solo per portare ulteriore testimonianza. L'articolo di cui parla lo abbiamo pubblicato su Elettronica IN n.165 (Aprile 2012) e quindi tradotto in inglese per il blog (il link che ha già postato lui). Lo studio di Astrobeed (io ho avuto solo il ruolo di sperimentatore nella collaborazione, sia ben chiaro!) nacque da una mia richiesta legata ad un problema che Elettronica In stava affrontando con un suo Contest, basato sul TiDiGino, una scheda multifunzione con a bordo un ATmega2560. Coloro che si stavano cimentando nello sviluppo di un firmware per sfruttare tale scheda, incontrarono tutti lo stesso problema, in alcuni casi già a 64K (se non erro quando i dati finivano nei secondi 64k, perché non gestiti correttamente). Da quello studio nacquero le istruzioni per l'aggiornamento della Toolchain, con il quale vennero risolti TUTTI i problemi over 64kW. Nella sezione MegaTopic c'è un Topic specifico nel cui primo post sono riportate le istruzioni, sempre valide, per effettuare tale aggiornamento.
@ Guglielmo e Pablos: poiché conosco i vostri caratteri ho sempre pensato a che spasso sarebbe stata una diatriba tra voi, visto che nessuno dei due avrebbe mai lasciato l'ultima parola all'altro o avrebbe fatto un passo indietro rispetto alle proprie posizioni. Eccomi finalmente accontenato: UN MEGA-SPASSO!!!! Vi adoro XD XD XD XD .... ma occhio al ban, siete proprio sul filo del rasoio :smiley-mr-green:
Pablos per impegnare la memoria i fonts oltre che caricarli li devi usare!!
Metti a video una parola con 10 fonts diversi e vedrai quanta memoria se ne và.
Icio, il display che uso dispone di una SD, ma non sono riuscito ad usarla, senza contare che con tutta probabilità legge una FAT16 da massimo 1 o 2 Gb mentre in qualsiasi negozio non si trovano SD meno di 8 Gb.
cmq nessuno usa la DUE con uno sketch da 150 o più Kb?????????
In giro si trovano microSD diciamo "obsolete" da 1Gbyte a 1 euro - 1.5euro , per fare memorie messaggi o la tua applicazione vanno benissimo
Eccomi finalmente accontenato: UN MEGA-SPASSO!!!!
:D :D :D
Non ci siamo mica offesi .... è solo una divergenza di opinioni su un singolo argomento. Io stimo gpb01 è uno che sa quello che dice, come molti altri qui, spero che questo non freni la voglia di aiutarmi nel caso avrò bisogno.
ciao
Ps: facciamo pace gbp? :D :D :D
APS650 Il fatto le si riesca a leggere FAT16 o FAT32 dipende solo da programma che fai tu o che usi tù , qualsiasi AVR ce la fà a leggere/scrivere sia FAT16 che 32, con la FAT32 si arriva facilmente a leggere/scrivere anche le SD da 4Gbytes
Ps: facciamo pace gbp? :D :D :D
:smiley-eek: :smiley-eek: :smiley-eek: ... perché ... abbiamo litigato ???? :smiley-eek: :smiley-eek: :smiley-eek:
(http://www.nikonland.eu/forum/public/style_emoticons/default/a063.gif) (http://www.nikonland.eu/forum/public/style_emoticons/default/a063.gif) (http://www.nikonland.eu/forum/public/style_emoticons/default/a063.gif)
Guglielmo
Metti a video una parola con 10 fonts diversi e vedrai quanta memoria se ne và.
Dipende dal display.
Quale usi?
Io da quando ho scoperto i cosiddetti "display intelligenti", dotati di memoria, SD e processore, gestisco tranquillamente anche più di 10 schermate con la UNO.
Io da quando ho scoperto i cosiddetti "display intelligenti", dotati di memoria, SD e processore, gestisco tranquillamente anche più di 10 schermate con la UNO.
Hai un esempio (un link a un prodotto) ? Thank you :D
Texas Instruments ha recentemente aggiornato il duo CodeComposeStudio in modo tale da poter diventare un altro IDE per Energia, il corrispondente dell'IDE Arduino per la famiglia dei microcontrollori della TI.
Questa novità permette il debug degli sketch in hardware senza dover inserire dei serial.print con la possibilità del passo-passo e altro ancora.
http://energia.nu/import-energia-sketch-to-ccsv6/
Ma Atmel non potrebbe fare lo stesso?
Guglielmo, sono quasi d'accordo con te. Il quasi deriva dal fatto che l'elettronica si orienta decisamente verso i 3.3v, tanto che gli shield per Arduino hanno spesso gli adattatori di livello, e che gli ARM si stanno decisamente diffondendo. Semmai il problema è che ci sono troppe board con ARM, ognuna con il suo scarso seguito, rispetto ad Arduino. Per cui anche io, se dovessi usare un ARM, probabilmente non userei la DUE ma qualcos'altro (si accettano consigli).
Io da quando ho scoperto i cosiddetti "display intelligenti", dotati di memoria, SD e processore, gestisco tranquillamente anche più di 10 schermate con la UNO.
Hai un esempio (un link a un prodotto) ? Thank you :D
Io mi sto trovando bene con i display della 4DSystem.
Come questo:
http://www.elettroshop.com/7-0-diablo16-intelligent-display-module/ (http://www.elettroshop.com/7-0-diablo16-intelligent-display-module/)
si tratta di un 7", ma ce ne sono altri di dimensioni più contenute e che costano meno.
Il bello è che comunica via seriale quindi ti impegna solo 2 pin (tre se consideri anche quello per il RESET del display).
Il display si occupa di gestire grafica e touch, ha anche degli in/out interessanti...
Diciamo che si potrebbe pilotare anche con un ATTINY85 :D
Ma Atmel non potrebbe fare lo stesso?
Che c'entra Atmel ? Se usi il loro Atmel Studio il debug lo fai eccome, e senza i Serial.print ... se poi il Debug non è implementato nel IDE di Arduino ... non è colpa loro ... :smiley-roll:
E comunque ... aspettiamo di vedere Arduino ZERO, che ha un chip per il debug on-board e che probabilmente ... verrà sfruttato dal IDE ;)
Guglielmo, sono quasi d'accordo con te. Il quasi deriva dal fatto che l'elettronica si orienta decisamente verso i 3.3v ...
Ma guarda che io non ho nulla contro i 3.3V anzi, tutt'altro ... le schede che faccio sono molto spesso, per ragioni di consumo a 3.3V.
Il discorso mio riguarda il "principiante/hobbista/amatore" e ciò che trova attualmente "
pronto all'uso" ... ;)
Guglielmo
Ma per 167 euro mi potrei prendere un tablet e farlo comunicare con l'Arduino via bluetooth, wifi o seriale e fare anche altre cose in più, tipo offrire connettività all'Arduino. O no? Parlo di progetti amatoriali.
Guglielmo, nel CCC di TI adesso ci sono le voci "New Energia Sketch" e "Import Energia Sketch", cioè posso sostituire totalmente l'IDE di Energia, che è un clone di quello per Arduino, con il CCC. Certo, il CCC è più complesso dell'IDE Energia.
Si può fare lo stesso con quello Atmel?
Non so di che stai parlando ... non seguo il mondo TI ...
... installati Atmel Studio ed impara a sviluppare nell'ambiente di Atmel, vedrai che avrai tutto quello che ti serve ...
Se vuoi rimanere legato alla "mentalità" Arduino (ed alla sua semplicità), installati sempre Atmel Studio e poi installati Visual Micro (http://www.visualmicro.com) così poi, per poco meno di 30 US$, puoi anche avere un pseudo-debugger che NON richiede HW esterno.
Guglielmo
Ma per 167 euro mi potrei prendere un tablet e farlo comunicare con l'Arduino via bluetooth, wifi o seriale e fare anche altre cose in più, tipo offrire connettività all'Arduino. O no? Parlo di progetti amatoriali.
Certo che potresti.
Ci sono pro e contro.
I pro sono quelli che hai elencato. Aggiungo anche il costo inferiore, lo trovi a meno, un tablet da 7 - 8".
Ammettendo che tu sappia già come scrivere un programma per Android, i contro sono:
- ritardo all'accensione (devi attendere il caricamento di Android e poi del tuo programma), oltre alle difficoltà nel bypassare il sistema pulsante di accensione-batterie (a meno che tu ti accontenti di accendere e spegnere lo schermo separatamente)
- "interferenza" del resto del sistema operativo (mentre sei su una schermata, ti spunta la notifica di sistema "aggiornamento disponibile per il browser...")
- Come alimenti il tablet?
Insomma, personalmente preferisco un display che sia del tutto integrato nel marchingegno che sto costruendo, che si accenda insieme a tutto il resto e sia immediatamente utilizzabile.
Icio, il display che uso dispone di una SD, ma non sono riuscito ad usarla, senza contare che con tutta probabilità legge una FAT16 da massimo 1 o 2 Gb mentre in qualsiasi negozio non si trovano SD meno di 8 Gb.
non tiratemi in mezzo alla "discussione", ma se hai difficoltà a trovare micro sd da 1-2 gb semplicemente riduci le partizioni,
non è difficile, basta usare ubuntu(anche live), aprire gparted, cancellare la partizione primaria dalla sd e nello spazio non allocato creare una partizione fat 16 da quanti GB vuoi. se non hai mai usato gparted non ti preoccupare, è tutto grafico quindi semplicissimo da usare