Saya membutuhkan solusi memori yang akan digunakan untuk melacak akumulasi jumlah pada proyek berbasis mikro-controller.
Dengan akumulasi jumlah, maksud saya mengatakan bahwa mikrokontroler menggunakan lokasi memori ini untuk menghitung kejadian suatu peristiwa. Hitungan perlu dipertahankan selama pemadaman listrik, karenanya kebutuhan untuk memori NON-VOLATILE.
Juga terjadinya acara peningkatan hitungan sering maka akan ada banyak menulis ke memori maka saya ragu untuk menggunakan EEPROM.
Antarmuka komunikasi yang disukai adalah I2C, tetapi alternatif lain dipersilakan.
Dari atas kepala saya, saya membayangkan IC memori volatile daya rendah SRAM dengan opsi yang didukung oleh baterai cadangan seperti sel koin pada power-down.
Jawaban:
Tiga jenis memori non-volatile sesuai dengan kebutuhan Anda, sesuai dengan ukuran yang tersedia:
Dari segi biaya, FRAM adalah yang terbaik. Yang Anda butuhkan ada di dalam chip, termasuk kapasitor cadangan untuk menyelesaikan penulisan. Namun ukuran yang tersedia rendah.
Baterai cadangan SRAM besar dan berbahan material.
Weared EEPROM membutuhkan firmware untuk menangani leveling keausan.
sumber
Inilah yang saya lakukan pada produk yang masih dalam produksi massal.
Ternyata ada sekitar 10-20ms waktu antara pemicu tegangan rendah dan waktu ketika IC manajemen daya menendang dan mematikan semuanya (secara teratur). Apakah ini berfungsi atau tidak, tergantung pada penyimpanan energi dalam catu daya Anda, tetapi bahkan pasokan kecil dapat memperlambatnya sehingga Anda dapat menulis kumpulan data kecil dengan andal.
sumber
Toggle MRAM (magnetoresistive RAM) diklaim memiliki daya tahan tulis tak terbatas yang efektif (mereka tidak mengetahui adanya mekanisme yang menyebabkan tulisan aus). Saya tidak mengetahui adanya chip yang berbicara I2C, jadi Anda harus puas dengan SPI. Inilah salah satu bagiannya: https://www.digikey.com/product-detail/en/everspin-technologies-inc/MR25H256ACDF/819-1064-ND/8286370
sumber
Kedengarannya seperti Anda bisa menggunakan chip jam RTC atau modul. Ini memiliki cadangan baterai, SRAM tambahan untuk data pengguna dan dilengkapi dengan antarmuka I2C.
Atau cukup gunakan MCU dengan SRAM yang didukung baterai untuk memulai, sehingga tidak diperlukan komponen eksternal.
sumber
Cypress membuat apa yang mereka sebut SRAM Nonvolatile . Ini adalah SRAM standar yang secara otomatis mencadangkan ketika listrik mati. Karena hanya menulis ke memori non-volatile pada kegagalan daya, ia berpotensi memiliki daya tahan yang jauh lebih besar. Muncul dalam versi serial dan paralel. Mungkin agak berlebihan, karena yang terkecil adalah 64Kb.
sumber
Untuk variabel 4 byte tunggal, EEPROM akan baik-baik saja.
Katakanlah Anda menulisnya sekali per detik dan Anda memiliki EEPROM 32Kb yang khas dan kami menggunakan daya tahan konservatif 100.000 siklus penulisan.
Anda dapat menulis 4 byte 8000 kali sebelum Anda perlu menghapusnya. Jadi itu harus 800 juta kali Anda dapat menulisnya bahkan menggunakan perkiraan konservatif.
Sekarang hanya ada 31,5 juta detik dalam satu tahun, jadi pada satu tulis per detik, dibutuhkan 25 tahun untuk mencapai perkiraan daya tahan EEPROM yang rendah.
sumber
Ada banyak opsi di sini, tetapi masalah sebenarnya adalah menghentikan data agar tidak rusak. Kehilangan daya saat menulis dapat merusak data. I2C adalah pilihan yang baik untuk menghindari ini, karena misalnya dengan SPI Anda dapat menemukan bahwa penulisan muncul (dari sudut pandang memori) untuk menyelesaikan setengah jalan melalui pembaruan katakanlah 4 byte kata 32 bit. I2C sedikit lebih kuat, tetapi hanya sedikit.
Saran saya adalah menyimpan 4 salinan dari nilai tersebut. Dengan cara itu bahkan jika tulisan terganggu, dua akan selalu cocok.
FRAM atau sejenisnya mungkin merupakan pilihan terbaik.
sumber