Ja esat veidotājs un veicat dažus DIY projektus, kuros jums jāstrādā ar atmiņu, jūs noteikti jau zināt, kā darbojas dažādas atmiņas, kuras Arduino integrē, piemēram, zibspuldze (nepastāvīga, kur ir saglabāta skice un sāknēšanas ielādētājs), (Ātra un nepastāvīga atmiņa, kurā apstrādes laikā paliek programmas mainīgie), un EEPROM (nepastāvīgs, un to var izmantot, lai saglabātu atsāknēšanas informāciju).
Nu, papildus EEPROM, kas iekļauts Arduino, varat izmantot arī ārējās mikroshēmas šāda veida atmiņaKā vēl viens komponents. Tos nav sarežģīti saprast, nedz arī ar tiem mijiedarboties, lai radītu piekļuvi (rakstīšana un lasīšana) vai atjauninātu uzglabāto informāciju. Šeit jūs atradīsit visu, kas jums jāzina, lai sāktu strādāt ar šāda veida atmiņām ...
Kas ir EEPROM?
STMicroelectronics EEPROM
La EEPROM (elektriski izdzēšama programmējama tikai sarkanā atmiņa) Tas ir ROM atmiņas veids, tas ir, nepastāvīga atmiņa, kurā dati tiks pastāvīgi saglabāti, pat ja strāvas padeve ir atvienota. Tas viņus ievieto RAM otrā pusē (Random Access Memory), kas zaudē visus savus datus, ja tie netiek darbināti.
EEPROM gadījumā tā nav tāda atmiņa kā ROM, kurā ir ierakstīti dati un kurus vairs nevar mainīt. EEPROM, tāpat kā zibspuldze, atzīst, ka tiek mainīts kā nepieciešams. Tas ir, dažus datus var saglabāt un izdzēst, lai uzglabātu dažādus.
Faktiski, kā norāda tās akronīmi, tas ir a elektriski izdzēšama atmiņa (elektriski izdzēšams) pārprogrammēšanai. Tas atšķiras no citiem ROM veidiem, kas arī ir izdzēšami, piemēram, EPROM, bet šajā gadījumā atmiņas šūnu dzēšanai netiek izmantota elektrība, tā vietā viņiem mikroshēmā bija kvarca "logs", lai varētu projicēt UV gaismu. kuru tas izdzēsa.
Šī iezīme EPROM tas viņus padarīja nedaudz neērti, jo viņiem bija jāprojicē šie stari, lai tos izdzēstu. Un, pats sliktākais, tos var nejauši izdzēst, ja tiek pakļauti šāda veida starojumiem. EEPROM ir atļauts to izdarīt, izmantojot spriegumu, ērtāk un drošāk.
Iekšējā struktūra
Avots: Researchgate.net
Lai EEPROM darbotos, nepieciešamas ļoti īpašas atmiņas šūnas. Tie ir veidoti, izmantojot MOS tipa tranzistorus, taču tiem ir peldoši vārti, salīdzinot ar tradicionālajiem MOSFET. Šie jaunie tranzistori darbojas pēc struktūras, kas pazīstama kā SAMOS, un tā parastais stāvoklis ir pārtraukts, un izeja vienmēr nodrošinās loģisku 1.
Šīs EEPROM šūnas var nolasīt neierobežotu reižu skaitu, bet tas ir ierobežots to, cik reižu tos var izdzēst un pārprogrammēt, kā tas notiek daudziem citiem. Tas notiek arī ar zibspuldzi, tāpēc ir tik daudz runāts par SSD cieto disku, pildspalvu disku uc izturību.
SAMOS gadījumā šī robeža ir starp 100.000 1.000.000 un XNUMX XNUMX XNUMX reizes. Pēc tam viņi izgāzīsies. Starp citu, dažas struktūras, kuras izveidoja vecs paziņa, viens no izcilajiem: Dr. Fujio Masuoka no Toshiba (1984), kurš ir izveidojis arī citas svarīgas atmiņas un pusvadītāju struktūras ... Tomēr pirmā mikroshēma tika palaista tirgus bija Intel no 1988. gada, NOR tipa EEPROM.
Turklāt jums jāzina, ka šāda veida atmiņa parasti ir saistīta ar CPU vai kontrolieriem autobuss ar tādiem protokoliem kā SPI, I2Cutt. MCU (mikrokontrolleru) gadījumā tas parasti tiek integrēts iekšpusē, tāpat kā dažos DSP, lai sasniegtu lielāku ātrumu.
Kā redzams augšējā attēlā, SAMOS tranzistori kas veido atmiņas šūnas, tādā gadījumā tiek sagrupēti pa pāriem. Viena no līnijām, kas piestiprināta pie dažu tranzistoru vārtiem, darbojas kā izvēles līnija, lai iezīmētu vai signalizētu šo līniju piekļuvei (lasīšanai un rakstīšanai), un otra būs tā, kas glabā informācijas bitu (0 vai 1).
Transistori ir izlīdzināti, veidojot nepieciešamos vārdu garumus (4 bitu, 8 bitu, 16 bitu, ...) un tik daudz vārdu kapacitāte jūs vēlaties, lai būtu EEPROM (piemēram: var būt 64 bitu vārdu garumi un ar 16 līnijām = 1024 biti, tas ir, 1 KB).
Kā darbojas EERPOM?
Kā redzams malā, uzstāties dažādos uzdevumos, vārtu, avotu un kanalizācijas spriegumam jābūt konkrētam:
- Durvis pie 20v un notekas pie 20v = atmiņas šūnas programmēšana (rakstīšana), lai saglabātu vēlamo bitu.
- Durvis pie 0v un notekas pie 20v = notīriet saglabāto bitu, lai to varētu pārprogrammēt ar citu vērtību.
- Vārti pie 5v un iztukšošana pie 5v = lasīt saglabāto bitu. Tā kā vārtu spriegums ir zemāks par rakstīto, saglabātā vērtība netiks mainīta. Tas pats notiek ar iztukšošanas spriegumu, jo tas ir mazāks, uzglabātais bits netiks izdzēsts.
Secinājums: EEPROM izmanto dažus spriegumiem "Augsts" dzēšanai un rakstīšanai, vienlaikus lasīšanai izmantojot zemāku spriegumu ...
Pērciet EEPROM un strādājiet ar to
STMicroelectronics, Francijas mikroelektronikas ražotājs, ir pirmais šāda veida EEPROM mikroshēmās, lai gan ir daudz citu ražotāju, piemēram, Microchip. Šīs mikroshēmas parasti ir diezgan lētas.
Ja jūs nolemjat izmantojiet vienu no šīm mikroshēmām, jums vajadzētu redzēt ražotāju un modeli un meklēt to datu apkopojums lai redzētu visus ražotāja ieteikumus, jo tie var atšķirties. Piemēram, viņi norādīs spriegumus, ar kuriem tas darbojas, pinoututt. Tātad jūs varat pareizi konfigurēt savu projektu.
Atkarībā no izmēra un modeļa tam var būt vairāk vai mazāk priedes. Bet, lai dotu jums ideju, tipisku 24LC512 EEPROM IC mikroshēmu varētu veidot:
- Konfigurācijā izmantotie tapas 1 (A0), 2 (A1) un 3 (A3) ir atlases tapas.
- 4. tapa (Vss / GND) ir savienota ar zemi.
- 5. kontakts (SDA) I2C sakaru sērijas datiem.
- 6. kontakts (SCL) I2C pulkstenim.
- 7. kontakts (WP), aizsardzība pret rakstīšanu vai rakstīšana. Ja tas ir savienots ar GND, tiks iespējota rakstīšana. Ja tas izveido savienojumu ar Vcc, tas ir atspējots.
- 8. tapa (Vcc), savienota ar strāvu.
Kā Tehniskās specifikācijas šīs mikroshēmas:
- 512K (64 × 8)
- 128 baitu buferis rakstīšanai
- Darba spriegums: 1.8v līdz 5.5v
- Lasīšanas strāva: 40uA
- Sakaru kopne: I2C
- Rakstīšanas cikls: 5ms
- Pulksteņa saderība: 100-400Khz
- Izturība: 10.000.000 XNUMX XNUMX ciklu
- Var būt kaskādē līdz 8 ierīcēm
- Iepakojums: 8 kontaktu DIP, SOIJ, SOIC un TSSOP.
Donde Comprar
līdz nopirkt EEPROM mikroshēmas, varat apskatīt šos ieteikumus:
- 95040Kb ST 4 sērijas SPI
- Netika atrasts neviens produkts.
- Netika atrasts neviens produkts.
- Netika atrasts neviens produkts.
- ST 24LC256 sērijas I2C 256Kb
- Netika atrasts neviens produkts.
Izmantojot Arduino EEPROM
Ja vēlaties sākt strādāt ar EEPROM, varat izmēģināt arī uz tāfeles esošo Arduino. To var ieprogrammēt vienkāršā veidā, lai loģiskā un programmēšanas līmenī saprastu, kā tas var darboties.
Mainīgā saglabāšanas piemērs
//Almacenar un valor en la EEPROM #include <EEPROM.h> float sensorValue; int eepromaddress = 0; //Función para simular lectura de un sensor o pin float ReadSensor() { return 10.0f; } void setup() { } void loop() { sensorValue = ReadSensor(); //Lectura simulada del valor EEPROM.put( eepromaddress, sensorValue ); //Escritura del valor en la EEPROM eepromaddress += sizeof(float); //Apuntar a la siguiente posición a escribir if(eepromaddress >= EEPROM.length()) eepromaddress = 0; //Comprueba que no existe desbordamiento delay(30000); //Espera 30s }
Piemērs datu lasīšanai no EEPROM
//Leer una variable de coma flotante #include <EEPROM.h> struct MyStruct{ float field1; byte field2; char name[10]; }; void setup(){ float f; int eepromaddress = 0; //La lectura comienza desde la dirección 0 de la EEPROM EEPROM.get( eepromaddress, f ); Serial.print( "Dato leído: " ); Serial.println( f, 3 ); eepromaddress += sizeof(float); } void loop() { }
Piemērs vērtību atjaunināšanai, pārplānojiet
//Actualizar valor de la EEPROM escribiendo el dato entrante por la A0 #include <EEPROM.h> int eepromaddress = 0; void setup() { } void loop() { int val = analogRead(0) / 4; EEPROM.update(eepromaddress, val); eepromaddress += sizeof(int); if(address == EEPROM.length()) eepromaddress = 0; delay(10000); //Espera de 10 segundos }
Vairāk informācijas - Bezmaksas Arduino kurss