Armadilloフォーラム

Node-REDでのI2C制御

kdhiro

2022年12月1日 11時17分

題記の件、Armadillo-640にNode-REDをインストールし、開発の効率化を検討しております。
既にI2CはPythonプログラムで開発済みなのですが、Node-REDでのI2C制御を検討しております。
Node-REDで使用するノードは、node-red-contrib-i2c(ラズパイ用?)で良いのでしょうか?

コメント

アットマークテクノの古賀です。

kdhiroさん;
>題記の件、Armadillo-640にNode-REDをインストールし、開発の効率化を検討しております。
>既にI2CはPythonプログラムで開発済みなのですが、Node-REDでのI2C制御を検討しております。
>Node-REDで使用するノードは、node-red-contrib-i2c(ラズパイ用?)で良いのでしょうか?

node-red-contrib-i2c のページを見たところ、Linux 標準の /dev/i2c-x ドライバに対応している i2c-bus パッケージを使用していますので、Armadillo-640 でも使えるのではないかと思います:
 https://flows.nodered.org/node/node-red-contrib-i2c
 https://github.com/fivdi/i2c-bus

過去のフォーラム「Armadillo-640 I2c 速度変更方法について」の中で使用している
i2cデバイス(ACM1602N1)をi2c-toolsを使ってWrite動作を確認していますが、Error:
Write failedが発生しております。原因が分からず、上記フォーラムを参考に速度も
50kHzに変更したのですが、改善されません。アドバイスをお願いします。

以前、別のi2cデバイス(MCP3425)では速度変更もせずに問題なくできたのですが・・・。

アットマークテクノの古賀です。

kdhiroさん(2022年12月2日 16時17分):
>過去のフォーラム「Armadillo-640 I2c 速度変更方法について」の中で使用している
>i2cデバイス(ACM1602N1)をi2c-toolsを使ってWrite動作を確認していますが、Error:
>Write failedが発生しております。原因が分からず、上記フォーラムを参考に速度も
>50kHzに変更したのですが、改善されません。アドバイスをお願いします。

過去のフォーラムというのは、この質問スレッドですね:
 https://armadillo.atmark-techno.com/forum/armadillo/3537

>以前、別のi2cデバイス(MCP3425)では速度変更もせずに問題なくできたのですが・・・。

MCP3425 で動作確認できた時とは、Armadillo-640 のピン設定(IOMUX 設定)は同じにしていらっしゃって、I2C のバスクロックを 50kHz に変更したのみ、という認識で合っているでしょうか?

I2C のバスクロック周波数を 50kHz よりもさらに低くして、たとえば 10kHz にすると、どうなるでしょうか?
お手元にオシロスコープがあれば、Armadillo-640 から I2C Write した時の信号波形を観測してみて、信号波形に問題ないかどうか確認して頂くのがよいかと思います。

バスクロック周波数を 50kHz より低くしても改善されない場合、試しに、ACM1602N1 側の SCL と SDA ピンを、数kΩの抵抗で VDD にプルアップしてみると変わるかも知れませんね:
 https://www.ne.jp/asahi/air/variable/picmel/applications/ACM1602NI/inde…
 https://akibabara.com/blog/4622.html
 http://kairo-consulting.com/blog/%E6%84%8F%E5%A4%96%E3%81%A8%E5%A4%A7%E…

以上、もし参考になりましたら幸いです。