Salve a tutti, spero che qualcuno sappia aiutarmi in merito ad un problema a cui non so dare risposta:
Sto portando avanti un progetto che prima avevo testato su una arduino Mega, e adesso voglio ricreare il tutto standalone con un atmega328.
Il progetto originale è composto da due sketch, il primo scrive su eeprom dei dati che possono cambiare in base a dove viene montato il dispositivo, poi il secondo sketch contiene il programma vero e proprio. Il fatto è che con l'arduino mega carico il primo sketch che mi scrive i dati su eeprom, poi carico il secondo, che legge i dati dalla eeprom, e tutto funziona perfettamente. Uso questo sistema per una maggiore velocita nel cambiare alcuni parametri e non dover andare a rivedere il programma.
Se provo però a scrivere sulla eeprom dell' atmega standalone, e poi inviargli dopo il programma, la eeprom viene cancellata.
Perche se uso l'arduino Mega la eeprom non viene riscritta, mentre sullo standalone si?
La MEGA la programmi direttamente? Se sì, l'IDE di Arduino non invia comandi per cancellare la EEPROM.
Se lo standalone lo programmi con lo sketch ArduinoISP, immagino che venga eseguito un erase del chip.
Potresti provare a scrivere il secondo sketch direttamente da terminale passando ad avrdude solo il binario da scrivere nella Flash. In questo modo non vai a toccare la EEPROM. Prova anche ad abilitare il fuse per proteggere la EEPROM durante i cicli di programmazione del chip.
?? Prova anche ad abilitare il fuse per proteggere la EEPROM durante i cicli di programmazione del chip.
Grazie della dritta, sapresti darmi qualche indicazione per poter capire meglio cosa fare, ovvero ho capito la tua spiegazione, ma non so da dove cominciare soprettutto per i fuse, suppongo che dovrei modificare il programma che uso per far diventare la mia arduino mega un programmatore, o la parte in cui indico il modello di atmega da programmare ?
vic_20:
Se provo però a scrivere sulla eeprom dell' atmega standalone, e poi inviargli dopo il programma, la eeprom viene cancellata.
Perche se uso l'arduino Mega la eeprom non viene riscritta, mentre sullo standalone si?
che strano mo pare che "avevamo" stabilito che sull'arduino 1 la memoria non veniva mai cancellata,
non e che gli indirizzi sono troppo "alti" e in realta non scrivi nulla perche il 328 arriva solo fino a 1023