第12章 その他のデバイス

12.1. LED

12.1.1. ledctrlによる制御

ledctrlでは、Armadilloの赤い(status)LEDを制御することができます。ledctrlは、図12.1「ledctrlコマンドフォーマット」のように使用します。

[armadillo ~]# ledctrl [ledname] [command]

図12.1 ledctrlコマンドフォーマット


lednameには、status を指定します。

commandには、LEDに対しての制御方法を指定します。command一覧は、表12.1「ledctrl:command」のとおりです。

表12.1 ledctrl:command

command動作
onLEDを点灯させます。
offLEDを消灯させます。
blink_on [interval_ms]

LEDの点滅を開始します。点滅間隔は、interval_msで指定します。デフォルトでは200msの点滅間隔となります。

また、点滅を開始する1つ前の状態を保存し、blink_off時に状態を元に戻すことができます。

blink_offLEDの点滅を終了します。
status

現在の状態を表示します。表示する項目は、

brightness、delay_on、delay_off

となります。


12.1.2. ledctrl使用例

  • 点灯させる

    [armadillo ~]# ledctrl status on

    図12.2 ledctrl使用例1


  • 消灯させる

    [armadillo ~]# ledctrl status off

    図12.3 ledctrl使用例2


  • 点滅を開始させる

    [armadillo ~]# ledctrl status blink_on 500

    図12.4 ledctrl使用例3


  • 点滅を終了させる

    [armadillo ~]# ledctrl status blink_off

    図12.5 ledctrl使用例4


12.2. GPIO

ArmadilloのGPIOは、/sys/devices/platform/armadillo5x0_gpio.0/ports/の下にあるファイルを読み書きすることにより、簡易的に制御することができます。

制御できる項目は、表12.2「GPIOファイルノード」のとおりです。

表12.2 GPIOファイルノード

ファイル名説明
gpio*_dir

GPIOのDirectionを変更することができます。0を書き込むとINPUTに、1を書き込むとOUTPUTになります。それ以外は未定義となります。

読み出した場合は、現在の状態を取得できます。

gpio*_data DirectionがINPUTの場合は、GPIOの現在の入力レベルを読み出すことができます。書き込みは無視されます。 DirectionがOUTPUTの場合は、GPIOの出力レベルを設定できます。読み出した場合は、現在の出力レベルを取得できます。 読み書きする値は、0でLOWレベルを表し、1でHIGHレベルを表します。 それ以外は未定義となります。

GPIOファイルノードとGPIOの対応については、表12.3「GPIOファイルノードとGPIOの対応」を参照してください。

表12.3 GPIOファイルノードとGPIOの対応

GPIOファイルノードArmadillo-500 FXボードコネクタピン番号

gpio1_7_*

JP4

1

gpio1_8_*

JP2

1

gpio2_0_*

CON10

24

gpio2_1_*

CON10

23

gpio2_2_*

CON10

22

gpio3_0_*

CON10

41

gpio3_1_*

CON10

42

gpio3_8_*

CON10

43

gpio3_9_*

CON10

44

gpio3_10_*

CON10

45

gpio3_11_*

CON10

46

gpio3_12_*

CON10

47

gpio3_13_*

CON10

48

gpio3_14_*

CON10

49

gpio3_15_*

CON10

50

gpio3_16_*

CON10

51

gpio3_17_*

CON10

52

gpio3_18_*

CON10

53

gpio3_19_*

CON10

54


12.2.1. DirectionをINPUTにする

GPIO3_0(CON11 1ピン)を入力にする場合は、図12.6「GPIO:DirectionをINPUTにする」のようにコマンドを実行します。

[armadillo ~]# echo 0 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio3_0_dir

図12.6 GPIO:DirectionをINPUTにする


現在のGPIO3_0の入力状態を取得するには、図12.7「GPIO:INPUT時の入力状態を取得する」のようにコマンドを実行します。

[armadillo ~]# cat /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio3_0_data
0

図12.7 GPIO:INPUT時の入力状態を取得する


12.2.2. DirectionをOUTPUTにする

GPIO3_0(CON11 1ピン)を出力にする場合は、図12.8「DirectionをOUTPUTにする」のようにコマンドを実行します。

[armadillo ~]# echo 1 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio3_0_dir

図12.8 DirectionをOUTPUTにする


HIGHレベルを出力するには、図12.9「OUTPUT時の出力状態を変更する」のようにコマンドを実行します。

[armadillo ~]# echo 1 > /sys/devices/platform/armadillo5x0_gpio.0/ports/gpio3_0_data

図12.9 OUTPUT時の出力状態を変更する


12.2.3. INPUT専用のGPIO

OUTPUT設定ができないGPIOは、Directionファイルのアクセス権限が読み込み専用になります。アクセス権限は図12.10「GPIOのアクセス権限を確認する」のようにコマンドを実行して確認します。

[armadillo ~]# cd /sys/devices/platform/armadillo5x0_gpio.0/ports
[armadillo /sys/devices/platform/armadillo5x0_gpio.0/ports]# ls -l gpio3_0_dir
-rw-rw-r--    1 root     root         4096 Oct 18 07:23 gpio3_0_dir
[armadillo /sys/devices/platform/armadillo5x0_gpio.0/ports]# ls -l gpio1_8_dir
-r--r--r--    1 root     root         4096 Oct 18 07:23 gpio1_8_dir

図12.10 GPIOのアクセス権限を確認する