إيبروم: كل ما تريد أن تعرفه عن هذه الذاكرة

EEPROM

إذا كنت صانعًا وتقوم ببعض مشاريع DIY التي يتعين عليك فيها العمل باستخدام الذاكرة ، فمن المؤكد أنك تعرف بالفعل كيف تعمل الذكريات المختلفة التي يدمجها Arduino ، مثل الفلاش (غير متقلب حيث يتم تخزين الرسم ومحمل الإقلاع) ، SRAM (ذاكرة سريعة ومتقلبة حيث تبقى متغيرات البرنامج أثناء المعالجة) ، و EEPROM (غير متطاير ويمكن استخدامه لتخزين معلومات إعادة التشغيل).

حسنًا ، بالإضافة إلى EEPROM المضمّن في Arduino ، يمكنك أيضًا استخدام شرائح خارجية من هذا النوع من الذاكرةكما مكون آخر. فهم ليسوا معقدين ولا للتفاعل معهم لتوليد الوصول (الكتابة والقراءة) أو تحديثات المعلومات المخزنة. ستجد هنا كل ما تحتاج إلى معرفته لبدء العمل مع هذه الأنواع من الذكريات ...

ما هو إيبروم؟

شركة STMicroelectronics EEPROM

شركة STMicroelectronics EEPROM

La EEPROM (ذاكرة حمراء فقط قابلة للمسح والبرمجة كهربائيًا) إنها نوع من ذاكرة ROM ، أي ذاكرة غير متطايرة يتم تخزين البيانات فيها بشكل دائم ، حتى إذا تم إزالة مصدر الطاقة. هذا يضعهم على الجانب الآخر من ذاكرة الوصول العشوائي (ذاكرة الوصول العشوائي) ، والتي تفقد جميع بياناتها عندما لا يتم تشغيلها.

في حالة EEPROM ، فهي ليست ذاكرة مثل ROM ، حيث تتم كتابة البيانات ولا يمكن تغييرها بعد الآن. EEPROM ، مثل الفلاش ، يعترف بالتغيير كما هو مطلوب. بمعنى أنه يمكن تخزين بعض البيانات ومسحها لتخزين بيانات مختلفة.

في الواقع ، كما تشير الاختصارات ، هو ملف ذاكرة قابلة للمسح كهربائيًا (قابل للمسح كهربائيًا) لإعادة البرمجة. هذا يختلف عن الأنواع الأخرى من ذاكرة القراءة فقط ، والتي يمكن محوها أيضًا مثل EPROMs ، ولكن في هذه الحالة لا يتم استخدام الكهرباء لمحو خلايا الذاكرة ، بدلاً من ذلك كان لديهم "نافذة" كوارتز على الرقاقة لتتمكن من عرض ضوء الأشعة فوق البنفسجية. الذي تم محوه.

تلك الخاصية EPROM جعلهم ذلك غير مرتاحين إلى حد ما ، حيث اضطروا إلى إسقاط تلك الأشعة لمحوها والأسوأ من ذلك كله ، يمكن محوها عن طريق الخطأ إذا تعرضت لهذا النوع من الإشعاع. في EEPROMs ، يُسمح بالقيام بذلك من خلال الفولتية بطريقة أكثر راحة وأمانًا.

الهيكل الداخلي

مخطط إيبروم

المصدر: Researchgate.net

لكي تعمل EEPROM ، هناك حاجة إلى خلايا ذاكرة خاصة جدًا. لقد تم بناؤها باستخدام ترانزستورات من نوع MOS ، ولكن لها بوابة عائمة مقارنةً بوحدات الترانزستورات التقليدية. تتبع هذه الترانزستورات الجديدة هيكلًا يُعرف باسم ساموس، وحالته الطبيعية مقطوعة وسيوفر الإخراج دائمًا 1 منطقيًا.

يمكن قراءة خلايا EEPROM هذه لعدد غير محدود من المرات ، ولكنها محدودة في عدد المرات التي يمكن محوها وإعادة برمجتها، كما يحدث للعديد من الآخرين. يحدث هذا أيضًا مع الفلاش ، ولهذا كان هناك الكثير من الحديث عن متانة محركات الأقراص الثابتة SSD ومحركات القلم وما إلى ذلك.

في حالة SAMOS ، يكون هذا الحد بين 100.000،1.000.000 و XNUMX،XNUMX،XNUMX مرة. بعد ذلك سوف يفشلون. بالمناسبة ، بعض الهياكل التي تم إنشاؤها بواسطة أحد معارفه القدامى ، أحد العظماء: الدكتور فوجيو ماسوكا من توشيبا (1984) ، الذي أنشأ أيضًا ذكريات مهمة أخرى وهياكل أشباه الموصلات ... ومع ذلك ، تم إطلاق الشريحة الأولى على كان السوق من شركة Intel منذ عام 1988 ، وهو نوع NOR EEPROM.

بالإضافة إلى ذلك ، عليك أن تعرف أن هذا النوع من الذاكرة عادة ما يكون مرتبطًا بوحدات المعالجة المركزية أو وحدات التحكم من خلال حافلة ببروتوكولات مثل SPI ، I2C، إلخ. في حالة MCUs (ميكروكنترولر) ، عادة ما يتم دمجها في الداخل ، كما هو الحال في بعض DSPs ، لتحقيق سرعة أكبر.

كما يتضح في الصورة أعلاه ، فإن ملف ترانزستورات ساموس التي تشكل خلايا الذاكرة ، يتم تجميعها في هذه الحالة في أزواج. يعمل أحد الخطوط المتصلة ببوابات بعض الترانزستورات كخط اختيار ، لتمييز أو الإشارة إلى هذا الخط للوصول (القراءة والكتابة) ، والآخر هو الذي يخزن بت المعلومات (0 أو 1).

تتم محاذاة الترانزستورات لتشكيل أطوال الكلمات المطلوبة (4 بت ، 8 بت ، 16 بت ، ...) والعديد من الكلمات مثل قدرة مهما كان لديك EEPROM (على سبيل المثال: يمكن أن يكون هناك أطوال كلمات 64 بت و 16 سطرًا = 1024 بت ، أي 1 كيلوبايت).

كيف يعمل EERPOM؟

كما ترون على الجانب ، لأداء المهام المختلفة، يجب أن يكون جهد البوابة والمصدر والصرف خرسانيًا:

  • الباب عند 20 فولت والصرف عند 20 فولت = برمجة (كتابة) خلية الذاكرة لتخزين البت المطلوب.
  • الباب عند 0 فولت والصرف عند 20 فولت = امسح البت المخزن بحيث يمكن إعادة برمجته بقيمة أخرى.
  • بوابة عند 5 فولت واستنزاف عند 5 فولت = قراءة البت المخزن. نظرًا لأن جهد البوابة أقل من جهد الكتابة ، فلن يتم تغيير القيمة المخزنة. يحدث الشيء نفسه مع جهد التصريف ، نظرًا لكونه أقل ، فلن يتم مسح البتة المخزنة.

الخلاصة ، استخدام ذاكرة EEPROM قليلة الفولتية "عالي" للمسح والكتابة ، أثناء استخدام الفولتية المنخفضة للقراءة ...

شراء EEPROM والعمل معها

تي مايكروإلكترونيكس، الشركة الفرنسية للإلكترونيات الدقيقة ، هي الأولى في هذا النوع من رقائق EEPROM ، على الرغم من وجود العديد من الشركات المصنعة الأخرى ، مثل Microchip. هذه الرقائق عادة ما تكون رخيصة جدًا.

إذا قررت استخدم إحدى هذه الرقائق ، يجب أن ترى الشركة المصنعة والطراز والبحث عن ورقة البيانات للاطلاع على جميع توصيات الشركة المصنعة ، حيث قد تختلف من واحدة إلى أخرى. على سبيل المثال ، سيحددون الفولتية التي تعمل بها ، pinout، إلخ. حتى تتمكن من تكوين مشروعك بشكل صحيح.

اعتمادًا على الحجم والطراز ، قد يكون أكثر أو أقل الصنوبر. ولكن لإعطائك فكرة ، يمكن أن تتكون شريحة 24LC512 EEPROM IC النموذجية من:

  • الدبابيس 1 (A0) و 2 (A1) و 3 (A3) المستخدمة في التكوين هي دبابيس التحديد.
  • دبوس 4 (Vss / GND) متصل بالأرض.
  • Pin 5 (SDA) ، للبيانات التسلسلية لاتصالات I2C.
  • دبوس 6 (SCL) ، لساعة I2C.
  • دبوس 7 (WP) ، حماية ضد الكتابة أو حماية ضد الكتابة. إذا كان متصلاً بـ GND ، فسيتم تمكين الكتابة. إذا كان متصلاً بـ Vcc يتم تعطيله.
  • دبوس 8 (Vcc) ، متصل بالطاقة.

أما بالنسبة لل المواصفات الفنية من هذه الشريحة:

  • 512 ك (64 × 8)
  • 128 بايت عازلة للكتابة
  • الجهد التشغيلي: 1.8 فولت إلى 5.5 فولت
  • تيار القراءة: 40uA
  • حافلة الاتصالات: I2C
  • دورة الكتابة: 5 مللي ثانية
  • توافق الساعة: ١٠٠-٤٠٠ كيلو هرتز
  • المتانة: 10.000.000 دورة
  • يمكن أن تتالي حتى 8 أجهزة
  • التعبئة والتغليف: 8-pin DIP و SOIJ و SOIC و TSSOP.

مكان الشراء

إلى شراء رقائق EEPROM، يمكنك إلقاء نظرة على هذه التوصيات:

باستخدام Arduino EEPROM

لقطة شاشة لـ Arduino IDE

إذا كنت ترغب في بدء العمل مع EEPROM ، يمكنك أيضًا تجربة تلك الموجودة على لوحتك اردوينو. يمكن برمجتها بطريقة بسيطة لفهم كيفية عملها على المستوى المنطقي والبرمجي.

مثال لحفظ متغير

//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
}

مثال لقراءة البيانات من 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()
{
}

مثال لتحديث القيم ، إعادة الجدولة

//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
}

معلومات اكثر - دورة اردوينو مجانية


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.