- 9912. 外部EEPROMについて [地方初心者] 2006/03/14 14:29
- はじめまして。
PICの16F877とパソコンと通信して、データをPIC側に記憶したいのです。
渡されるデータは2バイトで、必ず最後の方に追加されるだけです。
(何か専門的な言い方があるのでしょうが、変な表現で申し訳ありません)
たとえば1分ごとに、2バイトのデータを追加していくという使い方です。
最終的に、溜めたデータを読み出してPCと通信するという内容です。
後閑氏の書籍であるPIC16F活用ガイドブックを参考にさせていただいて、
SRAMを使えばいいと考えたのですが、
地方ではSRAMが手に入らず、通販にしてもサンプルであげていただいているようなμPDシリーズが見当たりません。
そこで、シリアルEEPROMを使用すれば良いかも、と思ったのですが
"http://e-words.jp/w/EEPROM.html"
このIT用語辞典サイトには、データは一度消去しなければ書き込めないとなっており
書籍などにはそのような事が書かれていないので、大丈夫ではないかと思いたいのですが
内部EEPROMと外部では性能的な違いがあるかもしれないと不安になっています。
勉強不足で申し訳ありませんが、私の目的とする用途にシリアルEEPROMが使用できるのか、
また、その他に良い方法があるのか教えていただけないでしょうか。
なにとぞ宜しくお願い致します。
地方初心者
- 9913. Re: 外部EEPROMについて [myah] 2006/03/14 15:21
- 以前は、紫外線消去型のEEPROMが一般的でだったので、一括消去後、書き込みと言う表現をしているのだと思います。最近は電気的に消去、再書き込みできるフラッシュROM型のシリアルEEPROMが一般的ですので、RAMのように使えます。しかし、シリアルにする必要からプログラムの変更が面倒です。μPDシリーズでなくてもSRAMなら良く似ているので、通販で入手したほうが楽でしょう。
例えば、こんなところで、
http://akizukidenshi.com/catalog/items2.php?c=ram
- 9914. Re: 外部EEPROMについて [地方初心者] 2006/03/14 16:56
- >以前は、紫外線消去型のEEPROMが一般的でだったので、一括消去後、書き込みと言う表現をしているのだと思います。最近は電気的に消去、再書き込みできるフラッシュROM型のシリアルEEPROMが一般的ですので、RAMのように使えます。しかし、シリアルにする必要からプログラムの変更が面倒です。μPDシリーズでなくてもSRAMなら良く似ているので、通販で入手したほうが楽でしょう。
>例えば、こんなところで、
>http://akizukidenshi.com/catalog/items2.php?c=ram
>
myah様。
早速のご回答ありがとうございました。
じつは、先日SRAM256KSRM2B256SLMX55を購入したのですが、ピンは小さいし、データシートは見当たらないし、容量の大きさと、カウンタの関係もよく分からないので、止めたほうがよさそうだと、判断したところでした。
安易な方に逃げたつもりでしたが、EEPROMも一筋縄ではいかない雰囲気ですね・・・。
まずは、品物を取り寄せてみたいと思います。
ありがとうございました。
- 9917. Re: 外部EEPROMについて [txd] 2006/03/14 18:08
- 記録したい時間にもよりますが、「1分ごとに2バイトのデータを追加していく」という使い方ならシリアルEEPROMが良いと思います。(SRAMと違って電源を切っても消えませんし。)
http://akizukidenshi.com/catalog/items2.php?c=rom
このページの3線式(SPI)とかシリアルI2Cとか書いてあるものがそうです。
私的にはAT24C256、AT24C1024、24C512、24C64などのI2Cのものがおすすめです。(というのもI2Cのものしか使ったことが無いからですが…)
普通のSRAMだとPICのポートもアドレスやデータ用にかなりの数が必要になるのに対して、I2CのEEPROMならたった2本のポートで制御できます。(SPIなら3〜4本)
それにPIC16F877にはI2CやSPI用のモジュール(MSSP: Master Synchronous Serial Port module)が入っているので、データシートや参考サイトなどをじっくり見て理解すれば使うのはそれほど難しくはないはずです。
ちなみに1分で2byteのデータとしてAT24C1024を使った場合、
1Mbit/8=128kbyte(131,072byte)なので65536分=約1092時間=約46日間
は記録できることになるので用途によっては結構充分だったりします。
- 9929. Re: 外部EEPROMについて [しおん] 2006/03/15 14:37
- >じつは、先日SRAM256KSRM2B256SLMX55を購入したのですが、ピンは小さいし、データシートは見当たらないし、容量の大きさと、カウンタの関係もよく分からないので、止めたほうがよさそうだと、判断したところでした。
他の方もアドバイスされているとおり、地方初心者さんの目的では、シリアルEEPROMを使うのが良いと思います。
ただ、SRAMを扱うより難しいと思うのですが・・・。
もっとも、コンパイラによってはI2CのEEPROMを扱う関数が用意されているものもありますので、それを使えば悩まずできると思います。
それが無いと、ここのHPをよく読んでI2C EEPROMを勉強する必要があります。(SRAMより難しいですよ)
なお、秋月で売っているSRAMは一般的なSRAM(62256など)と速度などを除くと同じものですよ。
また、容量がわからないということですが、名前に出ていますよ。(256Kビット=32Kバイト)
- 9930. Re: 外部EEPROMについて [地方初心者] 2006/03/15 15:16
- txd様、しおん様。
アドバイスありがとうございました。
なんだかEEPROMですべてうまく行くような気になってきました。
(まだパーツが届いていませんが・・・)
コンパイラはCCSなので、関数が存在するようです。
またわからない事があったら、質問をさせて下さい。
皆様本当にありがとうございました。
- 9931. Re: 外部EEPROMについて [しおん] 2006/03/15 15:58
- >コンパイラはCCSなので、関数が存在するようです。
なるほど。それであれば、ここのHPに詳しい解説も、具体的なサンプルもあるので、うまくいきそうですね。
わからないことが出ましたら、また質問してください。