I2C モニター
RX マイコンのサンプルで中途のプロジェクトを更新した。
I2C デバイスを接続して、操作を行うサンプルだが、雛形は作ったが、中身は無い状態だった。
※サンプルはそれなりに多いので、作ったつもりで忘れている事もあるw
それを、ある程度実装した。
※実験は、RX72T ボードで行った、IICA ペリフェラルを利用している。
対話形式で、I2C デバイスと通信する
とりあえず、最低限必要なコマンドを実装。
コマンド | パラメーター | 機能 |
---|---|---|
scan | start end | I2C デバイスをスキャンする |
adr | address | 操作を行う I2C デバイスのアドレスを設定 |
r | num | I2C からデータを受け取る(recv) |
s | data... | I2C へデータを書き込む(send) |
操作画面
操作の入出力は、シリアル接続されたターミナルで行う。
接続したデバイスは、DS3231 のモジュールで、24C32(EEPROM)も載っている。
起動時:
Start I2C sample for 'RX72T' 200[MHz]
SCI Baud rate (set): 115200
SCI Baud rate (real): 115287 (0.08 [%])
CMT rate (set): 100 [Hz]
CMT rate (real): 100 [Hz] (0.00 [%])
I2C Start ok: (intrrupt level = 0)
#
スキャン:
# scan
Ditect I2C address: 0x57 ( 87, 0b1010111)
Ditect I2C address: 0x68 (104, 0b1101000)
Ditect I2C Device(s): 2
#
書き込みと読出し:
# adr 0x68
# s 0
# r 16
43 39 03 06 03 09 21 00 00 00 00 00 00 00 00 88
# s 0
# r 16
50 39 03 06 03 09 21 00 00 00 00 00 00 00 00 88
#
- I2C アドレス設定(0x68)
- アドレスレジスタを設定(0)
- 16バイトの読出し
- 秒カウンタが変化している。(43 ---> 50)
まとめ
とりあえず、動作しているので、コミットしてある。
まだまだ、初期段階なので、今後拡張していきたい。
IICA の割り込みモードも完成させたい。