• ベストアンサー

EEPROMとはどういうものですか。

文献を読んでいましたら、EEPROMの言葉が出てきました。いわゆるRAMとはなにか違うのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • k-family
  • ベストアンサー率34% (180/523)
回答No.3

RAMは「Random Access Memmory」で任意のアドレスのデータを読み書きできます。ランダムではないのがシーケンシャルです。たとえば磁気テープは先頭から順に読まないとアクセスできません。 ROMは「Read Only Memory」で読み出し専用メモリです。 上記の言葉の定義からわかるように、RAMとROMは反意語ではありません。ですが、慣習的にROMはランダムアクセス可能なリードオンリーメモリとして使われており、普通はROM←→RAMとして使われています。 リードオンリーと言ってもどこかで書き込まなくてはならないのですが、 ・工場で製造時に書き込まれる(と言うか作り込まれる)のがMaskROMです。 ・フィールド(市場)、つまりお客さんの手で書き込まれるのがPROM(Programable ROM)です。 PROMも2種類有り一旦書いたら消せないものと、消せるものがあります。 消去方法も色々あります。紫外線を当てて消すものや電気的に消すものがあります。 電気的に消せるのがEEPROM(Electrical Erasable PROM)です。 ですからEEPROMにも色々な種類があります。また言葉通りの定義だけでなく、歴史的な(慣習的な)呼び方もあります。(上記のROMとRAMのような関係) と言うことで簡単には説明できませんが、質問の回答としては「電気的に消去可能でフィールドで再書き込み可能なリードオンリーメモリがEEPROMであり、RAMは読み書き可能なメモリ」となります。

nakaita
質問者

お礼

EEPROMの元の言葉を示して頂き、言葉の上からも、理解ができました。 懇切に教えていただき、誠にありがとうございました。

その他の回答 (4)

  • tekkamen
  • ベストアンサー率8% (24/280)
回答No.5

ここに詳しく書かれています。

参考URL:
http://www.picfun.com/memory05.html
nakaita
質問者

お礼

参考サイトを見ました。かなり専門的な記述でよくわかりませんが、参考になりました。 ありがとうございました。

  • kabasan
  • ベストアンサー率44% (264/588)
回答No.4

専門的、技術的説明は既出の回答で良いとして、 「だから、どう使い分けるんじゃい!」と言われそうなので補足です。 <RAM> 高速に読み書きできます。 大容量のものが安価です。 でも電源切ったら消えます。 つまり作業用の一時的なメモリです。 <EEPROM> 書き込み手順が複雑です。簡単に書き換えできないようにしてます。 書き込みに凄く時間がかかります。(人間にすれば一瞬ですが) あまり容量ありません。大容量は非常に高価です。 つまり、設定データや小規模の基本プログラムなどたまに変更する可能性があって、でも基本的には読み込み専用で、消えてしまうと困る用途に使用します。 <一般的ROM> 書き換えが非常に面倒か、書き換え不可能です。 とても安くて、使い捨て向きです。

nakaita
質問者

お礼

各種のメモリの特徴を示していただき、理解できました。 誠にありがとうございました、

  • arumagiro
  • ベストアンサー率27% (408/1468)
回答No.2

RAMは揮発性のメモリーですが、ROM不揮発性のメモリーになりますが、書き換えを可能としたものが、EPROMと呼ばれる物です。 ROMにはプログラムなどを保存するのですが、後でプログラムを変更したいばあい、ROMを交換するのは非効率なので、なんらかの方法で書き換えられる様にしたものです。 紫外線をあててデーターを消去する物もありますが、ご質問のものは電気的にデーターの消去が出来るようにしたものですが、いかがでしょうか。 ちなみに、フラッシュROMもEEPROMの一種かと思いますが。

nakaita
質問者

お礼

よく分かりました。勉強になりました。 ありがとうございました。

  • furuichi9
  • ベストアンサー率26% (80/303)
回答No.1

簡単に言ってしまうと。 RAMのような感じで、書き換え可能なROMです。 本来ROMは、読み出し専用なので、書き換えは出来ませんが、 電源オフ状態でも内容を保持しています。 EEPROMやEAROMは電気的にデータの削除や書き換えが可能です。 停電状態でもデータを保持できます。

nakaita
質問者

お礼

簡潔な説明ながら、理解できました。 知的欲求を満たしていただき、ありがとうございました。

関連するQ&A

  • EEPROM 参考書

     EEPROM のプロセスに関する参考書(文献)を探しているのですが、なかなか良いものが見つかりません。いい参考書を知っている方が居られましたら教えて頂けないでしょうか? 宜しくお願いいたします。

  • EEPROMについて

    PIC16F877とEEPROM(24LC256)を使って、LCDモジュール(SG12864A)に、文字、絵を表示したいのですが、EEPROMの使い方が全くわかりません。 EEPROMにデータを入れるにはどうすればよいのでしょうか?分かる方、教えてください!

  • eepromについて

    仕事で最近、組み込み用のプログラムをすることになったんですが、よく「イースケ」という言葉を耳にします。(「イースケに保存する」など。)話の内容からeepromのことかなと思っているのですが、なかなか周りの人に聞きにくくなってしまったので、どなたか教えてください。

  • EEPROMについて

    先日、秋月通商でLCDモジュール(SG12864A)を購入し、EEPROMを使って漢字やひらがななど文字を表示し、それを動かすこともしたいのですが、やり方がわかりません。どなたか教えてください! ちなみに、PICは16F877、EEPROMは、マイクロチップ社の24LC256を使いたいと思ってます。

  • PIC EEPROM

    16F84AでLEDのデータをEEPROMに書き込みしたいのですが、正常に書き込み出来ればEEPROMのウィンドウにもデータが出てきますよね?

  • EEPROMについて

    シリアルのEEPROMで容量が一番大きいもので、どれくらいまでありますか?また、シリアルのFLASHROMで一番大きいものはどれくらいですか? よろしくお願いします。できれば、型番とか購入先など教えてください。 答えてgoo!!

  • EEPROMからRAMへ移動したがウォッチできない

    現在、Atmel Studio6.2でatmega88pマイコンのプログラミングを行っています。リアルタイムデバッグではJTAGICE3を使用しています。プログラムのVersion値とeepromに保存しているVersion値を比較して、違いがあった場合は、プログラムの更新があったことを記録するため、最新のVersion値をEEPROMに書き込むプログラムを作成したのですが、EEPROMからRAM領域へ取り出したデータをリアルタイムデバッグでウォッチできない現象が起こり困っています。 なお、このプロジェクトフォルダは https://sourceforge.jp/projects/cc1101driver/scm/svn/tree/2564/branches/test002_AVRS6_20140819/test02/ こちらで公開させてもらっています。 (EEPROM領域側) #define EEPROM __attribute__((section(".eeprom"))) save_eeprom_data_t EEPROM save_eeprom_data; (RAM領域側) new_ctl_data tnew_ctl_data; main関数スタート後 check_env()関数内でEEPROM領域からRAM領域へデータを my_eeprom_read_block((u8 *)&tnew_ctl_data,(u8 *)&save_eeprom_data.gnew_ctl_data,sizeof(ctl_data)); この関数で読み出しているのですが、再度main関数内で if(tnew_ctl_data.fix_osccal_flag != 0x01 || tnew_ctl_data.prog_ver != PRG_VERSION) { ------(中略)--------------------------------- } このコードに来たときにtnew_ctl_dataをウォッチしても new_ctl_data.fix_osccal_flag tnew_ctl_data.prog_ver どちらの値も0x00と表示されてしまいます。 また、 tnew_ctl_data.prog_ver の値は0xdcのはずなのですが、0x00となっており、 PRG_VERSIONは #define PRG_VERSION 0xDD 0x00 と0xDDでは違いが出ているのですが、そのときの条件でEEPROM内容を tnew_ctl_data.fix_osccal_flag = 0x01; tnew_ctl_data.prog_ver = PRG_VERSION; eeprom_busy_wait(); eeprom_write_block(&tnew_ctl_data.fix_osccal_val,&save_eeprom_data.gnew_ctl_data.fix_osccal_val,3); このコードで0xddにtnew_ctl_data.prog_verの領域バイトを書き換えるはずなのですが、0xdcのままになってしまいます。 このような場合、どのように修正したら良いのかをご教示頂きますよう、お願い致します。

  • PIC EEPROM

    PICでLEDのデータをEEPROMに書き込んで電源を切ってもデータを保存させ、再度電源オンの時は電源を切る前のデータで点滅させたいのですが、EEPROMって書き込みと読み出しってありますよね?  この場合は、LEDデータの書き込みのみで大丈夫でしょうか?

  • EEPROMのデータが壊れる。

    EEPROMのデータが壊れるというのは、どういった時に壊れるのでしょうか。書き込み中に電源を切ると壊れるということは聞いたことはありますが、ほかの場合もあるのでしょうか?

  • PIC EEPROM

    CCSでEEPROMへの書き込み読み出しかたがわかりませんどなたか詳しく例題などを付けて教えて下さい。お願いします。またPICの種類によって文法が変わるのでしょうか?16F627Aでやりたいのですが。

専門家に質問してみよう