Pages: [1] 2   Go Down
Author Topic: salvare un valore su eeprom prima dello spegnimento...basta un condensatore?  (Read 1316 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 1
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pensando di utilizzare un circuito standalone, se avessi bisogno di salvare un valore su eeprom solo appena prima delli spegnimento potrei utilizzare un condensatore in parallelo al pin di alimentazione e, collegando il +5 ad un pin in ingresso sfruttare la carica del condensatore in modo che, allo spegnimento il pin vada a 0 mentre il microcontrollore sia ancora brevemente alimentato dal condensatore?
A quel punto basterebbe avere un interrupt sul pin che chiama il caricamento se eeprom ma ho un paio di dubbi perchè non so:

1: quanto tempo impiega l'atmel a salvare un valore su eeprom interna
2: quanto è il carico? Cioè, il tempo si calcola T=R*C no?!dove in questo caso R (ditemi se sbaglio) è il microcontrollore...quanto vale dunque la resistenza?!

thank you!
« Last Edit: February 16, 2013, 11:19:26 am by Artal » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

1) la scrittura su EEPROM interna richiede 3,3 ms
2) quella formula da il tempo T in secondi ed indica con "C" la capacità espressa in Farad del condensatore, e con "R" la resistenza in Ohm.
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 953
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

stavo facendo delle prove proprio adesso su una cosa del genere, nella formula devi vedere quanta corrente serve al micro per fare quello che sta facendo, non tanto la sua resistenza e quindi vedere se il tempo di scarica del condensatore a tot mA è minore del tempo di scrittura sulla EEPROM... a farla semplice io prenderei un C bello grosso così da non rischiare niente smiley
dal punto di vista elettrico metterei anche un diodo in modo che il condensatore si scarichi solo sul micro e non sul resto del circuito

comunque stovedendo che ogni volta che programmo via ISP l'atmega328 mi pulisce tutta la EEPROM, sbaglio? questa roba non è bella...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

stavo facendo delle prove proprio adesso su una cosa del genere, nella formula devi vedere quanta corrente serve al micro per fare quello che sta facendo, non tanto la sua resistenza e quindi vedere se il tempo di scarica del condensatore a tot mA è minore del tempo di scrittura sulla EEPROM... a farla semplice io prenderei un C bello grosso così da non rischiare niente smiley
dal punto di vista elettrico metterei anche un diodo in modo che il condensatore si scarichi solo sul micro e non sul resto del circuito
Concordo. Conviene usare il supercondensatore solo col micro anche per risparmiare la corrente. E' inutile disperderla a giro nel circuito quando alla fine solo il micro deve essere alimentato per quel mezzo secondo necessario a scrivere.

Quote
comunque stovedendo che ogni volta che programmo via ISP l'atmega328 mi pulisce tutta la EEPROM, sbaglio? questa roba non è bella...
Sì, resetta tutto. Per evitare, puoi flashare il firmware da terminale usando avrdude
Logged


Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi chiedevo, da ignorante: visto che in scarica la corrente circola nel verso opposto, che abbiamo sul pin?
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 953
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi chiedevo, da ignorante: visto che in scarica la corrente circola nel verso opposto, che abbiamo sul pin?
in che senso? è come se avessi una batteria, non succede niente di particolare
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 953
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
comunque stovedendo che ogni volta che programmo via ISP l'atmega328 mi pulisce tutta la EEPROM, sbaglio? questa roba non è bella...
Sì, resetta tutto. Per evitare, puoi flashare il firmware da terminale usando avrdude
ma perchè fa sta cosa? così facendo ogni volta che programmo va a scrivere sulla eeprom che ha un numero di scritture limitato...
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
comunque stovedendo che ogni volta che programmo via ISP l'atmega328 mi pulisce tutta la EEPROM, sbaglio? questa roba non è bella...
Sì, resetta tutto. Per evitare, puoi flashare il firmware da terminale usando avrdude
ma perchè fa sta cosa? così facendo ogni volta che programmo va a scrivere sulla eeprom che ha un numero di scritture limitato...
Sempre  più comunque della Flash, pensaci  smiley-wink
Flash interna: 10.000 riscritture
EEPROM interna: 100.000 riscritture

Quindi prima che ti "muoia" la EEPROM, ti è "morta" la Flash  smiley-yell
Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 953
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sempre  più comunque della Flash, pensaci  smiley-wink
Flash interna: 10.000 riscritture
EEPROM interna: 100.000 riscritture

Quindi prima che ti "muoia" la EEPROM, ti è "morta" la Flash  smiley-yell
non so perchè ma ero convito che fosse il contrario smiley-sweat questa notizia risolve molti problemi che mi stavo ponendo nelle ultime ore smiley-razz
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Casomai la cancellazione della EEPROM rompe le scatole nel caso nella EEPROM si siano scritti dei dati importanti, che vengono perduti.
Ecco perché ti consigliavo, nel caso, di compilare con l'IDE per crearti il firmware e poi di flasharlo usando avrdude da terminale, per evitare appunto di cancellarli.

Tornando al "perché" della cancellazione totale, non so dirti il motivo. Si era già parlato di questo ma non mi ricordo se era venuta fuori la motivazione.
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ricordo anche io ne parlammo approfonditamente,
 ricordo anche che il numero di serie arduinico, presente in eeprom, non viene cancellato normalmente dall'ide

per il condensatore, e' una buona idea, usa quelli da 1Farad, che si usano al posto delle coincell, cosi' "aivoglia" di scrivere
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ricordo anche io ne parlammo approfonditamente,
 ricordo anche che il numero di serie arduinico, presente in eeprom, non viene cancellato normalmente dall'ide
Negli ultimi 2 byte della EEPROM ci sarebbe anche il numero di riscritture della Flash effettuate. Tale valore si perde ovviamente nel caso si erasi la memoria senza informare avrdude di mantenere quel contatore. L'IDE lo fa in automatico, ma in pochi lo sanno e la prima volta che brasano il chip cancellano tutto, firma e contatore compresi.

Logged


Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 5
Posts: 953
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

beh se ritrovate quella discussione mettete il link che potrebbe essermi molto utile, grazie smiley-wink

Negli ultimi 2 byte della EEPROM ci sarebbe anche il numero di riscritture della Flash effettuate. Tale valore si perde ovviamente nel caso si erasi la memoria senza informare avrdude di mantenere quel contatore. L'IDE lo fa in automatico, ma in pochi lo sanno e la prima volta che brasano il chip cancellano tutto, firma e contatore compresi.
ma come funziona questo contatore? chi lo incrementa? se io salvo qualcosa in quelle locazioni di memoria posso avere interferenze?
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Edison Member
*
Karma: 28
Posts: 2031
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ecco perché ti consigliavo, nel caso, di compilare con l'IDE per crearti il firmware e poi di flasharlo usando avrdude da terminale, per evitare appunto di cancellarli.
Uh quello che serve a me cosi evito di aprire un nuovo topic, posso flashare di mio un atmega 8 prendendo l'hex dell'ide?
mi basta il board.txt(dove lo trovo?) modificato?
posso farlo anche senza bootloader?(uso un quarzo a 16 mhz)
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5784
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dovrebbe essere tutto nella mia piccola guida,
se hai voglia invece di studiare c'e' quella del menny  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Pages: [1] 2   Go Up
Jump to: