Pages: 1 [2]   Go Down
Author Topic: salvare un valore su eeprom prima dello spegnimento...basta un condensatore?  (Read 1337 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 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)

È stato spiegato più volte la procedure da seguire per sapere dove si trova il file .hex, ma al momento la funzione "search" non funziona e io ho informazioni frammentate e imprecise.

Ci dovrebbe essere una combinazione di tasti da premere o un menu con il quale abitilare la funzione "verbose" dell'ide, il quale mostra tutti i processi lanciati durante la compilazione e la scrittura sul micro.
Trovato il file .hex non ti serve altro che lanciare da console di comando il programma  "avrdude" (e questo devi cercarlo nel file system) seguito da una serie di parametri. Mi pare che nelle guide di Menniti ci dovrebbe essere qualcosa di aiuto come pure nei Megatopic. Se non riesci aspetta qualcuno con info più dettagliate.

Anticipato da Testato:
Scusa ho dimenticato la tua guida: smiley-razz

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

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)

È stato spiegato più volte la procedure da seguire per sapere dove si trova il file .hex, ma al momento la funzione "search" non funziona e io ho informazioni frammentate e imprecise.

Ci dovrebbe essere una combinazione di tasti da premere o un menu con il quale abitilare la funzione "verbose" dell'ide, il quale mostra tutti i processi lanciati durante la compilazione e la scrittura sul micro.
Trovato il file .hex non ti serve altro che lanciare da console di comando il programma  "avrdude" (e questo devi cercarlo nel file system) seguito da una serie di parametri. Mi pare che nelle guide di Menniti ci dovrebbe essere qualcosa di aiuto come pure nei Megatopic. Se non riesci aspetta qualcuno con info più dettagliate.

Anticipato da Testato:
Scusa ho dimenticato la tua guida: smiley-razz

Ciao.

io non voglio usare l'ide(che stranamente non mi uploada gli sketch ma uso un programmino molto efficiente che ho trovato in rete, quindi metto atmega8  dalle board compilo e mi prendo l'hex perfetto poi per il pinout devo controllare i pin originali pc5 etc giusto?
Logged

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

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

ma come funziona questo contatore? chi lo incrementa? se io salvo qualcosa in quelle locazioni di memoria posso avere interferenze?
E' avrdude che fa lo "sporco lavoro", passando il flag "-y":

Quote
Tells avrdude to use the last four bytes of the connected parts' EEPROM memory to track the number of times the device has been
erased.  When this option is used and the -e flag is specified to generate a chip erase, the previous counter will be saved
before the chip erase, it is then incremented, and written back after the erase cycle completes.  Presumably, the device would
only be erased just before being programmed, and thus, this can be utilized to give an indication of how many erase-rewrite
cycles the part has undergone.
Logged


Offline Offline
Jr. Member
**
Karma: 1
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tornando alla domanda di partenza, si il diodo direi che è essenziale, ma da ignorante mi viene una domanda...la caduta di tensione sul diodo potrebbe dare problemi?
In quel caso l'alimentazione credo dovrebbe essere almeno di 6 volt per averne 5 e qualcosa sul pin, ma l'altmel avrà sempre e comunque una gestione I/O digitale e analogica da 0 a 5 V qualunque sia il voltaggio con cui è alimentato giusto?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6975
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La tensione massima supportata dall'Atmega328P è di 5,5 Volt. Se hai una tensione maggiore o ti calcoli la caduta del diodo per vedere se rientri oppure intrponi un regolatore di tensione.
Pag. 303 del Datasheet --> http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf.
Logged

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

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

Attenzione ad una cosa.
Se parliamo di Arduino, l'Atmega328 montato sulla scheda, o comunque flashato con l'IDE per lavorare in standalone, ha il circuito BOD (Brown-Out Detection) impostato a 4,3V2,7V. Il BOD resetta il chip quando la tensione scende sotto a quel valore.
Se si usa un classico diodo al silicio, parliamo di 0,6/0,7V di dropout, quindi con 5V siamo già alla soglia di intervento del BOD.

Conviene usare un diodo Schottky, che ha un dropout di 0,2/0,3V.
« Last Edit: February 18, 2013, 05:09:43 pm by leo72 » Logged


0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

tornando alla domanda di partenza, si il diodo direi che è essenziale, ma da ignorante mi viene una domanda...la caduta di tensione sul diodo potrebbe dare problemi?
In quel caso l'alimentazione credo dovrebbe essere almeno di 6 volt per averne 5 e qualcosa sul pin, ma l'altmel avrà sempre e comunque una gestione I/O digitale e analogica da 0 a 5 V qualunque sia il voltaggio con cui è alimentato giusto?

I segnali TTL cambiano soglia in base alla tensione di alimentazione, e come dice leo72 c'è da fare attenzione alle impostazioni del BOD che si effettua tramite i fuse bit, però io ricordo che il BOD impostato nella 2009 è 2.7Volts, quasi sicuramente ricordo male io e mi scoccia andare a controllare i fuse.  smiley-wink

Usare un diodo schottky quando c'è di mezzo la batteria è un "Must", cioè deve essere così è basta. Però l'idea saggia sarebbe quella di usare un regolatore LDO low-low-dropout scegliendo come tensione di stabilizzazione 3.3V o 5V sempre che la batteria da scarica cioè necessitante di ricarica abbia ancora una tensione utile di ~5.3V. Con batteria carica probabilmente la tensine sarà 6.7 Volts.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

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

Hai ragione tu, Mauro. E' impostato a 2,7V. Errore mio nella trascrizione dei fuse nel Fuse Calc  smiley-sweat
Logged


MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perciò anche

Quote

...quindi con 5V siamo già alla soglia di intervento del BOD.


non è più valido!

Quello che non ho capito (o mi è sfuggito ?)di questa discussione è il come la mcu si accorge che si sta spegnendo.
Forse con un interruttore a due vie di cui una porta a massa in gpio configurato come ingresso pullup ?
Non sarebbe cmq automatico...
« Last Edit: February 19, 2013, 09:36:00 am by niki77 » Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

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

Perciò anche

Quote

...quindi con 5V siamo già alla soglia di intervento del BOD.


non è più valido!
Sì, esatto.

Quote

Quello che non ho capito (o mi è sfuggito ?)di questa discussione è il come la mcu si accorge che si sta spegnendo.
Forse con un interruttore a due vie di cui una porta a massa in gpio configurato come ingresso pullup ?
Non sarebbe cmq automatico...

Basta un semplice pin collegato all'alimentazione (sul "come" si può discutere in seguito: tramite un partitore, direttamente, con un fotoaccoppiatore ecc..). Aggancio un interrupt su quel pin e quando l'alimentazione viene a mancare, scatta l'interrupt che mi salva i dati e poi mette in "attesa" il micro... (eutanasia..  smiley-yell)
Logged


MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beato te che la vedi così semplice, secondo me non lo è , anzi tutt'altro.
Considera  la capacità del condensatore 'tampone' manterrà alto il livello sul pin anche ad alimentazione scollegata, e  prevedo che la curva di scarica sia abbastanza ripida, a meno che non si vogliano utilizzare capacità di migliaia di microfarad.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Tuscany
Offline Offline
Edison Member
*
Karma: 66
Posts: 1962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beato te che la vedi così semplice, secondo me non lo è , anzi tutt'altro.
Considera  la capacità del condensatore 'tampone' manterrà alto il livello sul pin anche ad alimentazione scollegata, e  prevedo che la curva di scarica sia abbastanza ripida, a meno che non si vogliano utilizzare capacità di migliaia di microfarad.


il condensatore e' disaccoppiato con un diodo dall'alimentazione principale


* pin.png (4.37 KB, 360x339 - viewed 12 times.)
Logged

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

infatti, il trucco e' il diodo giusto al posto giusto, per il C di backup piu' dura meglio e', per questo avevo consigliato uno da 1 Farad, sono piccolissimi a quelle tensioni e servono a quello, perche' darsi fretta e usarli di piccole capacita' ?
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: