Saya sedang mengembangkan aplikasi pengukuran dengan TI MSP430 dan saya ingin mendengar beberapa saran tentang jenis memori apa yang dapat saya gunakan.
Idenya adalah menggunakannya untuk mencatat selama waktu tertentu dan kemudian mengunduh data ke PC ketika perangkat terhubung melalui USB. Perkiraannya adalah untuk menyimpan hingga 5MB data, setiap sampel sekitar 25 byte data.
Akankah chip EEPROM sederhana dilakukan atau ada sesuatu yang lebih baik di luar sana?
Jawaban:
Saya telah menggunakan seri AT45D chip flash serial. Mereka memiliki buffer SRAM internal untuk mengatur halaman untuk dihapus / pemrograman. Antarmuka SPI untuk membaca data masuk dan keluar.
sumber
5MByte adalah banyak data untuk disimpan. Membacanya melalui USB menyiratkan bahwa Anda menggunakan salah satu bagian baru dengan antarmuka perangkat USB bawaan. Jika tidak, Anda akan menggunakan konverter USB ke serial (FTDI atau serupa) dan akan terbatas pada serial async. kecepatan data untuk membaca data.
Sudahkah Anda mempertimbangkan untuk menghubungkan kartu memori SD ke MSP, menyimpan data di dalamnya dan kemudian memindahkan kartu ke pc untuk membaca data yang disimpan. Saya belum menulis antarmuka ke perangkat ini tetapi ada banyak yang punya.
sumber
Serial flash lebih unggul daripada EEPROM dalam aplikasi ini. Atmel membuat barisan yang bagus . Pilihan Anda akan sangat tergantung pada dua hal: (1) Kebutuhan Anda untuk mengedit / sektor log Anda pada mikro dan (2) Ketersediaan RAM Anda pada MSP430.
Flash, tidak seperti EEPROM, hanya dapat ditulis dari 1 ke 0. 0. Mengubah data dari 0 ke 1 mengharuskan menghapus bagian dari bagian tersebut, yang biasanya hanya tersedia untuk halaman atau blok data. Anda harus menyangga halaman ini ke dalam RAM, menghapus halaman, mengedit di RAM, dan kemudian menulisnya kembali jika Anda ingin mengubah sesuatu.
Seri AT45D, seperti yang telah ditunjukkan, menawarkan sejumlah bagian yang memiliki buffer RAM pada chip untuk memfasilitasi proses ini tanpa menggunakan RAM pada mikrokontroler.
Pada akhirnya, seluruh seri ini kompatibel dengan pin, jadi cukup letakkan footprint 8-SOIC (150mil), dan kemudian Anda dapat menukar bagian-bagiannya jika Anda membutuhkan opsi yang berbeda nanti.
sumber
Saya akan menyarankan seri AT25D karena tampaknya sedikit lebih mudah digunakan daripada AT45D. Meskipun sedikit lebih lambat dan tidak menawarkan banyak opsi transfer data atau buffer SRAM. Memang memiliki keuntungan karena lebih murah dan masih cukup cepat untuk sebagian besar aplikasi seperti pencatatan data.
Jika Anda membutuhkan data 5MB, kecil kemungkinan EEPROM akan berfungsi karena mereka datang dalam paket <1Mbit. Chip flash dari Atmel mendukung hingga 64-mbit atau 8MB.
sumber
[Ini sebagai tanggapan terhadap komentar setelah jawaban Ian].
Kartu SD hanyalah perangkat SPI, jadi tidak ada chip / antarmuka yang diperlukan. Protokol lain termasuk antarmuka 2-kawat (seperti I2C) dan antarmuka 4-kawat (dengan CRC kompleks), tetapi SPI adalah yang paling umum digunakan.
Ada catatan aplikasi kartu SD yang tersedia untuk MSP430 dari TI di sini . Ini singkat, tetapi termasuk kode sampel. Ini menangani membaca dan menulis ke berbagai sektor pada kartu SD, yang mungkin semua yang Anda inginkan jika Anda tidak akan menancapkannya ke PC. Lihat juga implementasi ini oleh Foust (disarankan) atau Evans dari MSU.
Setelah Anda memiliki fungsi dasar untuk membaca dan menulis suatu sektor, Anda dapat abstrak sistem file yang sederhana dan tersuai melalui USB, atau menggunakan pustaka sistem file yang ada. FatFS , EFSL , atau DOSFs semua opsi untuk yang terakhir. Jika menerapkan semua fungsi yang diperlukan tampaknya terlalu sulit, ingat bahwa semua kecuali beberapa dapat / akan bertopik.
Namun, sistem file akan diabstraksi melalui antarmuka USB Anda ke tingkat tertentu. Ini akan lebih mudah jika Anda memiliki pustaka sistem file yang nyata dan kartu Anda berada dalam sistem file yang dapat dibaca, tetapi itu tetap bekerja. Jika Anda ingin menulis "Filesystem" Anda sendiri dan menghemat kerja / waktu / memori untuk implementasi USB, Anda dapat membuat definisinya sesederhana dan tidak fleksibel seperti log 1 mulai dari 0x0, log 2 mulai dari 0x10 0000, log 3 di 0x20 0000 , dan log 4 pada 0x30 0000. Kemudian, Anda dapat mengirim data ini melalui USB.
Antarmuka USB bisa serumit yang Anda inginkan - dari antarmuka serial ke perangkat penyimpanan massal.
sumber