Pages: [1]   Go Down
Author Topic: Leggere e scrivere su Eeprom su Arduino Standalone  (Read 1377 times)
0 Members and 1 Guest are viewing this topic.
Bologna
Offline Offline
Full Member
***
Karma: 2
Posts: 151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Bologna
Offline Offline
Full Member
***
Karma: 2
Posts: 151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

?? 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 ?

Grazie!
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il settaggio dei fuse lo fai da terminale.
I fuse li calcoli con questo strumento qui:
http://www.engbedded.com/fusecalc

Per programmare i fuse fai riferimento alla guida di Menniti. Si tratta comunque di agire con il terminale. Hai mai lavorato con avrdude da terminale?
Logged


Bologna
Offline Offline
Full Member
***
Karma: 2
Posts: 151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non ho mai lavoretto con avrdude, comunque provo a trovare qualche guida, hai per caso il link sulla guida di Menniti ?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Da segnare nei preferiti --> http://www.michelemenniti.it/arduino_burn_bootloader.php  smiley-wink
« Last Edit: March 06, 2013, 01:04:43 pm by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
God Member
*****
Karma: 8
Posts: 691
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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
« Last Edit: October 09, 2012, 12:00:22 pm by gingardu » Logged


Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In effetti, se ha provato sulla Mega, ma in stand-alone ha un 328. Forse c'è qualche correzione da fare.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Bologna
Offline Offline
Full Member
***
Karma: 2
Posts: 151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ragazzi ho risolto impostando i fuses in questo modo:

0xFF Low
0xD7 High
0x07 Extended

in questo modo la eprom viene preservata e non cancellata.

Grazie a tutti
Logged

Pages: [1]   Go Up
Jump to: