豊四季タイニーBASIC - I2C EEPROMへのプログラム保存
豊四季タイニーBASIC for Arduino機能拡張版は、
作成したプログラムを内部EEPROMの領域に1つだけ保存することが出来ます。
これとは別に、外付け(I2C接続)EEPROMにも保存出来ます(以降、外部接続EEPROMと呼称)。
下記の写真はブレッドボード上に実装したEEPROMです。
対応しているEEPROMは24xxx系 (5V対応のもの)で、
4kバイト(32kビット)~64kバイト(512ビット)の容量に対応します。
動作確認 EEPROM
AT24C32、AT24C64、24LC64、AT24C256、24LC256、24FC512、AT25C32
保存可能ファイル数
※ 容量が1024ビットタイプのEEPROMでも保存は可能ですが、利用出来る容量は512ビット(64kバイト)となります。
使い勝手は次のような感じです。
Formatコマンドで初期後、Saveコマンドでファイル名で保存、
Filesコマンドでファイル一覧の表示、Loadコマンドでプログラムの読み込みが出来ます。
プログラムは、ファイル名(12文字)を付けて保存することが出来ます。
Filesコマンドでは、ワイルドカード(*、?)が利用可能です。
Files ""、Files " は Files "*"と等価です。
外部接続EEPROMの実装
EEPROMの結線は次のような感じになります。
プルアップ抵抗は、2 ~ 10kΩの範囲(Arduinoでプルアップしているため無く可)、
コンデンサは無くても可、I2Cスレーブアドレスは$50に設定(A0 ~ A2ピンで$50 ~ $57の設定が可能)
EEPROMのI2Cアドレスの設定により、最大8個のEEPROMを同時接続して利用することが出来ます。
実際には、市販モジュールの利用がお手軽です。種類も色々とあるようです。
いくつか持っている中で、写真のタイプが使いやすいです。
amazonでもいくつかの業者が取り扱っています。
・KKHMF AT24C256 I2C インターフェースEEPROMメモリモジュール
このモジュールは、ジャンパピン (ショートピン) の設定でI2Cスレーブアドレス、ライトプロテクトの設定が出来て便利です。
乗っているEEPROMをの差し替えも出来ます(4kバイト(32kビット) ~ 64kバイト(512ビット)で交換)。
(ICソケットが逆についているモジュールがあるようです。基板のシルク印刷を確認し、逆ならICを付け直しましょう)
動作確認のため、4つのモジュールを同時接続してみました。
4つのうち2つはAT24C256、残り2つは24FC512を乗せています。
I2Cスレーブアドレスは、0x50、0x51、0x52、0x53と異なるアドレスを割り当てています。
アダプタを製作して接続してみました。
4つをI2C接続している様子
4つ同時利用はあまり意味が無いのですが、スレーブアドレス違いでの利用の検証です。
まずは、Formatコマンドで各EEPROMを初期化します。
Driveコマンドで利用するEEPROMを指定して、フォーマットします。
DRIVEコマンドの引数 "A"、"B"、"C"、"D"はEEPROMのI2Cスレーブアドレス $50、$51、$52、$53に対応します。
Formatコマンドの引数はEEPROMの容量指定と、ドライブ名(任意)です。
"A"、"B"、"C"、"D"のかわりに、$50、$51、$52、$53の指定も可能です。
次に簡単なプログラムをファイル名を変えて各EEPROMに保存してみます。
保存したプログラムをFilesコマンドで確認してみます。
Filesコマンドの引数 "" すべてのファイルを一覧表示します。
ワイルドカード指定 "*" でもOKです。
個々のEEPROMをちゃんと識別し、それぞれに保存出来ています。
Filesコマンドの出力の1行目はドライブ名、
2行目はファイル名一覧(存在するファイル数により出力行数は可変)、
3行目の出力は
条件パターン一致ファイル / 全ファイル数 (保存可能ファイル数)
を意味します。
条件パターン一致ファイル数 は "t*.bas" のようにワイルドカード指定時で一致したファイル数が表示されます。
今回は一致ファイルが1つで、存在するファイル数も1つなので 1/1 となります。
こんな感じで、外付けのEEPROMへの保存が可能です。
« 豊四季タイニーBASIC for Arduino機能拡張版のラインエディタについて | トップページ | 東芝 MSX PASOPIA IQ(HX-10D)を入手しました »
「arduino」カテゴリの記事
- Freenove Mecanum ホイール カー キットを購入しました(2025.05.28)
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
「TinyBASIC」カテゴリの記事
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- 豊四季タイニーBASIC for Arduino 機能拡張版 V0.08の更新(2020.07.27)
- 豊四季タイニーBASIC for Arduino 機能拡張版 フルスクリーンエディタ対応(2020.02.20)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- TextsでWord文書をMarkdown形式に変換してみる(2019.11.16)
« 豊四季タイニーBASIC for Arduino機能拡張版のラインエディタについて | トップページ | 東芝 MSX PASOPIA IQ(HX-10D)を入手しました »
コメント