外部記憶装置 EEPROM



外部記憶装置 EEPROM(ROM カセット)

IchigoJam BASIC では IchigoJam BASIC 0.9.9 RC 以前は 0〜2 の3つ、

IchigoJam BASIC 1.0.0 beta より 0〜3 の4つプログラムを保存できるようになっていますが、

より多くのプログラムを保存できる EEPROM に対応しています。0.9.3 以降で対応しています。

ファミコンのカセットや MSX の ROM カセットみたいな物が自作できてしまいます。

最近は空の EEPROM 以外に IchigoJam BASIC のプログラムを含んだ EEPROM を販売するケースも増えてきました。

電子工作の経験がない人でも EEPROM モジュールを用いて容易に EEPROM を使用する事が可能です。

 

公式には 1MB に対応し、SAVE・LOAD・LRUN のプログラム番号は 100〜227 の 128 となります。

(IchigoJam BASIC 0.9.9-RC10 より。それ以前は 100〜226。ただし 100 と 164 が共通しています)

 

外部記憶装置とROMカセットに対応!こどもパソコンIchigoJam | 福野泰介の一日一創

 

EEPROM モジュール等を用いるケースが増えてきています。

SAVE・LOAD・LRUN・FILES は 100 以降を使用できます。


 

IchigoLatte も IchigoLatte 0.9 より EEPROM が使用できるようになっています。

1MB の場合で @0〜@63 です。
IchigoLatte のプログラムは 2KB(IchigoJam BASIC の倍)なので、収納数は半分になっています。

特に区別して記載していなければ、IchigoLatte でも使用可能です。


EEPROM モジュール

EEPROM モジュールは EEPROM を付けた、または EEPROM を容易に付けられる状態にした専用基板です。

GND・VCC・SCL(EX1)・SDA(IN3) の4端子を接続するだけで使用でき、抵抗を用意する必要もないので、
電子工作に慣れていない人にも利用しやすいメリットがあります。

 

種類が豊富でよく分からない場合は

運営者 ふうせん Fu-sen. が IchigoJam の動作確認を行っている EEPROM モジュールを

ショップのふうせんで扱っていますので、こちらを入手して下さい。

サンプルプログラム・解説書付で、安心してご利用いただけます。

IchigoJam・互換機の種類に関係なくご利用いただけます。

 

IchigoJam | ショップのふうせん

 

EEPROM が交換可能。32K〜1024K の EEPROM が使えます。

ツマミ付で便利になりました。

あえてこのモジュールを複数個入手して、
ジャンパワイヤでモジュールを交換する前提で使っている人もいます。


aitendo 発売 EEPROM キット

aitendo が IchigoJam 向けの EEPROM キット を数点発売しています。別途 EEPROM が必要です。

そのうち下の EEPROM キットは 1024k 限定です。他の EEPROM は正常に動作しません。(A2 が VCC に接続されているため)
 

EEPROMキット [K-Jam.rom] | aitendo

 

また、下の EEPROM キットは 512k 以下限定の可能性があります。(A2 が GND 接続されていると思われます)

 

EEPROMキット [K-RM4S] | aitendo


他の EEPROM キットは切り替え部があり、1024k・32k〜512k 共に使用できます。

その他

IchigoJam 向けに発売されている商品がいくつかでています。

 

IchigoJam U またはそれに合わせた規格にしている場合が多いです。IchigoJam T も使用可能なケースが多いです。

IchigoJam 初代プリント基板では CPU-ピンソケット間の幅が異なり、使用できない場合がありますのでご注意下さい。

 

後に IchigoJam T の CN5 端子に合わせた商品が発売されると予測されます。

こちらは IchigoJam U の CN5 端子には使用できません。(IchigoJam U の CN5 端子には EEPROM 関連は供給されていません)

 

海外から EEPROM やモジュールを直接入手する場合

EEPROM は場合によってデータが入っている物が販売されている場合がある事を確認しています。

実質的な中古品というだけではなく、多くアクセスが行われていて、特に書き込みの問題が発生する事があります。

 

EEPROM が付いたモジュールを入手する場合は容量にご注意下さい。容量の少ないモジュールは IchigoJam で使用できません。

一部半田付けの悪いモジュールがある事を確認しています。最悪動作させるために半田付けしなおさないといけない場合があります。


IchigoJam EX

クガデン 発売の IchigoJam EX では、基板に EEPROM を取り付ける場所があります。

EEPROM を直接付けて半田付けしても良いのですが、IC ソケットを取り付けるのが良いでしょう。

本体の場合は 24FC1025-I/P または 24LC1025-I/P の使用となります。

 

EEPROM を付けている場合は、IN3 端子を EEPROM が使用しているため、
ソケットの IN3 端子に影響があります。(クガデンの説明書では使用不可と記載してあります)
入力ポート使用を検討している場合は EEPROM を着脱できる状態にするのが良いでしょう。

 

オプションとなっている ROM カセット では A2 の変更が可能で、512M 以下の EEPROM も使用可能になっています。

ROM カセットは 2016年5月より発売が開始されました。端子の構成上 IchigoJam EX 用になります。

 

ROMカセット(組み立てキット) ※ IchigoJam EX 専用 | クガデン 

 

本体は 24FC1025 または 24LC1025 のみ

ROM カセットは 512k 以下の EEPROM も使用できます。


 

EEPROM カセット端子 CN13 は CN13 表記より GND VCC WP SCL SDA の割り当てです。

運営者が下記で紹介している汎用の EEPROM モジュールを挿して動作する事を確認しています。

WP 以外の4ピンを接続します。もちろん CPU 周りのピンソケットに接続しても使用可能です。


独自に作成する・ブレッドボードを使用する

当初は福野さんが基板作成の前提で公開しています。電子工作経験者が独自に作っているケースも少なくなりません。

福野さんのブログ記事を元に運営者が回路図にしてみました。

 

外部記憶装置とROMカセットに対応!こどもパソコンIchigoJam | 福野泰介の一日一創

 

運営者は経験がないので、Facebook グループ IchigoJam-FAN の皆様にご支援いただき、作成しています。

ブレッドボードで行う場合、スイッチ部分は直接配線でも構いません。

GND と VCC に接続する端子が多いため、ブレッドボードを使用する場合は

電源ラインがあるもの(+・ー 部分があるもの)が良いかもしれません。

当初は 24FC1025 用に記載していましたが、
現在は 512K 以下の EEPROM で使っている人も多いので、これもスイッチ記載で反映しています。

AT24C1025B など一部の 1024k は A2=GND 推奨となります。

 

 

EX1 は IchigoJam T 以降 SCL に変更されています。

また CN5 端子に EEPROM 関連の割り当ても含まれ、IN3=SDA となります。

IchigoLate プリント基板も共通です。

 

上記の回路図に VCC-GND 間へコンデンサを付けている場合もあります。

ただし EEPROM で使用する場合コンデンサは必須ではありません。

また抵抗の値は 2.4kΩ が必須というわけではありません。

モジュールなどで異なる値の抵抗を採用している場合でも動作する可能性があります。


対応している EEPROM

公式に動作確認されている EEPROM は 24FC1025-I/P ですが、

他の EEPROM も使用可能である事が多くの利用者により確認されています。

 

ショップのふうせんで運営者が IchigoJam 動作確認済の EEPROM を扱っています。

サンプルプログラムと解説書付で、安心してご利用いただけます。

 

EEPROM (単品) | ショップのふうせん

 

1M(1024K)は 24LC1025 が 24FC1025 同様に使用できますが、

他の 1M モジュールは 512K 分しか使用できない場合があります。

 

512K 以下は A2 を GND にするのがおすすめです。

A2=GND で 100 から、A2=VCC で 164 からとなり、

256K より少ない場合、保存数以降はループ状態になります。

最低容量で使用できる EEPROM は 32K ビットの A2=GND 時 100〜103 です。

(104 以降はループ)

 

EEPROM モジュールなどの場合、1024K および 32K〜512K で対応の有無があります。ご確認の上で入手して下さい。

 

下が動作一覧です。白背景は利用者によって IchigoJam の動作確認が行えている EEPROM、

灰色は IchigoJam での動作はまだ未確認ですが、仕様が同じであるため動作可能と思われる EEPROM です。

形状は DIP8(I/P)および SOP8(I/SO)が確認できています。

 

型番 容量 ビット BASIC 保存 Latte 保存 備考
AT24C32A 32K 4 2  
AT24C32AN 32K 4 2

運営者動作確認済み

AT24C32B 32K 4 2

運営者動作確認済み

AT24C32C 32K 4 2

運営者動作確認済み

AT24C64A 64K 8 4  
AT24C64B 64K 8 4  
24FC64 64K 8 4 運営者動作確認済み
24LC64 64K 8 4  
AT24C128 128K 16 8 運営者動作確認済み
24LC128 128K 16 8 運営者動作確認済み
BR24G128 128K 16 8  
AT24C256 256K 32 16 運営者動作確認済み
AT24C256B 256K 32 16  
24FC256 256K 32 16 運営者動作確認済み
24LC256 256K 32 16 運営者動作確認済み
BR24G256

256K

32 16  
AT24C512

512K

64 32 運営者動作確認済み
AT24C512B

512K

64 32  
AT24C512N 512K 64 32 運営者動作確認済み
24FC512 512K 64 32 運営者動作確認済み 
24LC512 512K 64 32 運営者動作確認済み
AT24C1024B 512K [1M] 64 32 512K と同様に動作 ★
24FC1025 1M 128 (127) 64 公式対応。運営者動作確認済み
24LC1025 1M 128 (127) 64 24FC1025 と同じように使用可能。運営者動作確認済み
BR24G1M 512 [1M] 64 32 24C1024B と同じため、512K 分しか使用できないと思われる ★

 

★ AT24C1024B など一部の 1024k ビット EEPROM は24FC1025・24LC1025 と最上位ビットのアクセス方法が異なります。
  IchigoJam の EEPROM アクセスコマンドはその仕様を対応させていないため、現状では半分の 512k しか使用できません。

  直接 I2C コマンドを送出する I2CW・I2CR コマンドではアクセス可能です。

 

※ 8ビット=1バイト(1文字)、8Kビット=1Kバイト (1プログラム分)

  

16K 以下の EEPROM は 32K 以上とは仕様に違いがあり、実際にプログラム保存では使用できない事を運営者が確認しています。
(24C16AN、24C02/A/N で確認済み)

SAVE は正常に終了するのですが、LOAD・LRUN はプログラムが何も出てこないか File Error になります。
FILES では一覧に表示されません。

ただし、直接 I2C をアクセスする I2CW・I2CR を用いてのデータ保存・読み出しは可能です。

AT24C1024B などの EEPROM も同様に I2CW・I2CR を用いた場合は全領域が使用できます。


注意事項

EEPROM モジュールなどを接続したら IchigoJam が再起動した場合

EEPROM を逆に差し込んでいる可能性があります。電源を切るかすぐに外して、EEPROM を確認して下さい。

独自に作成している場合、配線を誤っている可能性があります。

長時間そのままにすると故障する可能性もありますので、ご注意下さい。

 

コマンド入力後にフリーズする場合

IchigoJam BASIC で SAVE・LOAD・LRUN で 100〜 を指定してフリーズする(反応がなくなる)場合、

IchigoLatte で @● を指定したコマンドでフリーズする(反応がなくなる)場合、

一番多いのは、ジャンパワイヤで接続する端子を誤っているか付けずに行った場合です。

最近のファームウェアではエラーになったり Esc キーで中断が可能です。

基板やブレッドボードで構成した場合は、どこか断線しているか誤っている可能性もあります。

これらが正常な場合はジャンパワイヤの断線も考えられますので、テスターで通電テストを行うなど、確認してみて下さい。

 

EEPROM そのものが破損するケースは少ないです。ただし中のデータが壊れている事はまれにあります。

IchigoJam BASIC 1.0.0 以降では保存した後 FILES、IchigoLatte では ls で正常に保存されている事を確認すると無難です。

 

なお、EEPROM は寿命(読み書き制限)があります。

これは USB メモリ・SD カード・SSD・ハードディスク などと同じです。

いずれ読み書きが行えなくなる場合があります。EEPROM の種類などで制限回数は異なります。

 

IchigoJam BASIC 0.9.9-RC9 以前から IchigoJam BASIC 0.9.9-RC10 以降へ更新した場合

IchigoJam BASIC 0.9.9-RC10 からファイル番号が 227 までになると共に、EEPROM の保存方法が変わりました。

そのため、プログラム番号が一つずつずれます。

  • 101→100
  • 102→101
  •   :

元のプログラム番号 100 は下になります。EEPROM の容量によって異なります。

  • 1024K: 100・164→163
  • 512K: 100→163
  • 256K: 100→131
  • 128K: 100→115
  • 64K: 100→107
  • 32K: 100→103 

FILES

IchigoJam BASIC 1.0.0 開発版(1.0.0 beta XX)では FILES のみで EEPROM 内全てを表示していましたが、

正式版となった IchigoJam BASIC 1.0.1 からは FILES のみで本体のみのファイル表示に仕様変更されました。

EEPROM を含めたファイル一覧表示は FILES 0 として下さい。

 

デフォルト動作を変更したのは、EEPROM を含んだ I2C アクセスに IN3 端子が使われているため、
EEPROM 以外のものを接続している場合に誤動作が生じる恐れがある事、

また EEPROM を使用していない IchigoJam 利用者が多いと思われるので、本体のみをデフォルトに変更してあるとの事です。

 

まれに SAVE を行っても保存されていないケースがありますので、

SAVE した後は FILES で正常に保存されている事を確認して下さい。


Q&A

入手したての EEPROM ですが、FILES・lsでゴミが表示されます。

入手先によって生じている事があります。IchigoJam BASIC では次のコマンドで EEPROM 内を消去できます。

このコマンドは EEPROM 内を完全に消去します。プログラム等が入っている時は実行しないで下さい。

 

NEW:FOR I=100 TO 227:?I:SAVE I:NEXT

 

EEPROM のサイズによって 227 を変更します。512k は 163、256k は 131 などです。

IchigoLatte では EEPROM フォーマッタ をご利用下さい。

 

IchigoJam BASIC と IchigoLatte で一つの EEPROM を共有する事はできますか?

可能ですが、標準コマンドでお互いのプログラムは参照できないため、物理的に別々の EEPROM にしておく事をおすすめします。

(一覧参照できるプログラムは運営者が公開しています。ls (IchigoJam BASIC→IchigoLatte)FILES (IchigoLatte→IchigoJam BASIC))

IchigoJam BASIC は 1k バイトに対し、IchigoLatte は倍の 2k バイト使用しますので、

IchigoJam BASIC のプログラム2つ分を IchigoLatte のプログラム一つで使用します。

具体的には次のプログラム番号で領域が重なります。

 

IchigoJam BASIC プログラム番号
(IchigoJam BASIC 0.9.9-RC10〜)
IchigoLatte プログラム番号
100 @0 
101
102 @1
103
:
226 @63
227