BS21 Lab の製品 - シリアル EEPROM 闇鍋シールド(基板のみ)(製品番号:BS21LAB-017)
19/jan/2014 新規
23/jan/2014 更新
SPI 方式のシリアル EEPROM (8ピン DIPタイプ) が最大6個、プラス、
I2C (TWI)方式のシリアル EEPROM (8ピン DIPタイプ) が最大5個の、計11個まで搭載できるシールドです。
本製品は「基板のみ」です。シリアル EEPROM 等は、お客様で御用意ください。
材料箱の片隅に転がっている小容量のシリアルEEPROM を、まとめて料理するのに最適でしょう。
- 概要
- ギャラリー
- ご購入方法
- 注意事項
- 免責事項
- 添付品の一覧
- 仕様
- 使用方法
- SPI 系
- I2C (TWI) 系
- ソフトウエア
・概要
本製品は「基板のみ」の提供です。これ単独では何も出来ませんので御注意下さい。
また、搭載できないタイプのシリアル EEPROM もありますので、データシートを良く確認して下さい。
どんな具材(シリアルEEPROM)が入っているかは食してみるまで分からないので、「闇鍋」と命名しました。
・ギャラリー
使用例:クリックすると拡大します。基板以外は付属していません。※ 実際は、必要な部品だけ実装すれば良いので、ここまでフル実装する必要は有りません。
実際の製品は、この基板のみです。回路図を見なくても、シルクを見ただけで何となく分かってしまうのではないでしょうか。部品番号 20番台が I2C (TWI) 系、30番台が SPI 系です。
各種変換基板を使用すれば、もしかしたら DIP タイプ以外も搭載可能かもしれません。
・ご購入方法
本製品は、以下のサイトで取り扱って頂いております。
(株)スイッチサイエンス様
・注意事項
本基板では使用不可能なシリアル EEPROM がありますので、使用前に各種データシートを良く確認して下さい。
もし間違えた場合、どの様な事象が発生するかわかりません。
・免責事項
本製品は人命等に関わる装置への利用につきまして、考慮されておりません。
また、本製品を使用した事によって発生しました如何なる事象につきまして、弊社は責任を負いかねますので御了承下さい。
・添付品の一覧
以下がそろっている事を御確認ください。
万一、不足している場合は、infoあっとまーくbs21−lab.com (スパム対策で全角文字にしてます) まで、御連絡下さい。
| 名称 | 型番 | メーカー | 個数 | コメント |
(1) | シリアル EEPROM 闇鍋 シールド基板 | BS21LAB-B017 | 弊社製 | 1枚 | |
(2) | 取扱説明書 | BS21LAB-017(P1) | 弊社製 | 1枚 |
上記以外の部品は添付されていませんので、お客様にて御用意して頂く必要が有ります。具体的には、以下の部品です。
名称 | 型番 | 個数 |
シリアルEEPROM | 任意 | 任意 |
パスコン | 0.1μF 程度 | シリアルEEPROM 個数分 |
ICソケット | DIP 8ピン | シリアルEEPROM 個数分 |
SPI 用 pullup 抵抗 1/6W | 10k〜100kΩ程度 | シリアルEEPROM 個数分 |
TWI 用 pullup 抵抗 1/6W | 1k〜10kΩ程度 | SDA/SCL 用は2ヶ |
ピンヘッダー | | 適量 |
ショートピン | | 適量 |
足長ピンソケットセット | | 1set |
上記写真の様に、全ての部品が必要という訳では有りません。装着したいシリアル EEPROM の個数に合わせて、適宜、調整してください。
本基板に ICソケットを半田付けしてから、シリアルEEPROM を装着する方法が望ましいですが、絶対ではありません。
別に固定でも構わん!という場合は、ダイレクトに本基板に半田付けしてしまっても全然OKです。
パスコンは安定動作の為にも付けるべきです。(ただ、シリアルEEPROM を複数装着している場合、一度に2つ以上をアクセスする事態は無いはずなので、
適当にパスコンを間引いてしまっても大丈夫かも。)
足長ピンソケットセットは、弊社製(別売り)をお奨めいたします。
・仕様
寸法 | 幅約68.6mm×長さ約53.3mm×厚み約1.2mm | 有鉛はんだを使用 |
穴位置 | φ3.2mm×4 | Arduino UNO R3 と穴位置コンパチ |
駆動電圧 | 搭載するシリアル EEPROM の仕様に依存 | |
<ご注意!!>
Vcc は、シリアル EEPROM の仕様に依存します。
例えば、あるシリアル EEPROM が Vcc = 1.8〜3.6V 仕様で、別のシリアル EEPROM が Vcc = 4.5〜5.5V 仕様の場合は、混在は不可能ですので注意して下さい。
また、電圧レベルシフト機能も無いので、Arduino 側の Vcc と合わせておく必要が有ります。Arduino 側が 5V 仕様ならば、シリアル EEPROM 側も 5V に対応している必要が有ります。
回路図:
本基板が想定しているシリアル EEPROM は、以下のものです。これ以外でも、使えるのが有るかもしれません。
- microchip 製 24 シリーズ(I2C (TWI) 方式)
- Atmel 製 AT24 シリーズ(I2C (TWI) 方式)
- microchip 製 25 シリーズ(SPI 方式)
以下のシリアル EEPROM はピンアサインが違うので、本基板では使用できません。
- Atmel 製 AT93 シリーズ(Microwire 方式)
これ以外にも、駄目なのが有るかもしれません。必ず、データシートを御確認ください。
・動作確認した環境:
以下の環境でのみ動作確認しました。これ以外の環境で、きちんと動作するかは不明です。
- Arduino Uno R3
- Arduino IDE 1.0.5
- microchip 製 24LC64 (TWI方式, 8kB)
- microchip 製 25AA512 (SPI方式, 64kB)
・使用方法
★☆★☆★☆★☆★☆★☆
☆★☆ Vcc の選択 ★☆★
★☆★☆★☆★☆★☆★☆
基板上に "Vcc sel" とシルク印刷されている箇所があります。
御使用の Arduino の Vio 電圧に合わせて、ここのジャンパーピンを、以下の3つのいずれかに設定する必要があります。
御注意!! ここの設定を間違えた場合、ホスト側の SPI/TWI 通信機能を破壊する恐れがあります。十分に注意して下さい。
| Vcc 電圧 | ジャンパーピンの位置 | コメント | 例 |
@ | +5V 決め打ち | 5V−Vcc | SPI/TWI 通信を 5V で行う必要があるタイプ | Arduino Duemilanove, Arduino Uno(初代,R2,R3), AE-ATmega 等 |
A | +3.3V 決め打ち | 3V3−Vcc | SPI/TWI 通信を 3.3V で行う必要があるタイプ | Arduino Pro(3.3V仕様), Arduino Due |
B | IOREF に依存 | IOR−Vcc | IOREF ピンの電圧値(3.3V or 5V のどちらか)を参照すれば良いタイプ ※通常はこの設定を選んでおくのが無難です | Arduino Uno R3, Leonardo や Due 等の IOREF ピンが存在するタイプ |
※ 当然ですが、個々のシリアル EEPROM 自体も、この Vcc 電圧に対応している必要が有ります。
※ もし Vcc を切り替える必要が無いのでしたら、わざわざピンヘッダーを立てる必要は有りません。直結しちゃっても構いません。
・SPI 系
基板の以下の部分が SPI 系になります。
SPI 系は、以下の6個が搭載可能です。
名称 | CS ピン | コメント |
U32 | デジタル2 もしくは 3 | |
U34 | デジタル4 固定 | これのみ 500mil 幅にも対応 |
U35 | デジタル5 もしくは 6 | |
U37 | デジタル7 固定 | |
U38 | デジタル8 もしくは 9 | |
U3A | デジタル10 固定 | |
使用する CS ピンは、固定、もしくは2択、のどちらかです。
使用したい CS ピンを変更したい場合は、シリアルEEPROM そのものを移動させて下さい。
Arduino 側の内蔵 pullup 抵抗を ON にしておけば、各 CS ピン用の pullup 抵抗(回路図の R32〜R3A)は無くても、問題なくEEPROM は動作すると思われますが、
電源投入直後から Arduino のスケッチが動作して内蔵 pullup が有効になるまでの CS ピン不安定期間が気持ち悪いと感じられる方は、
R32〜R3A の pullup 抵抗(10k〜100kΩ程度)を入れておくと、安心でしょう。
WP ピンが開放状態でも大丈夫なシリアル EEPROM と、必ず Vcc か GND に接続しなければならないシリアル EEPROM の2種類があるようです。
使用前に必ず、そのシリアル EEPROM のデータシートを確認して下さい。
SPI 通信用ピンは、従来のデジタル 11/12/13 ピンを使用する方法と、ICSP ピンを使用する方法の、どちらか片方を選べれます。
(Arduino Leonardo 等は、必ず ICSP ピンでなければなりません)
この時、3つのジャンパーピンは同時に切り替えてください。
もしくは
の片方のみ(同時は不可)
※ EEPROM とは別に、microchip 製 SPI SRAM の 23 シリーズも実装できるかもしれません。
・I2C (TWI) 系
基板の以下の部分が I2C (TWI) 系になります。
I2C 系は、以下の5個が搭載可能です。
名称 | I2C アドレス | |
U2X | xxxx000 もしくは xxxx011 | これのみアドレス選択可能 |
U21 | xxxx001 固定 | |
U22 | xxxx010 固定 | |
U24 | xxxx100 固定 | |
U27 | xxxx111 固定 | |
I2C アドレスは、下位3ビットが(回路パターン的に)固定されています。上位4ビットの設定は、シリアルEEPROM 側に依存します
(ほとんどの場合 1010 になっているはずですが、違うのも有るかもしれません)。
また、シリアルEEPROMによっては、A2, A1, A0 のいずれかが N.C. になっている場合が有りますので、注意してください。
使用したい I2C アドレスを変更したい場合は、シリアルEEPROM そのものを移動させて下さい。
WP ピンが開放状態でも大丈夫なシリアル EEPROM と、必ず Vcc か GND に接続しなければならないシリアル EEPROM の2種類があるようです。
使用前に必ず、そのシリアル EEPROM のデータシートを確認して下さい。
I2C 通信用ピンは、従来のアナログ A4/A5 ピンを使用する方法と、Arduino UNO R3 以降に追加された SDA/SCL ピンを使用する方法の、どちらか片方を選べれます。
(Arduino Leonardo 等は、必ず R3 追加ピンでなければなりません)
この時、2つのジャンパーピンは同時に切り替えてください。
もしくは
の片方のみ(同時は不可)
また、I2C バス(SDA/SCL)のどこかに pullup 抵抗が1組必要です。必要な場合は、本シールドの R1/R2 部に 1k〜10kΩ程度の抵抗を入れてください。
他のシールドで既に pullup 抵抗が付いている場合は、2組も必要ないので、わざわざ、本シールドの R1/R2 部に抵抗を付ける必要はありません。
SS1 と描かれた部分にピンヘッダーを立て、ジャンパーピンにて、pullup 抵抗を有効/無効する事が可能です。
以下の写真の様に、ピンヘッダーの代わりに、NKK 製の SS-22SDH2 もしくは SS-22SDP2 を装着すれば、切り替えが楽になります。
※ microchip 社の 24xx1025 ですが、本シールドでは A2ピンを ON/OFF のどちらかに固定にしかできない為、恐らく半分の容量しか使えない(128kBの内の64kBのみ)と思います(所有していない為、断言できません)。
一方、24xx1026 ならば、128kB 全域が使えると思います(こちらも所有していない為、断言できません)。
※ ピンアサインさえ合えば、もしかすると、EEPROM 以外の TWI デバイスも実装できるかもしれません。
・ソフトウエア
ソフトウエアは特に用意していません SPI通信仕様の 25AA512 のみ Arduino 用ライブラリを用意しました。
ただし、シリアルEEPROM ごとに制御方法が変わるので、汎用的なものでは有りませんので注意して下さい。
以下の圧縮ファイルをダウンロードし、arduino フォルダの中の libraries フォルダの中に解凍するだけで OK です。
BS21Lab-ArduinoLib-SPIEEPROM64K-v1.00.zip 2014年1月21日版
※ Arduino IDE 1.0.5 で動作確認しています。
アンインストールも、SPIEEPROM64K フォルダーごと削除するだけで OK です。
※ arms22 氏作成の「SPISRAMライブラリ」をベースに作成しました。
詳細は「なんでも作っちゃう、かも。 」の Arduinoで遊ぼう - シリアルSRAMを使ってメモリを拡張する を参照してください。
なお、SRAM と違い、EEPROM の場合は、Write 関数実行中はデータ受信のみで、受信完了後に実際の書き込み処理が行われますので、一定時間待つ必要が有ります。
また、EEPROM 特有のページ境界が存在しますので、そちらの注意も必要になります。
25AA512 以外は、データシートを見て、個別に対応願います。(まさに闇鍋)
…と、これだけですと、あんまりですので、関連ページへのリンクを幾つかリストアップしておきます(全部で動作確認した訳では有りません)。
なお、これらのページは、弊社とは無関係ですので、くれぐれも『「シリアル EEPROM 闇鍋シールド」でどうやって動かすの?』という質問で、各ページの管理者さんを困らせる様な事態は、ご遠慮ください。
(多分、「シリアル EEPROM 闇鍋シールド」って何だ?という返事しか返ってこないと思います)
SPI 用:
TWI 用:
なお、"Arduino EEPROM" だけでググると、Arduino 本体の ATmega328P や ATmega32U4 内蔵の EEPROM の読み書き方法が、多数出てきますので、そちらと混同しない様にして下さい。
製品リストに戻る
Copyright (C) 2014 BS21 Lab, All rights reserved.