Kysymys:
EEPROM-kestävyys energiamittarissa?
Debidutta Pattanaik
2014-09-14 19:24:47 UTC
view on stackexchange narkive permalink

Suunnittelen energiamittaria sähkön laskutusta varten muuntamalla analoginen energiamittari ja laskemalla analogiamittarin LEDin antama pulssien määrä. Koska virta voidaan katkaista milloin tahansa, pulssien määrä on tallennettava haihtumattomaan muistiin. Näin Atmel EEPROM AT24C0X: n ja ATmega328: n ja PIC16F877A: n sisäänrakennettujen EEPROMS: ien tietolomakkeet ja löysin kaikilla READ / WRITE-kestävyyden enintään 1000000.

Tässä yhteydessä miten EEPROM-elämän kestävyysongelma ratkaistaan kaupalliset energiamittarit?

etkö voisi käyttää jotain muuta sramia?http://datasheets.maximintegrated.com/en/ds/DS1350W.pdf tarjoaa rajoittamattomat luku- / kirjoitusjaksot ja 10 vuoden säilytyksen ... tietysti on olemassa yksinkertaisempia siruja, jotka käyttävät spi / muita sarjaliitäntöjä, joissa on hyvin pieni pin-määrä
[EEPROM Wear Leveling] (http://electronics.stackexchange.com/questions/60342/wear-leveling-on-a-microcontrollers-eeprom)
Viisi vastused:
Olin Lathrop
2014-09-14 21:16:47 UTC
view on stackexchange narkive permalink

En kirjoita kaikkia tapahtumia EEPROM: lle. Suurimman osan ajasta sinulla on virtaa, joten pidä live-määrä RAM-muistissa.

Energian määrä, joka tarvitaan live-arvon tallentamiseen RAM-muistista EEPROM-muistiin, on melko pieni. Käytä kondensaattoria riittävän energian varastoimiseksi, jotta mikro toimii riittävän kauan virran katkeamisen jälkeen, jotta live-tiedot voidaan kopioida EEPROM-muistiin ja sammuttaa sitten puhtaasti. Tarvitset vain muutaman 10 ms: n, ehkä vain muutaman ms. Sinun on myös pystyttävä havaitsemaan sähkökatko riittävän ajoissa, jotta korkissa on vielä energiaa puhtaan sammutusjakson suorittamiseksi. Tämän ei kuitenkaan pitäisi olla vaikeaa.

Oletetaan esimerkiksi, että mikro vaatii 20 mA: n jännitteen 3,3 V: lla (mikä on oikeastaan ​​melko korkea tällaiselle sovellukselle) ja että sammutus kestää 20 ms. Se on (20 mA) (3,3 V) (20 ms) = 1,3 mJ. 12 V: iin ladattu 470 uF: n korkki pitää esimerkiksi 34 mJ. Oletetaan, että pidät kannen normaalisti 12 V: n jännitteellä ja havaitset sähkökatkoksen, kun se laskee 11 V: een. Siinä vaiheessa sillä on jäljellä 28 mJ. Saadaksesi 2 mJ lisää, tarvitsee vain tyhjentää se 10,6 V: een.

Nämä ovat vain numeroita, jotka vedin pois ilmasta esimerkkinä. 470 µF 16 V: n korkki ei olisi suuri lisäys laitteeseen, mutta se onkin tässä tapauksessa selvästi enemmän kuin tarpeen. Tarkoituksena on osoittaa, että tämä menetelmä on melko toteutettavissa.

+1, mikrot ovat nopeita ja voivat vastata nopeasti.Mielestäni vaikea osa on ironista, koska olet tekemisissä hitaalla 60 Hz: n virtasignaalilla, latauksen / purkamisen ja minkä tahansa LDO-tulosi välillä on oltava riittävästi vapaata tilaa.
+1;se oli välitön reaktioni ja aloin lähettää sen kommenttina;sitten näin sinun.Kaikille, joilla on vaikeuksia tämän visualisoinnissa, ajattele kannen ja virranilmaisimen olevan "mikro-UPS", joka ilmoittaa "tietokoneelle" (mittarille), että sen pitäisi sammua puhtaana ennen kuin UPS loppuu.
Michael Karas
2014-09-14 20:19:13 UTC
view on stackexchange narkive permalink

Ongelman ratkaisu on suhteellisen yksinkertainen. Keräät pulssimäärän tavalliseen RAM-paikkaan. Kopioi sitten 10 minuutin välein RAM-pohjaisen laskurin nykyinen arvo EEPROM-muistiin. Tämän strategian avulla EEPROM, jolla on miljoonan jakson kestävyys, kestää noin 19 vuotta. Useimpien tuotteiden osalta tämä on hyvä vertailu tuotteen odotettuun elinkaareen.

Jos sinulla on äkillinen tehohäviö, menetät korkeintaan 10 minuutin pulssilaskennan.

On olemassa lisästrategia, joka tulisi ottaa huomioon tämän tyyppisessä EEPROM-sovelluksessa. Äkillisen sähkökatkoksen ja EEPROM-kirjoitusoperaation mahdollisen vioittumisen mahdollisuuden vuoksi sinun tulee aina tallentaa tiedot EEPROMiin yksinkertaisella tavun XOR-tyyppitarkistuskoodilla, jotta voit vahvistaa EEPROM-tiedot yhtä hyviksi. Kun sitten tallennat tietoja 10 minuutin välein, tallennat KAKSI kopiota datan &-tarkistuskoodista. Varmista, että yksi kopio on tallennettu kokonaan, ennen kuin aloitat toisen kopion. Syy näiden kahden kopion tallentamiseen on niin, että jos virtaa menetetään toisen kopion kirjoittamisen aikana, toinen kopio on edelleen olemassa. Jos ensimmäinen varastotoiminto vioittuu, toinen kopio säilyttää edellisen 10 minuutin tallennustilan tiedot.

Aina kun mikro-ohjaimesi käynnistyy, lue ensimmäisen kopion tiedoista EEPROM-muistista RAM-muistipaikalle ja vahvista sen tarkistuskoodi. Jos tarkistus on kunnossa, jatka tuotteen normaalia toimintaa. Jos ensimmäinen tarkistus on huono, lue sitten EEPROM: n tietojen toinen kopio ja tarkista se. Jos kopio on OK, voit jatkaa normaalia toimintaa. Epätodennäköisessä tapauksessa molemmat tarkistuskoodit ovat huonoja, sinun on palautettava laskurin arvo nollaksi ja ilmoitettava sitten kotitoimistolle ongelmasta.

Jos tuotteellasi on normaali käyttäjän käynnistämä käynnistys- / sammutusprosessi, voit tavallisessa virrankatkaisujärjestelmässäsi tallentaa tiedot EEPROMiin. Jotta tämä olisi tehokasta, virrankatkaisupyynnön on oltava signaalina mikrokontrollerille, jotta se voi suorittaa kaikki tällaiset viimeiset sekunnin yksityiskohdat, ja sitten erillinen mikrokontrollerin laiteohjelmistolla ohjattu ulostulo todella suorittaa virran katkaisun.

Olen käyttänyt tätä järjestelmää useissa kaupallisissa tuotteissa menestykseen. Tämän vastauksen soveltamisalan ulkopuolella on vähän keskustella yksinkertaisesta tavuisesta XOR-tarkistuskoodista, jota käytetään tietojen oikeellisuuden tarkistamiseen EEPROMista. Se sanoi, että voin jakaa algoritmin kaikille kiinnostuneille.

Energiamittari saa virtansa sähkönsyötöstä .En ole varmuutta, kun sähkö sammuu. Sähkökatkon sattuessa, miten voin ratkaista tilanteen?
Käsittelet sitä, kuten kuvasin yksityiskohtaisesti vastauksessani.Jos virta katkeaa enintään, menetät pulssimäärän kertymisen edellisen EEPROM-varastotoiminnon jälkeen.Joidenkin ihmisten mielestä tätä järjestelmää ei voida hyväksyä, koska voit menettää joitain määriä, mutta sinun on punnittava sitä verrattuna siihen, kuinka usein tehohäviö tapahtuu.
Jos kuvailemani yksinkertainen EEPROM-järjestelmä ei ole "tarpeeksi hyvä", sinun on käytettävä ulkoista sarjamuistia, joka on varmuuskopioitu akkukennosta tai superkannesta.Koska monilla tuotteilla on RTC-toiminto, voi olla edullista valita RTC-siru, jossa on joitain RAM-soluja, joita voidaan käyttää tämän tyyppiseen parametrien tallennukseen.
Kaupallisessa laskutuksessa tappiot kerrotaan tuhanneksi deviksi ja siitä aiheutuu tulojen menetyksiä
Kyllä, olet oikeassa - JOS sinulla on tuhansia äkillisiä tehohäviöitä.Tyypillisesti näin ei kuitenkaan ole, ja pieni menetys voidaan helposti perustella monimutkaisempien tuotesuunnitelmien kustannuksiin, jotka käyttävät RAM-muistille akkua tai supercap-tyyppistä varmuuskopiointistrategiaa.Superkorkit ovat kalliita ja pieniä, ja paristot vaativat vaihtamista - jotka molemmat ovat negatiivisia tuotteelle, jota kehität.
Sitä voidaan hyödyntää keskeyttämällä virta vähän ennen jatkuvaa kirjoittamista.Se kirjoittaa 10 minuutin välein, keskeytä vain 9 minuuttia viimeisen käynnistyksen jälkeen - 9 minuutin välein.
Kuluttajana, jos sinua ei laskuteta viimeisistä 10 minuutin virrasta, se ei lievennä sitä tosiasiaa, että sammutit virran.
Mitä OP: n on tehtävä, on kustannusanalyysi: Kuinka suuret ovat mahdollisesti laskuttamattoman energian keskimääräiset kustannukset X vuoden aikana?Kuinka paljon ylimääräisten piirien kustannukset laskevat jokaisen piippauksen?Ja sitten kysy liikesuunnittelijoilta, koska he voivat valita 2 dollaria maksettavaksi X vuoden aikana 1 dollarin sijaan etukäteen.
Ghanima
2014-09-14 19:29:30 UTC
view on stackexchange narkive permalink

Muistan etänä lukeneeni kyseisen aiheen kattavan Atmel-sovellushuomautuksen. Katso AVR101 korkean kestävyyden EEPROM-tallennustekniikasta pyöreän puskurin avulla ja palautussuojauksen avulla.

darron
2014-09-14 22:28:09 UTC
view on stackexchange narkive permalink

1 000 000 poistosykliä on paljon, mutta voit polttaa sen nopeasti, kun tajusit. Kerran sekunnissa tapahtuvien lukemien kohdalla se saavutettaisiin 11,6 päivässä.

Kuten jo mainittiin, tallentaminen RAM-muistiin ja kirjoittaminen EEPROM: lle vain satunnaisesti on yksi tapa.

Toinen tapa on käyttää FLASH EEPROMia. FLASHilla on merkitystä vain poistomäärällä. Voit kirjoittaa monta kertaa kääntämällä 1: t 0: ksi ilman rangaistusta. Jos sinulla on vain muutama lukema ja suhteellisen suuri määrä FLASH-tilaa, voit käyttää tietueita.

Poista tiedot jättäen kaikki 0xFF: t.

Kirjoituksia varten: Kirjoita peräkkäin EEPROM-tilaan. Kun olet täynnä, poista kaikki ja aloita alusta. Jos data-arvo on kaikki 0xFFs, sinun on vaihdettava se yhdellä LSB: llä, jotta et näyttäisi tyhjältä tietueelta. Sinun tapauksessasi se olisi joka tapauksessa ylivuoto.

Lukemille: Etsi all-0xFFs-tietue ja varmuuskopioi yksi. Jos saavutat lopun eikä all-0xFFs-ennätystä ole, viimeinen sijainti on se.

FLASH-kestävyys on yleensä matalampi ... sanotaan 100 000. Yksinkertaisella 1 Mbit: n FLASH-muistilla olisi kuitenkin tarpeeksi tilaa lähes 104 vuoden säilytykseen tällä menetelmällä.

Tällaisen kaupallisen tuotteen osalta EEPROM-kirjoituksissa on oltava virtakatkosturvallisuus. Joko lisää virtakatkosten havaitseminen ja riittävä varmuuskopiointiteho (supercap, mikä tahansa) kirjoitustoiminnon suorittamiseksi ... tai suorita kirjoittaminen vikaturvallisella tavalla. Tätä varten voit jakaa EEPROMin kahteen puolikkaaseen, vuorotellen kirjoitusten puoliskojen välillä ja kirjoittaa CRC tietueen kanssa. Luku etsii uusinta tietuetta kummaltakin sivulta, jolla on kelvollinen CRC. Puolikkaiden on oltava poistolohkotason turvallisuuden vuoksi.

Apuohjelmat kuitenkin yleensä haluavat enemmän kuin vain käytetyn kokonaisenergian. Harkitse, kuinka pidät kirjaa siitä, kuinka monta lukua sekunnissa saat, ja tallenna myös nämä numerot. Useimmat apuohjelmat veloittavat kaupallisia asiakkaita myös tarvitsemansa enimmäistehon perusteella noin 15 minuutin välein.

TMa
2014-09-14 23:31:24 UTC
view on stackexchange narkive permalink

Minulla oli samanlainen ongelma, kun tarvitsen ajonaikaisen tallennustilan tietoja. Käytän I2C: n ferromagneettista RAM-muistia F-RAM ( http://uk.farnell.com/ramtron/fm24c04b-g/fram-4k-i2c-8soic/dp/2077745?Ntt=2077745). Kestävyys on defacto rajoittamaton (10 ^ 14 lukea / kirjoittaa). Hinta on normaalia EEPROMia korkeampi, mutta silti kätevä.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...