2023年2月5日日曜日

M5Stack Tough; SPI & I2C

Arduino MKR が SPI で MEMSセンサーを認識したので、M5Stack Tough でも確認。

結果、SPI なら認識できました。が、M-BUSに指したジャンプワイヤーのプラスチック部分がBOX内に収まらず OUT。

 


I2C は GROVE 用のポートを使用。センサーが 3.3V 稼働のため、GROVE 端子の 5V 出力を 3.3V に変換する変換モジュールを用意していたのですが、これを通すと認識しませんでした。残念。
https://www.switch-science.com/products/8434?_pos=13&_sid=40f4ba8d7&_ss=r

で、電源だけ M-BUS から取りました。I2Cスキャンの公開コードを利用した結果はコチラ。

19:46:01.869 -> Scanning...
19:46:09.900 -> I2C device found at address 0x0D  !
19:46:10.918 -> I2C device found at address 0x10  !
19:46:30.074 -> I2C device found at address 0x3D  !
19:46:49.290 -> I2C device found at address 0x6B  !
19:46:56.375 -> I2C device found at address 0x7D  !
19:46:56.375 -> I2C device found at address 0x7E  !
19:46:56.375 -> done
19:46:56.375 ->
19:47:01.390 -> Scanning...
19:47:06.403 -> I2C device found at address 0x0A  !
19:47:10.479 -> I2C device found at address 0x16  !
19:47:12.500 -> I2C device found at address 0x1B  !
19:47:13.489 -> I2C device found at address 0x1F  !

なぜ変わるのでしょう?当然、コード内で指定したら値が取れません。SGP30 の TVOC/eCO2 ガスセンサユニット(5V)なら安定し、1つの値を示すだけなのですが。

I2C は難しいのでひとまず寝かします。
ワイヤーを探せば SPI で運用できそうです。何かないか探してみましょう。

****************************
20230207追記、写真追加

SPI のピン指定は、GPIO の番号で通りました。
CS ピンは3がダメ、13でOKでした。Core2 の記事で 3はUSBとの通信に使われると書いてあるものを見かけましたので、Tough もそのようになっているのでしょうね。

20231230 試作品をGitHubに公開
https://github.com/T40O0/ADXL355_SPI_M5_SD_FIR.git

0 件のコメント:

コメントを投稿