Alternatif untuk menggunakan EEPROM

9

Seperti yang saya pahami, EEPROM adalah bagian dari komputer (dalam kasus saya, mikrokontroler AVR) yang menyimpan data, dan menyimpannya bahkan ketika perangkat benar-benar dimatikan. Itu memungkinkan data dituliskan padanya, dan membacanya.

Masalah yang saya lihat adalah bahwa ia memiliki kehidupan yang terbatas, dan yang cukup singkat. Dengan kata lain, saya hanya bisa membaca / menulis beberapa kali hingga saya memakai EEPROM.

Apa yang saya cari adalah cara untuk mencapai fungsi yang sama dengan EEPROM, tetapi dalam faktor bentuk kecil. Saya kira saya bisa menggunakan sesuatu seperti kartu microSD, tapi saya lebih suka solusi yang tidak mengharuskan pengguna untuk membeli kartu memori. Selain itu, saya hanya benar-benar membutuhkan beberapa byte ruang, paling banyak. Anggap saja 1 kB sangat, sangat konservatif. Saya akan menghabiskan lebih dari yang dibutuhkan untuk mengakomodasi kartu memori dalam bentuk apa pun.

Jadi apa saja pilihan saya? Apakah ada solusi IC umum yang memungkinkan saya untuk mencapai penyimpanan / pengambilan data seperti ini, tanpa umur pendek dan biaya tinggi?

capcom
sumber
3
Seberapa sering Anda perlu menyimpan beberapa byte ini? Itulah pertanyaan kunci di sini. Apakah setiap menit? Jam? milidetik?
Gustavo Litovsky
EEPROM dari ATmega32, misalnya, memiliki kehidupan 100.000 siklus tulis / baca. Itu bisa lebih dari cukup, tergantung pada aplikasinya ..
m.lin
3
Anda berkata "Saya hanya bisa membaca / menulis beberapa kali sebelum saya memakai EEPROM", yang tidak tepat. Anda memakai EEPROM dengan menulis, tetapi umumnya membaca tidak terbatas.
The Photon
@ GustavoLitovsky Katakanlah, setiap menit sekali. Dalam hal ini, untuk ATmega32 yang terus menyala, itu akan bertahan dua tahun. Saya kira itu tidak masalah, ketika saya menempatkannya dalam perspektif.
Capcom
@ThePhoton Ah, ok. Saya tidak pernah tahu itu, terima kasih. Bukan berarti itu mengubah apa pun, karena saya memerlukan keduanya baca / tulis.
capcom

Jawaban:

4

Ya, EEPROM adalah jenis memori nonvolatile yang dapat menyimpan data bahkan tanpa daya untuk waktu yang signifikan (waktu aktual tergantung pada suhu dan kondisi lainnya).

Ada beberapa solusi non-volatil lainnya yang perlu Anda pertimbangkan:

1) Memori Flash Internal - Sebagian besar mikrokontroler saat ini memiliki Flash untuk penyimpanan kode dan beberapa menyediakannya untuk data pengguna dan juga pencatatan. Ini juga memiliki siklus tulis yang terbatas dan memerlukan blok hapus sebelum mengubah bit dari '1' menjadi '0' (sementara itu Anda menyimpan data di tempat lain dan kemudian menulis ulang).

2) Memori FRAM internal - TI memiliki perangkat dengan memori FRAM yang nonvolatile, dapat diakses dengan sangat sederhana (seperti lokasi memori lainnya. Membaca juga merusak seperti menulis (meskipun dalam kasus Anda ini mungkin tidak masalah karena jumlah siklus adalah 10) ^ 13 atau lebih pada 85 derajat celsius).

3) Memori Flash Eksternal - Anda dapat menambahkan memori secara eksternal untuk menyimpan beberapa megabit data dengan lebih murah.

Tergantung pada tingkat di mana Anda ingin menyimpan (dan apakah Anda dapat mematikan dengan baik) Anda mungkin dapat meningkatkan jumlah siklus efektif yang tersedia untuk Anda.

Gustavo Litovsky
sumber
12

Cara untuk mengatasi batasan daya tahan EEPROM adalah dengan menerapkan algoritma level-aus. Pada dasarnya untuk setiap catatan yang ingin Anda simpan, Anda mengalokasikan N-kali kebutuhan memori untuknya, dan ruang yang sesuai untuk nilai indeks-N, kemudian gunakan inferensi untuk mencari tahu mana yang merupakan "catatan saat ini" dan yang merupakan catatan berikutnya untuk menulis untuk. Ini dijelaskan dengan baik dalam Catatan Aplikasi AVR ini .

vicatcu
sumber
7

Solusi potensial lainnya adalah sedikit ram statis, dan baterai. Ini memiliki masa hidup yang terbatas karena baterai pada akhirnya akan mati, tetapi tidak terbatas dalam siklus tulis. Anda juga dapat menggunakan sesuatu seperti kapasitor ish besar untuk menyalakannya, jika Anda tahu off-time Anda akan menjadi nilai yang lebih kecil. Sel koin lithium dapat bertahan lama dalam aplikasi seperti ini, jika Anda mendesainnya dengan benar.

Ada juga bagian yang menggabungkan RTC, nvram, dan baterai (agar jam tetap berjalan) di satu bagian. Ini memiliki kelemahan bahwa jika sumber daya internal hilang, Anda telah kehilangan seluruh bagian (bukan hanya baterai), tetapi tergantung pada berapa lama produk Anda harus bertahan yang mungkin tidak menjadi masalah.

Michael Kohne
sumber
2

Saya tidak tahu berapa anggaran Anda, tetapi Anda mungkin ingin melihat MRAM , yang secepat DRAM tetapi tidak mudah menguap seperti Flash. Tentu saja, ini jauh lebih mahal daripada chip EEPROM.

Saya punya banyak IC sampel dari Freescale tahun yang lalu, tetapi tidak pernah punya kesempatan untuk menggunakannya, jadi saya tidak bisa memastikan apakah Anda akan berakhir dengan rangkaian yang lebih sederhana daripada jika Anda harus memasang kartu SD slot.

Simon
sumber
1

Saya seorang pria komputer daripada seorang insinyur listrik tapi saya pikir ada pendekatan lain untuk masalah siklus hidup memori flash:

Pemahaman saya adalah bahwa masalah siklus hidup pada flash sebenarnya adalah masalah menghapus, bukan menulis. Anda dapat menulis sebanyak yang Anda inginkan, kecuali untuk detail kecil bahwa penulisan hanya satu arah.

Karena penyimpanan yang Anda butuhkan kecil dibandingkan dengan ukuran bahkan perangkat kecil yang Anda bisa (dengan asumsi Anda memiliki akses tingkat rendah yang cukup ke perangkat keras) catat berkali-kali, setiap kali di lokasi yang berbeda. Pastikan data Anda dapat dibedakan dari memori tidak tertulis (padankan jika perlu untuk mencapai ini) dan sel yang ditulis terakhir adalah nilai saat ini.

Lebih jauh, jika data Anda sebenarnya adalah penghitung yang ditambahkan satu kali per penulisan, Anda bisa mendapatkan lebih banyak darinya dengan tidak menulisnya sama sekali, tetapi menulis satu bit per tick, hitungannya adalah jumlah bit yang ditulis.

Loren Pechtel
sumber
1

NVSRAM seri dari Microchip mungkin sesuai dengan tagihan Anda:

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.

Keluarga memori serial ini mendukung cadangan baterai. The datasheet menyebutkan menarik arus dari 1ua dari baterai. Harga kurang dari $ 2 dalam 1K qty dan sampel gratis ditawarkan oleh Microchip. IC tersedia dalam paket PDIP dan SOIC ramah-hobi.

Chetan Bhargava
sumber
1

Anda mungkin ingin melihat FRAM serial. Produsen utama tampaknya adalah Cypress (née Ramtron). Inilah satu bagian:

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

Ini tersedia dalam ukuran besar (yang terbesar yang pernah saya lihat adalah 2Mbit), itu protokol yang kompatibel dengan MRAM atau flash, itu byte read-writeable tanpa perlu menghapus, itu cepat --- tulis ikuti protokol SPI --- dan retensi luar biasa tinggi.

Karena itu, agak sulit ditemukan. Tidak banyak distributor yang membawanya dan mereka yang sepertinya menjual langsung --- Cypress memiliki toko sendiri (pengiriman gratis juga) dan di antara saya memesan dua bagian FM25V04 yang terjual habis. Enam minggu, tampaknya ...

David Given
sumber