2022-12-01

  • KOKUYO ing の試座予約
  • som-pwrctl を Circuits.I2C で実行する
  • xmutil tool 群 の buildroot package 化

som-pwrctl の動作確認はすんなり終わった。

xmutil tool 群 の buildroot package 化がまだ慣れて無くて時間がかかった。が、一通り終わった。明日動作確認しよう。

som-pwrctl

動作確認 OK !!

iex()> cmd "cat /sys/bus/i2c/devices/i2c-1/name"
Cadence I2C at ff030000
iex()> Circuits.I2C.detect_devices("i2c-1")
[16, 17, 48, 50, 51, 64, 80, 81, 88, 89, 104, 112, 116]
# 0x68 is 104
iex()> {:ok, ref} = Circuits.I2C.open("i2c-1")
{:ok, #Reference<0.2816350567.3222142989.231127>}
# write せずに read
iex()> Circuits.I2C.read(ref, 0x68, 1)
{:ok, <<255>>}

# write して read, som-pwrctl の --status に相当
iex()> Circuits.I2C.write(ref, 0x68, <<0xf5>>)
:ok
iex()> Circuits.I2C.read(ref, 0x68, 1)
{:ok, <<154>>} # 154 == 0x9a なので on

# write, som-pwrctl の --off に相当
iex()> Circuits.I2C.write(ref, 0x68, <<0x08, 0x00>>)
:ok
iex()> Circuits.I2C.write(ref, 0x68, <<0xf5>>)
:ok
iex()> Circuits.I2C.read(ref, 0x68, 1)
{:ok, <<4>>} # 4 == 0x04 なので off, ボード上 LED, SOM PL, CC PL が消灯

# write, som-pwrctl の --on に相当
iex()> Circuits.I2C.write(ref, 0x68, <<0x08, 0x3e>>)
:ok
iex()> Circuits.I2C.write(ref, 0x68, <<0xf5>>)
:ok
iex()> Circuits.I2C.read(ref, 0x68, 1)
{:ok, <<154>>} # 154 == 0x9a なので on, ボード上 LED, SOM PL, CC PL が点灯

Buildroot

Config.in で type string 指定すると必ず double quotes が付いて扱いづらいので、みんなどうしてるんだろうと他パッケージ漁ってたら qstrip を見つけた。

そんな関数ドキュメントに無いんだけど、 bootlin のドキュメントにも qstrip 使おうって書いてあった。 undocumented だけど、 common sense な関数っぽい。

Hint: use the make qstrip function to remove double quotes on string options

refs. https://bootlin.com/doc/training/buildroot/buildroot-slides.pdf