Satura rādītājs:
- Piegādes
- 1. darbība: EEPROM pamati
- 2. darbība: EEPROM dīvainības
- 3. darbība: Arduino aparatūras savienošana
- 4. solis: lasīšana un rakstīšana
- 5. darbība: shēmas un kods
Video: Datu lasīšana un ierakstīšana ārējā EEPROM, izmantojot Arduino: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
EEPROM apzīmē elektriski dzēšamu programmējamu lasāmatmiņu.
EEPROM ir ļoti svarīga un noderīga, jo tā ir nepastāvīga atmiņas forma. Tas nozīmē, ka pat pēc plates izslēgšanas EEPROM mikroshēma joprojām saglabā tajā ierakstīto programmu. Tātad, izslēdzot dēli un pēc tam to atkal ieslēdzot, var palaist EEPROM ierakstīto programmu. Tātad būtībā EEPROM saglabā un vada programmu neatkarīgi no tā. Tas nozīmē, ka varat izslēgt ierīci, turēt to izslēgtu 3 dienas, atgriezties un ieslēgt, un tā joprojām var palaist tajā ieprogrammēto programmu. Tā darbojas lielākā daļa plaša patēriņa elektronisko ierīču.
Šo projektu sponsorē LCSC. Esmu izmantojis elektroniskos komponentus no LCSC.com. LCSC ir cieši apņēmusies piedāvāt plašu oriģinālu, augstas kvalitātes elektronisko komponentu izvēli par labāko cenu ar globālu piegādes tīklu uz vairāk nekā 200 valstīm. Reģistrējieties jau šodien un saņemiet $ 8 atlaidi pirmajam pasūtījumam.
EEPROM ir ļoti efektīvs arī ar to, ka tradicionālā EEPROM atsevišķus baitus var neatkarīgi nolasīt, izdzēst un pārrakstīt. Lielākajā daļā citu nemainīgas atmiņas veidu to nevar izdarīt. Sērijas EEPROM ierīces, piemēram, Microchip 24 sērijas EEPROM, ļauj pievienot vairāk atmiņas jebkurai ierīcei, kas spēj runāt I²C.
Piegādes
- EEPROM - 24LC512
- ATmega328P-PU
- 16 MHz kristāls
- Maizes dēlis
- Rezistors 4,7 kΩ x 2
- Kondensators 22 pF x 2
1. darbība: EEPROM pamati
Mikroshēmas 24LC2512 mikroshēmu var iegādāties 8 kontaktu DIP iepakojumā. 24LC512 tapas ir diezgan taisnas un sastāv no jaudas (8), GND (4), rakstīšanas aizsardzības (7), SCL/SDA (6, 5) un trim adrešu tapām (1, 2, 3).
Īsa ROM vēsture
Agrīnie "Stored -Program" tipa datori, piemēram, galda kalkulatori un tastatūras tulki, sāka izmantot ROM diode Matrix ROM veidā. Šī bija atmiņa, kas sastāv no atsevišķām pusvadītāju diodēm, kas novietotas uz speciāli organizētas PCB. Tas deva ceļu Mask ROM, parādoties integrālajām shēmām. Mask ROM līdzinājās Diode Matrix ROM, tikai tas tika ieviests daudz mazākā mērogā. Tomēr tas nozīmēja, ka nevarēja vienkārši pārvietot pāris diodes ar lodāmuru un pārprogrammēt to. Maska ROM bija jāprogrammē ražotājam, un pēc tam to nevarēja mainīt.
Diemžēl Mask ROM bija dārgs, un tā izgatavošana prasīja ilgu laiku, jo katrai jaunai programmai bija nepieciešama pavisam jauna ierīce, kas jāražo liešanā. Tomēr 1956. gadā šī problēma tika atrisināta, izgudrojot PROM (Programmable ROM), kas ļāva izstrādātājiem pašiem programmēt mikroshēmas. Tas nozīmēja, ka ražotāji varēja ražot miljoniem tādas pašas neprogrammētas ierīces, kas padarīja to lētāku un praktiskāku. Tomēr PROM varēja ierakstīt tikai vienu reizi, izmantojot augstsprieguma programmēšanas ierīci. Pēc tam, kad tika ieprogrammēta PROM ierīce, nevarēja atgriezt ierīci tās neieprogrammētajā stāvoklī.
Tas mainījās 1971. gadā, kad tika izgudrots EPROM (dzēšams programmējams ROM), kas papildus vēl viena burta pievienošanai akronimam radīja iespēju izdzēst ierīci un atgriezt to "tukšā" stāvoklī, izmantojot spēcīgu UV gaismas avotu. Tieši tā, lai pārprogrammētu, jums vajadzēja iedegt spilgtu gaismu uz IC, cik forši tas ir? Izrādās, ka tas ir diezgan forši, ja vien jūs neesat izstrādātājs, kurš strādā pie programmaparatūras, tādā gadījumā jūs patiešām vēlētos, lai varētu pārprogrammēt ierīci, izmantojot elektriskos signālus. Tas beidzot kļuva par realitāti 1983. gadā, izstrādājot EEPROM (Electrically Erasable Programmable ROM), un līdz ar to mēs nonākam pie pašreizējās dienas apgrūtinošā akronīma.
2. darbība: EEPROM dīvainības
EEPROM kā datu glabāšanas metodei ir divi būtiski trūkumi. Lielākajā daļā lietojumprogrammu plusi atsver mīnusus, taču jums tie jāzina, pirms EEPROM iekļaujat nākamajā dizainā.
Pirmkārt, tehnoloģija, kas liek darboties EEPROM, arī ierobežo to pārrakstīšanas reižu skaitu. Tas ir saistīts ar elektronu iesprūšanu tranzistoros, kas veido ROM, un uzkrājas, līdz lādiņu starpība starp "1" un "0" nav atpazīstama. Bet neuztraucieties, lielākajā daļā EEPROM pārrakstīšanas maksimālais skaits ir 1 miljons vai vairāk. Kamēr jūs nepārtraukti nerakstāt uz EEPROM, maz ticams, ka sasniegsit šo maksimumu. Otrkārt, EEPROM netiks izdzēsts, ja izņemsiet no tā barošanu, taču tas neietekmēs jūsu datus bezgalīgi ilgi. Elektroni var izkļūt no tranzistoriem un caur izolatoru, laika gaitā efektīvi izdzēšot EEPROM. Tomēr tas parasti notiek gadu gaitā (lai gan to var paātrināt siltums). Lielākā daļa ražotāju apgalvo, ka jūsu dati ir droši EEPROM 10 gadus vai ilgāk istabas temperatūrā. Un vēl viena lieta, kas jums jāpatur prātā, izvēloties EEPROM ierīci savam projektam. EEPROM ietilpību mēra bitos, nevis baitos. 512K EEPROM saturēs 512 KB datu, citiem vārdiem sakot, tikai 64 KB.
3. darbība: Arduino aparatūras savienošana
Labi, tagad, kad mēs zinām, kas ir EEPROM, savienosim vienu un redzēsim, ko tā var darīt! Lai mūsu ierīce runātu, mums ir jāpievieno barošana, kā arī I²C sērijas līnijas. Šī ierīce jo īpaši darbojas pie 5 V līdzstrāvas, tāpēc mēs to savienosim ar mūsu Arduino UNO 5 V izeju. Tāpat, lai komunikācija notiktu pareizi, I²C līnijām būs nepieciešami uzvilkšanas rezistori. Šo rezistoru vērtība ir atkarīga no to līniju kapacitātes un frekvences, ar kurām vēlaties to sazināties, bet labs īkšķa noteikums nekritiskām lietojumprogrammām tiek vienkārši turēts kΩ diapazonā. Šajā piemērā mēs izmantosim 4,7 kΩ pievilkšanas rezistorus.
Šajā ierīcē ir trīs tapas, lai izvēlētos I²C adresi, tādējādi autobusā var būt vairāk nekā viens EEPROM un adresēt katru no tām atšķirīgi. Jūs varētu vienkārši iezemēt tos visus, bet mēs tos vadīsim, lai vēlāk apmācības laikā varētu ievietot ierīces ar lielāku jaudu.
Mēs izmantosim maizes dēli, lai visu savienotu kopā. Zemāk redzamajā diagrammā parādīts pareizais savienojums lielākajai daļai I²C EEPROM ierīču, ieskaitot mūsu pārdoto 24-sērijas ECHROM mikroshēmu.
4. solis: lasīšana un rakstīšana
Lielāko daļu laika, lietojot EEPROM kopā ar mikrokontrolleri, jums faktiski nebūs jāredz viss atmiņas saturs vienlaikus. Jūs vienkārši lasīsit un rakstīsit baitus šeit un tur, ja nepieciešams. Tomēr šajā piemērā mēs rakstīsim visu failu uz EEPROM un pēc tam nolasīsim visu atpakaļ, lai mēs varētu to apskatīt savā datorā. Tam vajadzētu mūs apmierināt ar ideju izmantot EEPROM, kā arī radīt sajūtu par to, cik daudz datu patiešām var ietilpt nelielā ierīcē.
Rakstīt kaut ko
Mūsu parauga skice vienkārši paņems jebkuru baitu, kas nonāk seriālajā portā, un ierakstīs to EEPROM, sekojot līdzi tam, cik baitu esam ierakstījuši atmiņā.
Atmiņas baita ierakstīšana EEPROM parasti notiek trīs posmos:
- Nosūtiet atmiņas adreses nozīmīgāko baitu, uz kuru vēlaties rakstīt.
- Nosūtiet vismazāko atmiņas adreses baitu, uz kuru vēlaties rakstīt.
- Nosūtiet datu baitu, kuru vēlaties saglabāt šajā vietā.
Tur, iespējams, ir daži atslēgas vārdi, kas tikai izskaidro:
Atmiņas adreses
Ja jūs iedomājaties, ka visi 512 Kbit EEPROM baiti stāv rindā no 0 līdz 64000 - jo ir 8 biti uz baitu un tāpēc jūs varat ievietot 64000 baitus 512 Kbit EEPROM -, tad atmiņas adrese ir vieta līniju, kur jūs atradīsit noteiktu baitu. Mums ir jānosūta šī adrese EEPROM, lai tā zinātu, kur ievietot sūtāmo baitu.
Nozīmīgākie un vismazāk nozīmīgie baiti
Tā kā 256 Kbit EEPROM ir 32000 iespējamās vietas un 255 ir lielākais skaitlis, ko varat kodēt vienā baitā, mums šī adrese ir jānosūta divos baitos. Pirmkārt, mēs nosūtām visnozīmīgāko baitu (MSB) - pirmos 8 bitus šajā gadījumā. Tad mēs nosūtām vismazāko nozīmīgo baitu (LSB) - otros 8 bitus. Kāpēc? Tā kā ierīce cer tos saņemt, tas ir viss.
Lapu rakstīšana
Rakstīt vienu baitu vienlaikus ir labi, taču lielākajai daļai EEPROM ierīču ir kaut kas tāds, ko sauc par "lapu rakstīšanas buferi", kas ļauj vienlaikus rakstīt vairākus baitus tāpat kā vienu baitu. Mēs to izmantosim mūsu parauga skicē. EEPROM izmanto iekšējo skaitītāju, kas automātiski palielina atmiņas atrašanās vietu ar katru nākamo saņemto datu baitu. Kad atmiņas adrese ir nosūtīta, mēs varam tai sekot līdz pat 64 baitiem datu. EEPROM pieņem (pareizi), ka 312 adrese, kam seko 10 baiti, ierakstīs baitu 0 312. adresē, 1. baitu 313. adresē, 2. baitu 314. adresē utt.
Izlasiet kaut ko
Lasīšana no EEPROM pamatā notiek tādā pašā trīs soļu procesā kā rakstīšana EEPROM:
- Nosūtiet atmiņas adreses nozīmīgāko baitu, uz kuru vēlaties rakstīt.
- Nosūtiet vismazāko atmiņas adreses baitu, uz kuru vēlaties rakstīt.
- Pieprasiet datu baitu šajā vietā.
5. darbība: shēmas un kods
Kods:
#iekļaut
#define eeprom 0x50 // definē EEPROM bāzes adresi
void setup () {
Wire.begin (); // izveido Wire objektu
Sērijas sākums (9600);
neparakstīta int adrese = 0; // EEPROM pirmā adrese
Serial.println ("Mēs rakstām pasta indeksu 22222, pasta indekss"); for (adrese = 0; adrese <5; adrese ++) rakstītEEPROM (eeprom, adrese, '2'); // EEPROM raksta 22222
for (adrese = 0; adrese <5; adrese ++) {Serial.print (readEEPROM (eeprom, address), HEX); }}
void loop () {
/*cilpā () nav nekā, jo mēs nevēlamies, lai arduino atkārtoti rakstītu to pašu EEPROM. Mēs vēlamies tikai vienreizēju rakstīšanu, tāpēc, izmantojot EEPROM, tiek novērsta funkcija loop ().*/}
// definē funkciju writeEEPROM
void writeEEPROM (int deviceaddress, unsigned int eeaddress, byte data) {Wire.beginTransmission (deviceaddress); Wire.write ((int) (e -adrese >> 8)); // raksta MSB Wire.write ((int) (eeaddress & 0xFF)); // raksta LSB Wire.write (dati); Wire.endTransmission (); }
// definē funkciju readEEPROM
baits readEEPROM (int deviceaddress, unsigned int eeaddress) {baits rdata = 0xFF; Wire.beginTransmission (ierīces adrese); Wire.write ((int) (e -adrese >> 8)); // raksta MSB Wire.write ((int) (eeaddress & 0xFF)); // raksta LSB Wire.endTransmission (); Wire.requestFrom (deviceaddress, 1); ja (Wire.available ()) rdata = Wire.read (); atgriezt rdata; }
Ieteicams:
Ierakstīšana OLED displejā, izmantojot Bluetooth: 6 soļi
Rakstīšana uz OLED displeju, izmantojot Bluetooth: Šis projekts ir iedvesmots un Arduino LCD displeja vadības remikss, izmantojot Bluetooth Ievads: Šajā projektā mēs izveidosim "Bluetooth OLED". Tas, ko mēs darām šajā dizainā, ir Arduino savienošana ar OLED un Bluetooth moduli
Gaismas un temperatūras sensora datu lasīšana un attēlošana, izmantojot Raspberry Pi: 5 soļi
Gaismas un temperatūras sensora datu nolasīšana un attēlošana, izmantojot Raspberry Pi: Šajā pamācībā jūs uzzināsit, kā nolasīt gaismas un temperatūras sensoru ar aveņu pi un ADS1115 analogo ciparu pārveidotāju un grafizēt to, izmantojot matplotlib. Sāksim ar nepieciešamajiem materiāliem
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti - DHT11 datu reģistrētāja simulācija Proteus: 5 soļi
Kā izveidot mitruma un temperatūras reālā laika datu ierakstītāju, izmantojot Arduino UNO un SD karti | DHT11 datu reģistrētāja simulācija Proteus: Ievads: čau, tas ir Liono Maker, šeit ir YouTube saite. Mēs veidojam radošu projektu ar Arduino un strādājam pie iegultām sistēmām. Datu reģistrētājs: Datu reģistrētājs (arī datu reģistrētājs vai datu ierakstītājs) ir elektroniska ierīce, kas laika gaitā reģistrē datus
Ārējā laika stacija, izmantojot Arduino: 7 soļi
Ārējā laika stacija, izmantojot Arduino: Izmantotie materiāli: Cenas ir aptuvenas un pēc atmiņas. NodeMCU V3 Lua - 3 € digitālā temperatūra un mitrums DTH 22 - 2 € fotorezistora (LDR) sensora modulis nosaka gaismas jutīgo fotodiodi Arduino - 0,80 € 1 komplekts/partija Sniega/lietus lāšu noteikšanas sensors
Windows instalēšana ārējā diskā, izmantojot Mac nodalījumu Mac: 5 soļi (ar attēliem)
Windows instalēšana ārējā diskā, izmantojot Mac nodalījumu Mac datorā: ja esat iegādājies kaut ko līdzīgu sākotnējam MacBook Pro un ietaupījis nedaudz naudas, bet pēc tam drīz rodas problēmas ar uzglabāšanu, mēģinot instalēt logus, izmantojot Bootcamp Mēs visi zinām, ka 128 GB nav pietiekami šīs, lai mēs, iespējams, būtu nopirkuši kaut ko