Saya memiliki dua modul RAM 2GB yang tersisa yang saya hapus dari MacBook Pro saya ketika melakukan peningkatan. Saya hanya ingin tahu apakah ini dapat digunakan, misalnya, dengan Arduino. Saya akan terlalu pemula untuk benar-benar mencoba melakukan ini sekarang, tapi saya ingin tahu apakah itu mungkin, atau jika itu terlalu banyak memori untuk ditangani oleh mikrokontroler.
arduino
microcontroller
memory
Johndeo
sumber
sumber
Jawaban:
Saya akan mengatakan tidak: ketidakcocokan paling mendasar adalah bahwa ada terlalu banyak pin pada modul-modul itu bahkan dapat menghubungkannya secara fisik ke Arduino. Ditto untuk mikrokontroler kecil yang serupa. ARM Cortex M3 semakin dekat, tetapi beberapa dari mereka sebenarnya memiliki bus eksternal yang diperlukan untuk antarmuka RAM sedemikian rupa (saya pikir).
Tapi saya akan bermain lebih jauh. Dengan asumsi Anda bisa menghubungkan chip ke Arduino, entah bagaimana masalah kompatibilitas listrik dasar lainnya adalah voltase yang diperlukan. Saya pikir modul-modul RAM ini menggunakan sesuatu yang aneh seperti 2.2V - tidak ada di papan vanilla Arduino atau benar-benar, mikrokontroler penghobi dasar lainnya.
Dengan asumsi bahwa diurus maka chip akan cukup banyak bekerja seperti memori eksternal lainnya ke Arduino. Ini benar-benar dilakukan setiap saat - orang menambahkan EEPROM eksternal untuk menyimpan konstanta penting atau kartu SD / MMC untuk penyimpanan log server web dan semacamnya. Tentu saja, dalam konteks ini modul-modul RAM tidak memberikan manfaat nyata bagi Arduino. Fitur utamanya adalah kecepatan dan Arduino (dan ya, mikrokontroler hobi lain) biasanya tidak merusak 25MHz dalam kecepatan clock. Mereka terlalu lambat untuk peduli dengan kecepatan. Dan ukuran penyimpanan bukanlah masalah besar karena berinteraksi dengan kartu SD / MMC jelas lebih mudah dan memberikan banyak ruang untuk bermain.
Jadi, bahkan jika itu mungkin, itu tidak akan benar-benar disarankan.
sumber
Saya akan mengatakan tidak, bukan tanpa menempelkan fpga (pin count) berukuran bagus di antaranya, fpga berbicara ke memori dan pembicaraan mikrokontroler ke fpga menggunakan skema paging.
sumber
Anda dapat menggunakan sistem kait untuk memungkinkan sesuatu seperti arduino menghasilkan 32 bit alamat, dan Anda mungkin bisa merancang beberapa skema untuk menghasilkan siklus penyegaran, tetapi hampir tidak ada gunanya melakukannya, kecuali sebagai teknis olahraga.
Sirkuit antarmuka mungkin merupakan bagian paling kompleks dari sistem yang dihasilkan, dan akan ada sedikit nilai praktis dalam hasilnya; Arduino tidak akan dapat mengeksekusi kode keluar dari RAM, penyimpanan akan berubah-ubah, dan mungkin akan mengkonsumsi lebih banyak daya daripada Arduino juga. Jika Anda ingin menyimpan data, EEPROM SPI mungkin merupakan solusi yang jauh lebih baik.
sumber
Jika Anda pernah melihat lembar data chip DRAM, ada kecepatan clock minimum sekitar 50MHz + untuk DDR2. Jadi tidak, Anda tidak akan dapat berinteraksi dengan mereka dengan mikrokontroler (kecuali ia memiliki dukungan perangkat keras bawaan).
sumber
Jawaban singkatnya adalah tidak.
Arduino tidak dapat menggerakkan antarmuka memori DDR atau DDR2. Anda bisa membuat pengontrol DDR / DDR2 dengan antarmuka SPI dengan FPGA, tapi itu adalah usaha yang signifikan.
sumber
Anda memerlukan driver tegangan rendah (SSTL), dan beberapa cara untuk mengontrol sekitar 100 saluran (masing-masing diferensial, jadi sekitar 200 pin. Pikirkan BGA.)
Sebagian besar DRAM harus di-refresh setidaknya 1kHz dan mungkin lebih memiliki tingkat kesalahan bit yang rendah. Ini kemudian akan membentuk tugas latar belakang utama dan menggunakan sebagian besar kekuatan prcoessing dari Arduino, jika itu bahkan mungkin untuk menyegarkan memori pada tingkat seperti itu.
Apa yang dapat Anda lihat adalah dengan beberapa mikrokontroler, misalnya PIC24F / H / dsPIC33F, mereka mendukung antarmuka master bus paralel, yang memungkinkan beberapa jenis SRAM paralel dapat diakses. Bahkan ada dukungan dengan C, karena memori eksternal ini dapat dipetakan ke beberapa variabel kode dan bahkan blok yang menggabungkan memori internal dan eksternal. Memori eksternal mengharuskan Anda untuk menulis beberapa kode PMB. Anda hanya dapat mengatasi hingga sekitar 1 MB dengan ini.
sumber
Tidak, tidak tanpa antarmuka paging dari beberapa jenis antara memori dan MCU. Beberapa MCU AVR sebenarnya memiliki antarmuka memori eksternal bawaan - Atmega2560, misalnya (lihat bagian 8 lembar data ATmega640 / 1280/1281/2560/2561). Tetapi ruang alamat diukur dalam Kilobyte, bukan Gigabytes.
sumber