Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42
EEPROM tarkoittaa sähköisesti poistettavaa ohjelmoitavaa vain luku -muistia.
EEPROM on erittäin tärkeä ja hyödyllinen, koska se on haihtumaton muistimuoto. Tämä tarkoittaa, että vaikka levy on sammutettu, EEPROM -siru säilyttää edelleen sille kirjoitetun ohjelman. Joten kun sammutat levyn ja kytket sen sitten uudelleen päälle, EEPROMiin kirjoitettu ohjelma voidaan suorittaa. Joten periaatteessa EEPROM tallentaa ja suorittaa ohjelman riippumatta siitä. Tämä tarkoittaa, että voit sammuttaa laitteen, pitää sen sammutettuna 3 päivää ja palata takaisin päälle ja käynnistää sen, ja se voi silti ajaa siihen ohjelmoidun ohjelman. Useimmat kulutuselektroniikkalaitteet toimivat näin.
Tätä projektia sponsoroi LCSC. Olen käyttänyt LCSC.comin elektronisia komponentteja. LCSC on vahvasti sitoutunut tarjoamaan laajan valikoiman aitoja, korkealaatuisia elektronisia komponentteja parhaaseen hintaan maailmanlaajuisella toimitusverkostolla yli 200 maahan. Rekisteröidy tänään ja saat 8 dollaria alennusta ensimmäisestä tilauksestasi.
EEPROM on myös erittäin tehokas siinä mielessä, että perinteisen EEPROMin yksittäiset tavut voidaan lukea, poistaa ja kirjoittaa uudelleen itsenäisesti. Useimmissa muissa haihtumattomissa muisteissa tätä ei voida tehdä. Sarja-EEPROM-laitteiden, kuten 24-sarjan Microchip EEPROM -laitteen, avulla voit lisätä muistia mihin tahansa laitteeseen, joka puhuu I²C-kieltä.
Tarvikkeet
- EEPROM - 24LC512
- ATmega328P-PU
- 16 MHz: n kristalli
- Leipälauta
- Vastus 4,7 k ohmia x 2
- Kondensaattori 22 pF x 2
Vaihe 1: EEPROMin perusteet
Microchip 24LC2512 -piiri voidaan ostaa 8 -nastaisena DIP -paketissa. 24LC512: n nastat ovat melko suoraviivaisia ja koostuvat tehosta (8), GND: stä (4), kirjoitussuojauksesta (7), SCL/SDA: sta (6, 5) ja kolmesta osoitetapista (1, 2, 3).
ROM: n lyhyt historia
Varhaiset "Stored -Program" -tyyppiset tietokoneet - kuten pöytälaskimet ja näppäimistötulkit - alkoivat käyttää ROM -muotoa diodimatriisi -ROM -muodossa. Tämä oli muisti, joka koostui erillisistä puolijohdediodeista, jotka oli sijoitettu erityisesti järjestettyyn piirilevyyn. Tämä antoi tien Mask Maskille integroitujen piirien myötä. Mask ROM oli paljon kuin diodimatriisi -ROM, vain se toteutettiin paljon pienemmässä mittakaavassa. Tämä tarkoitti kuitenkin sitä, että et voinut vain siirtää pari diodia ympäri juotosraudalla ja ohjelmoida se uudelleen. Valmistajan oli ohjelmoitava maskin ROM, eikä sitä sen jälkeen voitu muuttaa.
Valitettavasti Mask ROM oli kallis ja kesti kauan valmistaa, koska jokainen uusi ohjelma vaati upouuden laitteen valimoon. Vuonna 1956 tämä ongelma kuitenkin ratkaistiin keksimällä PROM (Programmable ROM), jonka avulla kehittäjät voivat ohjelmoida sirut itse. Tämä tarkoitti sitä, että valmistajat voisivat tuottaa miljoonia samaa ohjelmoimatonta laitetta, mikä teki siitä halvemman ja käytännöllisemmän. PROM voidaan kuitenkin kirjoittaa vain kerran suurjänniteohjelmointilaitteella. Kun PROM -laite oli ohjelmoitu, sitä ei voitu palauttaa ohjelmoimattomaan tilaan.
Tämä muuttui vuonna 1971, kun keksittiin EPROM (Erasable Programmable ROM), joka lisäsi lyhenteeseen toisen kirjaimen - toi mukanaan mahdollisuuden poistaa laitteen ja palauttaa sen "tyhjään" tilaan käyttämällä vahvaa UV -valonlähdettä. Aivan oikein, sinun oli loistettava kirkas valo IC: lle ohjelmoidaksesi sen uudelleen, kuinka siistiä se on? Osoittautuu, että se on aika siistiä, ellet ole kehittäjä, joka työskentelee laiteohjelmiston parissa, jolloin haluat todella pystyä ohjelmoimaan laitteen uudelleen sähköisten signaalien avulla. Tästä tuli lopulta totta vuonna 1983, kun kehitettiin EEPROM (Electrically Erasable Programmable ROM), ja sen myötä pääsemme nykypäivän hankalaan lyhenteeseen.
Vaihe 2: EEPROMin omituisuudet
EEPROM -järjestelmässä on kaksi suurta haittaa tietojen tallennusmenetelmänä. Useimmissa sovelluksissa edut ovat suurempia kuin haitat, mutta sinun tulee olla tietoinen niistä ennen EEPROMin sisällyttämistä seuraavaan suunnitteluun.
Ensinnäkin tekniikka, joka saa EEPROMin toimimaan, rajoittaa myös uudelleen kirjoittamisten lukumäärää. Tämä liittyy siihen, että elektronit jäävät loukkuun ROM: n muodostaviin transistoreihin ja kertyvät, kunnes varauksen "1" ja "0" välinen varausero on tunnistamaton. Mutta ei hätää, useimpien EEPROMien uudelleenkirjoitusmäärä on enintään miljoona tai enemmän. Niin kauan kuin et kirjoita jatkuvasti EEPROMiin, on epätodennäköistä, että saavutat tämän maksimin. Toiseksi EEPROMia ei poisteta, jos poistat siitä virran, mutta se ei pidä tietojasi loputtomiin. Elektronit voivat ajautua ulos transistoreista ja eristimen läpi ja poistaa tehokkaasti EEPROMin ajan myötä. Tämä tapahtuu yleensä vuosien varrella (vaikka sitä voidaan kiihdyttää lämmöllä). Useimmat valmistajat sanovat, että tietosi ovat turvassa EEPROM -laitteessa vähintään 10 vuotta huoneenlämmössä. Ja on vielä yksi asia, joka sinun on pidettävä mielessä, kun valitset projektillesi EEPROM -laitteen. EEPROM -kapasiteetti mitataan bitteinä eikä tavuina. 512 000 EEPROMiin mahtuu 512 kt bittiä dataa, toisin sanoen vain 64 kt.
Vaihe 3: Arduino -laitteiston liitäntä
Okei, nyt kun tiedämme, mitä EEPROM on, kytke se yhteen ja katso, mitä se voi tehdä! Jotta saisimme laitteemme puhumaan, meidän on kytkettävä virta sekä I²C -sarjalinjat. Tämä laite toimii erityisesti 5 VDC: llä, joten liitämme sen Arduino UNO: n 5 V: n ulostuloon. Lisäksi I²C-linjat tarvitsevat vetovastusvastuksia, jotta tiedonsiirto toimisi oikein. Näiden vastuksien arvo riippuu niiden kapasitanssista ja taajuudesta, joista haluat välittää sen, mutta hyvä nyrkkisääntö ei-kriittisille sovelluksille pidetään vain kΩ-alueella. Tässä esimerkissä käytämme 4,7 kΩ vetovastuksia.
Tässä laitteessa on kolme nastaa I²C -osoitteen valitsemiseksi. Tällä tavalla sinulla voi olla useampi kuin yksi EEPROM väylässä ja osoitteet eri tavalla. Voisit vain maadoittaa ne kaikki, mutta me johdotamme ne, jotta voimme pudottaa suuremman kapasiteetin laitteen myöhemmin opetusohjelmassa.
Käytämme leipälautaa yhdistääksemme kaiken yhteen. Alla olevassa kaaviossa näkyy oikea liitäntä useimmille I²C EEPROM -laitteille, mukaan lukien myymämme 24-sarjan mikrosiru EEPROM.
Vaihe 4: Lukeminen ja kirjoittaminen
Suurimman osan ajasta, kun käytät EEPROM -laitetta yhdessä mikro -ohjaimen kanssa, sinun ei tarvitse itse nähdä koko muistin sisältöä kerralla. Voit vain lukea ja kirjoittaa tavuja siellä täällä tarpeen mukaan. Tässä esimerkissä aiomme kuitenkin kirjoittaa koko tiedoston EEPROMiin ja lukea sen sitten takaisin, jotta voimme tarkastella sitä tietokoneellamme. Tämän pitäisi saada meidät tyytyväisiksi ajatukseen käyttää EEPROMia ja antaa myös tunteen siitä, kuinka paljon dataa todella mahtuu pieneen laitteeseen.
Kirjoittaa jotain
Esimerkkiluonnoksemme yksinkertaisesti ottaa kaikki tavut, jotka tulevat sarjaportin yli, ja kirjoittaa ne EEPROMiin pitäen kirjaa siitä, kuinka monta tavua olemme kirjoittaneet muistiin.
Muistitavu kirjoitetaan EEPROMiin yleensä kolmessa vaiheessa:
- Lähetä muistiosoitteen merkittävin tavu, johon haluat kirjoittaa.
- Lähetä muistin osoitteen vähiten merkittävä tavu, johon haluat kirjoittaa.
- Lähetä datatavu, jonka haluat tallentaa tähän paikkaan.
Siellä on luultavasti muutamia avainsanoja, jotka eivät selitä:
Muistiosoitteet
Jos kuvittelet kaikki 512 Kbit: n EEPROMin tavut seisovan rivillä 0 - 64000 - koska tavua on 8 bittiä ja siksi voit sovittaa 64000 tavua 512 Kbit: n EEPROM -muistiin -, muistipaikka on paikka rivi, josta löydät tietyn tavun. Meidän on lähetettävä tämä osoite EEPROMille, jotta se tietää, mihin lähetettävä tavu sijoitetaan.
Merkittävimmät ja vähiten merkittävät tavut
Koska 256 Kbit: n EEPROM -järjestelmässä on 32 000 mahdollista paikkaa - ja koska 255 on suurin numero, jonka voit koodata yhteen tavuun - meidän on lähetettävä tämä osoite kahdessa tavussa. Ensinnäkin lähetämme merkittävimmän tavun (MSB) - tässä tapauksessa ensimmäiset 8 bittiä. Sitten lähetämme vähiten merkittävän tavun (LSB) - toiset 8 bittiä. Miksi? Koska näin laite odottaa vastaanottavansa ne, siinä kaikki.
Sivun kirjoittaminen
Yksi tavu kerrallaan kirjoittaminen on hienoa, mutta useimmissa EEPROM -laitteissa on jotain nimeltään "sivun kirjoituspuskuri", jonka avulla voit kirjoittaa useita tavuja kerrallaan samalla tavalla kuin yhden tavun. Hyödynnämme tätä esimerkkiluonnoksessamme. EEPROM käyttää sisäistä laskuria, joka lisää automaattisesti muistipaikkaa jokaisella seuraavalla vastaanotetulla datatavulla. Kun muistiosoite on lähetetty, voimme seurata sitä jopa 64 tavun datalla. EEPROM olettaa (oikeutetusti), että osoite 312, jota seuraa 10 tavua, tallentaa tavun 0 osoitteeseen 312, tavun 1 osoitteeseen 313, tavun 2 osoitteeseen 314 ja niin edelleen.
Lue jotain
EEPROMista lukeminen noudattaa periaatteessa samaa kolmivaiheista prosessia kuin EEPROMille kirjoittaminen:
- Lähetä muistiosoitteen merkittävin tavu, johon haluat kirjoittaa.
- Lähetä muistin osoitteen vähiten merkittävä tavu, johon haluat kirjoittaa.
- Pyydä datatavua kyseisessä paikassa.
Vaihe 5: Kaaviot ja koodi
Koodi:
#sisältää
#define eeprom 0x50 // määrittää EEPROMin perusosoitteen
void setup () {
Wire.begin (); // luo Wire -objektin
Sarja.alku (9600);
allekirjoittamaton int -osoite = 0; // EEPROMin ensimmäinen osoite
Serial.println ("Kirjoitamme postinumeron 22222, postinumero"); for (osoite = 0; osoite <5; osoite ++) writeEEPROM (eeprom, address, '2'); // Kirjoittaa 22222 EEPROMiin
for (osoite = 0; osoite <5; osoite ++) {Serial.print (readEEPROM (eeprom, address), HEX); }}
void loop () {
/*silmukka () -funktiossa ei ole mitään, koska emme halua arduinon kirjoittavan samaa asiaa toistuvasti EEPROMiin uudestaan ja uudestaan. Haluamme vain kertaluonteisen kirjoituksen, joten silmukka () -funktiota vältetään EEPROM-laitteilla.*/}
// määrittelee writeEEPROM -funktion
void writeEEPROM (int deviceaddress, unsigned int eeaddress, byte data) {Wire.beginTransmission (laiteosoite); Wire.write ((int) (sähköpostiosoite >> 8)); // kirjoittaa MSB Wire.write ((int) (eeaddress & 0xFF)); // kirjoittaa LSB Wire.write (data); Wire.endTransmission (); }
// määrittelee readEEPROM -funktion
tavu lukuEEPROM (int -laitteen osoite, allekirjoittamaton int -osoite) {tavu rdata = 0xFF; Wire.beginTransmission (laiteosoite); Wire.write ((int) (sähköpostiosoite >> 8)); // kirjoittaa MSB Wire.write ((int) (eeaddress & 0xFF)); // kirjoittaa LSB Wire.endTransmission (); Wire.requestFrom (laiteosoite, 1); if (Wire.available ()) rdata = Wire.read (); palauta rdata; }
Suositeltava:
Sähkömittarin lukeminen Arduinon kautta: 3 vaihetta
Sähkömittarin lukeminen Arduinon kautta: Usein olisi mielenkiintoista tietää kotisi nykyinen virrankulutus tai kokonaisvirrankulutus rajoittaaksesi sähkökustannuksiasi ja suojellaksesi ympäristöä. Tämä ei ole varsinainen ongelma, koska useimmiten löydät älykkään digitaalisen
DHT -tietojen lukeminen nestekidenäytöllä Raspberry Pi -laitteella: 6 vaihetta
DHT -tietojen lukeminen nestekidenäytöllä Raspberry Pi: n avulla: Lämpötila ja suhteellinen kosteus ovat tärkeitä säätietoja ympäristössä. Nämä kaksi voivat olla tietoja, joita minisääasema toimittaa. Lämpötilan ja suhteellisen kosteuden lukeminen Raspberry Pi: n avulla voidaan saavuttaa erilaisilla
SD -korttimoduuli Arduinolla: Tietojen lukeminen/kirjoittaminen: 14 vaihetta
SD -korttimoduuli Arduinolla: Tietojen lukeminen/kirjoittaminen: Yleiskatsaus Tietojen tallentaminen on yksi jokaisen projektin tärkeimmistä osista. On useita tapoja tallentaa tietoja tietotyypin ja koon mukaan. SD- ja micro -SD -kortit ovat yksi käytännöllisimmistä tallennuslaitteista, joita käytetään
Ohjeen kirjoittaminen ohjeiden avulla: 14 vaihetta
Ohjeen kirjoittaminen ohjeiden avulla: Tässä asiakirjassa kerrotaan, miten ohjekirjoja käytetään ohjeiden kirjoittamiseen
Kirjoittaminen EMG: llä MyoWaren avulla: 8 vaihetta
Kirjoittaminen EMG: llä MyoWaren avulla: Tekijät: L. Elizabeth Crawford & Dylan T. Vavra Johdanto: Tässä opetusohjelmassa näytämme sinulle, kuinka luoda yksinkertainen kotielektromyografia (EMG) -järjestelmä - hintaan noin 100 dollaria - joka tunnistaa lihasten aktivoitumisen pinnalta