rftgyふじこlp:今は反芻している…JP1NOM

のんべんだらりと生きてしまいましたよ。

今日のI2C

2017年10月03日 04時34分00秒 | mbed

LPC1114FN28にI2C機器を複数ぶら下げる実験。
今回はLCD、メモリー、時計を接続。

当初LCDとメモリーのI2Cアドレス衝突の事態を解決できずにいましたが、メモリーのI2Cアドレスを変える方法を教示していただきました。

リアルタイムクロックにはRX8025NB、メモリーに24FC1025、LCDにはACM1602NIを使用。

メモリーアドレスのA2はHi固定なのでA1をHi、A0をLoにしてLCDとの衝突を回避しました。IchigoJamでメモリーとこのLCDが衝突してつかえないという話から思い出したのですが、当初アドレス変更が反映されず、結局EEPROMのライブラリでアドレスを書き換える必要がありました。

mbedで使ったライブラリは

I2cLCD16_ACM1601NI
M24LC64
PS2
RX8025

です。

この内M24LC64ライブラリのM24LC64.hのなかで指定されるアドレスを0xA4にへんこうしました。

M24LC64ライブラリは24FC1025には最適化されていないものですし、もしかすると1Mb対応何かどうかも不明ですが、一応読み書きができています。まさかバンク切り替えで起きがちなゴーストイメージを読み書きしてるんじゃないと思いますが…

ただ24FC1025は512Mbチップを2つ搭載しているという話もあり、使い方が悪いと64KBしか使えないのかもしれません。

今の所、メモリーの読み書きと時計もどきを組み込んだに過ぎませんが、128KBのEEPROMを使って色々と実験したいと思います。

プログラミング環境は完全にFreeBSDに移行しました。lpc2ispがbinファイルそのままで書き込むため、工数を削減できます。書き込みモード切り替えとリセットスイッチをプッシュスイッチにしておけば、書き込み終了とともにリセットがかかり、プログラムが走ります。


最新の画像もっと見る

コメントを投稿