ทางเลือกในการใช้ EEPROM


9

อย่างที่ฉันเข้าใจ EEPROM เป็นส่วนหนึ่งของคอมพิวเตอร์ (ในกรณีของฉันคือไมโครคอนโทรลเลอร์ AVR) ซึ่งเก็บข้อมูลและเก็บไว้แม้ในขณะที่อุปกรณ์ปิดตัวลงอย่างสมบูรณ์ อนุญาตให้เขียนข้อมูลลงไปและอ่านจากมัน

ปัญหาที่ฉันเห็นคือมีชีวิตที่ จำกัด และค่อนข้างสั้น กล่าวอีกนัยหนึ่งฉันสามารถอ่าน / เขียนจำนวนครั้งที่แน่นอนก่อนที่ฉันจะหมด EEPROM

สิ่งที่ฉันกำลังมองหาคือวิธีการที่จะได้รับฟังก์ชั่นการทำงานเช่นเดียวกับ EEPROM แต่ในรูปแบบขนาดเล็ก ฉันคิดว่าฉันสามารถใช้การ์ด microSD ได้ แต่ฉันต้องการโซลูชันที่ไม่ต้องการให้ผู้ใช้ซื้อการ์ดหน่วยความจำ นอกจากนี้ฉันต้องการพื้นที่เพียงไม่กี่ไบต์เท่านั้น สมมุติว่า 1 kB ให้มีความอนุรักษ์มาก ๆ ฉันจะใช้จ่ายมากกว่าที่จำเป็นเพื่อรองรับการ์ดหน่วยความจำทุกประเภท

ดังนั้นตัวเลือกของฉันคืออะไร มีวิธีแก้ไขปัญหา IC ทั่วไปที่จะทำให้ฉันสามารถจัดเก็บ / เรียกคืนข้อมูลชนิดนี้ได้โดยไม่ต้องมีอายุสั้นและมีค่าใช้จ่ายสูงหรือไม่?


3
คุณต้องบันทึกกี่ไบต์บ่อยแค่ไหน? นั่นเป็นคำถามสำคัญที่นี่ ทุกนาทีหรือไม่ ชั่วโมง? milisecond?
Gustavo Litovsky

ตัวอย่างเช่น EEPROM ของ ATmega32 มีอายุการเขียน 100,000 ครั้ง / อ่าน อาจมากกว่านั้นพอขึ้นอยู่กับแอปพลิเคชั่น ..
m.Alin

3
คุณพูดว่า "ฉันสามารถอ่าน / เขียนได้เพียงจำนวนครั้งเท่านั้นก่อนที่ฉันจะสวม EEPROM" ซึ่งไม่ถูกต้องนัก คุณสวม EEPROM ด้วยการเขียน แต่โดยทั่วไปการอ่านจะไม่ จำกัด
โฟตอน

@GustavoLitovsky สมมติว่าทุกๆนาที ในกรณีนี้สำหรับ ATmega32 ที่เปิดอยู่ตลอดเวลาจะใช้เวลาสองปี ฉันเดาว่าไม่เป็นไรเมื่อฉันวางไว้ในมุมมอง
capcom

@ThePhoton อาตกลง ฉันไม่เคยรู้เช่นนั้นขอบคุณ ไม่ว่ามันจะเปลี่ยนแปลงอะไรเพราะฉันต้องการทั้งการอ่าน / เขียน
capcom

คำตอบ:


4

ใช่ EEPROM เป็นหน่วยความจำชนิดไม่ลบเลือนซึ่งสามารถเก็บข้อมูลได้โดยไม่ต้องใช้พลังงานเป็นระยะเวลานาน (เวลาจริงขึ้นอยู่กับอุณหภูมิและเงื่อนไขอื่น ๆ )

มีอีกสองวิธีที่ไม่ระเหยเพื่อให้คุณพิจารณา:

1) หน่วยความจำแฟลชภายใน - ไมโครคอนโทรลเลอร์ส่วนใหญ่ทุกวันนี้มีแฟลชสำหรับจัดเก็บรหัสและบางรุ่นมีไว้สำหรับข้อมูลผู้ใช้และการบันทึกเช่นกัน สิ่งนี้มีวงรอบการเขียน จำกัด และต้องลบบล็อกก่อนที่จะเปลี่ยนบิตจาก '1' เป็น '0' (คุณเก็บข้อมูลไว้ที่อื่นในระหว่างนี้จากนั้นจึงเขียนใหม่)

2) หน่วยความจำ FRAM ภายใน - TI มีอุปกรณ์ที่มีหน่วยความจำ FRAM ซึ่งไม่ลบเลือนสามารถเข้าถึงได้ง่ายมาก (เช่นตำแหน่งหน่วยความจำอื่น ๆ ) การอ่านยังเป็นอันตรายเมื่อเขียน (แม้ว่าในกรณีของคุณสิ่งนี้อาจไม่สำคัญเนื่องจากจำนวนรอบคือ 10 ^ 13 หรือมากกว่านั้นที่ 85 องศาเซลเซียส)

3) หน่วยความจำแฟลชภายนอก - คุณสามารถเพิ่มหน่วยความจำภายนอกเพื่อเก็บข้อมูลไม่กี่เมกะบิต แต่ราคาไม่แพง

ขึ้นอยู่กับอัตราที่คุณต้องการบันทึก (และคุณสามารถปิดเครื่องได้อย่างดี) คุณอาจเพิ่มจำนวนรอบที่มีประสิทธิภาพสำหรับคุณได้


12

วิธีที่จะเอาชนะข้อ จำกัด ด้านความอดทนของ EEPROM คือการใช้อัลกอริทึมการปรับระดับการสึกหรอ โดยทั่วไปสำหรับทุกเร็กคอร์ดที่คุณต้องการจัดเก็บคุณจัดสรร N-times ความต้องการของหน่วยความจำและพื้นที่ที่สอดคล้องกันสำหรับค่า N-index จากนั้นใช้การอนุมานเพื่อหาว่าเป็น "เรคคอร์ดปัจจุบัน" และเป็นเรคคอร์ดถัดไปที่จะเขียน ถึง. มันอธิบายได้ดีในAVR App Noteนี้


7

วิธีแก้ปัญหาที่เป็นไปได้อีกอย่างคือแรมแบบสแตติกและแบตเตอรี่ อายุการใช้งานที่ จำกัด ซึ่งในที่สุดแบตเตอรี่จะตาย แต่ก็ไม่ จำกัด ในรอบการเขียน คุณสามารถใช้บางอย่างเช่นตัวเก็บประจุขนาดใหญ่เพื่อให้พลังงานถ้าคุณรู้ว่าเวลาว่างของคุณจะมีค่าเล็กน้อย ลิเธียมเซลล์แบบเหรียญอาจใช้เวลานานในแอปพลิเคชันเช่นนี้หากคุณออกแบบถูกต้อง

นอกจากนี้ยังมีชิ้นส่วนที่รวม RTC, nvram และแบตเตอรี่ (เพื่อให้นาฬิกาทำงานต่อไป) ในส่วนเดียว สิ่งเหล่านี้มีข้อเสียที่ถ้าแหล่งพลังงานภายในไปคุณได้สูญเสียส่วนทั้งหมด (ไม่ใช่แค่แบตเตอรี่) แต่ขึ้นอยู่กับระยะเวลาที่ผลิตภัณฑ์ของคุณควรมีอายุการใช้งานซึ่งอาจไม่เป็นปัญหา


2

ฉันไม่รู้ว่างบประมาณของคุณคืออะไร แต่คุณอาจต้องการดูMRAMซึ่งเร็วเหมือน DRAM แต่ไม่ลบเลือนเหมือน Flash แน่นอนสิ่งเหล่านี้มีราคาแพงกว่าชิป EEPROM

ฉันมีกลุ่มตัวอย่างจาก Freescale เมื่อหลายปีก่อน แต่ไม่เคยมีโอกาสใช้มันดังนั้นฉันจึงไม่สามารถบอกได้ว่าคุณจะจบวงจรที่ง่ายกว่าถ้าคุณต้องแนบการ์ด SD สล็อต


1

ฉันเป็นคนคอมพิวเตอร์มากกว่าวิศวกรไฟฟ้า แต่ฉันคิดว่ามีอีกวิธีหนึ่งในการแก้ไขปัญหาวงจรชีวิตของหน่วยความจำแฟลช:

ความเข้าใจของฉันคือว่าปัญหาวงจรชีวิตของแฟลชเป็นเรื่องของการลบไม่ใช่การเขียน คุณสามารถเขียนได้บ่อยเท่าที่คุณต้องการยกเว้นรายละเอียดเล็กน้อยที่การเขียนเป็นแบบทางเดียวเท่านั้น

เนื่องจากที่เก็บข้อมูลที่คุณต้องการมีขนาดเล็กเมื่อเทียบกับขนาดของอุปกรณ์ขนาดเล็กคุณสามารถ (สมมติว่าคุณมีการเข้าถึงฮาร์ดแวร์ในระดับต่ำพอ) เขียนมันออกมาหลายครั้งทุกครั้งที่อยู่ในตำแหน่งที่แตกต่างกัน ตรวจสอบให้แน่ใจว่าข้อมูลของคุณสามารถแยกความแตกต่างจากหน่วยความจำที่ไม่ได้เขียน (เสริมหากจำเป็นเพื่อให้บรรลุ) และเซลล์ที่เขียนล่าสุดคือค่าปัจจุบัน

นอกจากนี้หากข้อมูลของคุณเป็นตัวนับที่เพิ่มขึ้นหนึ่งครั้งต่อการเขียนคุณสามารถได้รับประโยชน์มากกว่านั้นโดยไม่เขียนเลย แต่แทนที่จะเขียนหนึ่งบิตต่อหนึ่งขีดการนับคือจำนวนบิตที่เขียน


1

Serial NVSRAMจาก Microchip อาจเหมาะกับการเรียกเก็บเงินของคุณ:

Serial NVSRAM offers non-volatile RAM storage and is ideal for applications that need to write very often to the memory. This device is significantly lower cost than other non-volatile RAM devices and the data is backed using an external battery. This 8-pin, SPI device supports unlimited instantaneous writes to the memory array, making it ideal in applications such as meters, data loggers, data recorders, black boxes. These devices are available in 512Kbits and 1Mbit densities.

ตระกูลหน่วยความจำอนุกรมนี้รองรับการสำรองแบตเตอรี่ แผ่นข้อมูลกล่าวถึงวาดปัจจุบันของ 1ua จากแบตเตอรี่ ราคาน้อยกว่า $ 2 ในจำนวน 1K และนำเสนอตัวอย่างฟรีโดย Microchip มีไอซีให้บริการในแพ็คเกจ PDIP และ SOIC ที่เป็นมิตรกับงานอดิเรก


1

คุณอาจต้องการค้นหาเป็น FRAM แบบอนุกรม ผู้ผลิตหลักดูเหมือนจะเป็น Cypress (née Ramtron) นี่คือส่วนหนึ่ง:

http://www.cypress.com/?rID=73530

มันมีขนาดใหญ่ (ที่ใหญ่ที่สุดที่ฉันเคยเห็นคือ 2Mbit) มันเป็นโปรโตคอลที่เข้ากันได้กับ MRAM หรือแฟลชมันเป็นไบต์อ่านเขียนได้โดยไม่จำเป็นต้องลบมันเร็ว --- เขียนทันกับโปรโตคอล SPI --- และ การเก็บรักษาสูงอย่างน่าหัวเราะ

ที่กล่าวว่ามันหายาก มีผู้จัดจำหน่ายไม่มากที่พกมันและคนที่ดูเหมือนจะขายหมดในทันที --- Cypress มีร้านของตัวเอง (จัดส่งฟรีด้วย) และระหว่างฉันสั่งซื้อชิ้นส่วน FM25V04 สองชิ้นที่พวกเขาขายหมด ใช้เวลาหกสัปดาห์ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.