denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

Raspi-3でオシロジが動いた(その2)

(2016.08.11)
Raspi-3でオシロジが動かなかった原因が判明しました。

Raspi2BのオシロジでRaspi3のSDAとSCLをモニタして、baudrateがおかしい(100kHzの設定に対して160kHzで動作している)ことに気付きました。PIC32mxのbaudrateを100kHzに設定しているので、SCLが160kHzでは正しく送受できなかったものと推察されます。

sudo cat /sys/momdule/i2c_bcm2708/baudrateを調べたところ

(2016.08.15 誤り訂正)

sudo cat /sys/module/i2c_bcm2708/parameters/baudrateを調べたところ
Raspi2 ==>100000
Raspi3 ==>0 ????

Raspi2は正しい値(100kHz)を示しますが、Raspi3は何故か0です。

 /boot/config.txtにdtparam=i2c_arm_baudrate=50000を追記しても
Raspi2==>50000
Raspi3==>0 !!!!

やっぱり、Raspi3は0です。

Osci_logi_console(JAVAプログラム)で使っているi2c_set_baudrate関数の引数を100000から50000に変更してみると・・・
ビンゴ~

Raspi2BのOscilogiでモニタしているSCLが80kHzになりました。
そしてようやく、Raspi3でオシロジが動きました。

f:id:denshikobo:20160811152724p:plain

パチパチパチ~

JAVAからbcm2835ライブラリを呼び出しているのですが、bcm2835ライブラリのi2c_set_baudrate関数がRaspi2とRaspi3のクロックレートの違いを上手く吸収できていないために生じた不具合のようです。

/boot/config.txtでI2Cのbaudrateが設定出来ない件は、当面ペンディングにします。

気になるのは、むき出しの状態でvcgencmd measure_tempの指示値が70℃を超えていることです。Raspi3でオシロジを使うためにはcooling fanが必要かもしれません。