LoginSignup
33
28

More than 5 years have passed since last update.

Arduino UNOで SPI接続のSRAM(23LC1024)を使ってみる

Last updated at Posted at 2014-02-22

Arduino UNOで SPI接続のSRAM(23LC1024)を使ってみる

なぜSRAM?

足りないからです!w

ArduinoのIC、ATmega328Pは 2Kbyteしか SRAMが搭載されていません!

いろいろな変数も使うことを考慮すると、大きなバッファーが使いたいときでも、せいぜい1Kbyteくらいの配列しか使えません。

これはラム。。。じゃなくてマトン

※注意!:これはSRAMではありません!!!Lambですらなくたぶんマトンです。しかし可愛い。。。。

これじゃ足りない!増設したい!

こいつらもラム。。。じゃなくてマトン

※注意!:こいつらもSRAMではありません。

こんくらいに!!!

23LC1024を選ぶまで

誠に残念ながら羊画像は終わりです。先に進みます。

というわけで、RAMを外付けする方法ないかな?と思って、探してみました。
工作ヘタなのでDIP(スルーホール)実装前提です。SMDは(ハンダ漬け技術的に)ムリなので見向きもしません!

1. スイッチサイエンス シリアルSRAMモジュール 23K256

これは、23K256という256Kbit(=32Kbyte)のSRAMモジュールです。
735円で、穴にケーブルかピン実装するだけで使えます。

使い方も、なんでも作っちゃう、かも。 Arduinoで遊ぼう - シリアルSRAMを使ってメモリを拡張するで紹介されている方法が使えそうです。

一番簡単そう。

2. 23K256を単体で

1コ使うだけなら、上記スイッチサイエンスのモジュールでいいけど、部品代で735円は高いなぁ、というわけで、上記モジュールで使ってる23K256はどう?
ということで、探してみました。
手に入れやすいのは、下記かな?

23K256-I/P 5個

5個で746円(税込み)
3Vで使えば、これで良さそうですね。

3. 23LC1024

でも、5Vでも使いたいよね。と、23K256のメーカーのページを見てたら、5Vでも動くSRAMを発見。23LC1024。容量さらに多い128Kbyte。これなら結構使えそう。

23LC1024 2個
値段は倍。容量は4倍。5Vでも使える。
2個で593円。

23K256を5Vで使うには電圧変換用の部品も要るし、こっちの方が結果として安く上がる気が。
というわけで、23LC1024を買って使ってみることにしました。(基本はセコいからですw)

SRAMを繋ぐ

さて、23LC1024が届いたので、早速Arduinoと繋いでみたいんだけど繋ぎ方がわからない。
23LC1024の繋ぎ方をいろいろググっても、なかなか出てこないw

23K256の場合は、前述のなんでも作っちゃう、かも。さんで紹介されている。
仕方ないので、23K256と23LC1024とデータシートを見比べてみる。

23K256 データシート P.1

23LC1024 データシート P.13

2cLC1024の方はSPIだけでなく、SDIやSQIという繋ぎ方にも対応している模様。

Arduino側がSDIやSQIで使えるのか解らないので、SPIでいい。
そうなると、素人目には23K256と一緒に見える。(23K256のP.1と23LC1024のP.13)

23K256と23LC1024ピンの比較

※左が23K256、右が23LC1024

というわけで、先に紹介したなんでも作っちゃう、かも。さんの配線を参考に、外付けボードを作り、これで実験してみる作戦に。

23LC1024用外付けボード

回路図はこちらw
回路図

しかし、D10のピン邪魔だなぁ。。なぜコイツだけ
ICSP側に端子出てないの?これで合ってるのか?

SPI library

上記サイトを見ると、

Note about Slave Select (SS) pin on AVR based boards

All AVR based boards have an SS pin that is useful when they act as a slave controlled by an external master.

とか書いてある。

Arduinoマスターにするんなら繋がなくていいのでは?

など疑問を持ちつつも、こうしたことは、いろいろ触ってみるうちに明らかになると信じて、とりあえず作っちまったことだし、繋がなくてよいなら外せばいいだけだし、ということで実験開始することにしました。

実験開始

23LC1024 SRAM Library を使ってみる

ボードが出来たので、早速Arduinoのスケッチを書いて動かしてみようと思います。
グーグル先生に聞いたら、ライブラリを紹介して頂きましたので、ありがたく使わせていただきたいと思います。

23LC1024 SRAM Library

ライブラリをインストールすると、 SpiRAM_Test.ino というサンプルが付いてきます。
早速使ってみましょう。
そのまま何も考えず、Arduinoに書き込んで実行!

....あれ?動かない。

ソースを確認してみると、

spiRAM_Test.ino

どうやら、ピンが違ってたようですね。

SSをD9に刺し直して、Arduino再起動!(USB抜き刺し)

実行結果

あっさり、サンプルが動きました。
RAMの読み書き、とりあえず出来ているようです。

まとめ

というわけで、本当の実験はこれからなのですが、とりあえずSRAM使いたいけど、どうしようか?
と悩んでる3日前の私のような人の助けになるかもしれないので、メモしときました。
私もこれから使い始めるところなので、何かあったら更新します。

他にももっと便利なライブラリあるよ〜!とか、紹介して頂けたらうれしいです。

最後に、可愛い羊画像リンクを貼っておきます。

可愛い羊画像

33
28
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
28