工場出荷状態でフラッシュメモリに書き込まれているイメージファイルは、最新版ではない可能性があります。最新版のイメージファイルは、Armadilloサイトからダウンロード可能です。最新版のイメージファイルに書き換えてからのご使用を推奨します。
イメージファイルの書き換えについては、11章イメージファイルの書き換え方法を参照してください。
ここでは、ネットワークの設定方法やネットワークを利用するアプリケーションについて説明します。
Armadillo-X1 は、複数の種類のネットワークに接続することができます。接続可能なネットワークとLinuxから使用するネットワークデバイスの対応を次に示します。
表6.1 ネットワークとネットワークデバイス ネットワーク | ネットワークデバイス | 備考 |
---|
有線LAN | eth0 | | 無線LAN | wlan0 | AEH-AR9462 搭載 |
Armadillo-X1 では、通常のLinuxシステムと同様、ネットワークインターフェースの設定はNetworkManagerを使用します。NetworkManagerはデフォルトでeth0(LANのネットワークインターフェース)が自動でupし、DHCPでネットワーク設定を取得するようになっています。
NetworkManagerはすべてのネットワーク設定をコネクションとして管理します。コネクションには「どのようにネットワークへ接続するか」、「どのようにネットワークを作成するか」を記述し、/etc/NetworkManager/system-connections/ に保存します。
また、1つのデバイスに対して複数のコネクションを保存することは可能ですが、1つのデバイスに対して有効化にできるコネクションは1つだけです。
NetworkManagerは、従来の/etc/network/interfaces を使った設定方法もサポートしていますが、本書ではnmcliを用いた方法を中心に紹介します。
nmcli は NetworkManagerを操作するためのコマンドラインツールです。
図6.1「nmcli のコマンド書式」 に nmcli の書式を示します。このことから、nmcli は「オブジェクト(OBJECT)というものが存在し、それぞれのオブジェクトに対してコマンド(COMMAND)を実行する。」という書式でコマンドを入力することがわかります。また、オブジェクトそれぞれに help が用意されていることもここから読み取れます。
各オブジェクトについての詳しい情報は man nmcli を参照してください。
| |
---|
Armadillo-X1 には nmcli の他ユーザーフレンドリーな nmtui もインストールされていますが本書では取り扱いません。
|
ここでは nmcliの、基本的な使い方を説明します。
登録されているコネクションの一覧を確認するには、次のようにコマンドを実行します。
[]
コネクションを有効化するには、次のようにコマンドを実行します。
コネクションを無効化するには、次のようにコマンドを実行します。
コネクションを作成するには、次のようにコマンドを実行します。
[ID] にはコネクションの名前(任意)、[type] には ethernet, wifi といった接続タイプ、[interface name] にはインターフェース名(デバイス)を入力します。具体的なコネクションの作成方法はそれぞれのデバイスの章で説明します。
| |
---|
/etc/NetworkManager/system-connections/ に[ID] の名前でコネクションファイルが作成されます。これをviなどで編集しコネクションを修正することも可能です。
|
コネクションを削除するには、次のようにコマンドを実行します。
| |
---|
/etc/NetworkManager/system-connections/ のコネクションファイルも同時に削除されます。
|
具体的なコネクションの修正方法を紹介します。
| |
---|
wifiの設定情報をnmcli connection modify コマンドで設定情報を編集すると、パスフレーズ情報がリセットされます。
編集する際は、都度パスフレーズも同時に設定してください。
パスフレーズの設定方法は、「無線LAN」を参照してください。
|
| |
---|
ネットワーク接続に関する不明な点については、ネットワークの管理者へ相談してください。
|
DHCPに設定する例を、図6.8「DHCP設定」に示します。
| |
---|
-ipv4.addresses のように、プロパティ名の先頭に '-' を付けることで設定したプロパティを削除することができます。反対に '+' を付けることでプロパティを追加することができます。
|
有効化されているコネクションをコネクションを修正した場合、かならず修正したコネクションを再度有効化してください。
デバイスの一覧(デバイス名、タイプ、状態、有効なコネクション)を確認するには、次のようにコマンドを実行します。
[]
デバイスを接続するには、次のようにコマンドを実行します。
| |
---|
デバイスを接続するには、接続しようとしているデバイスの有効なコネクションが必要です。"Error: neither a valid connection nor device given" というメッセージが表示された場合には、nmcli connectionなどで有効なコネクションがあるかを確認してください。
|
デバイスを切断するには、次のようにコマンドを実行します。
ここでは有線LANの使用方法について説明します。
6.2.4.1. 有線LANインターフェース(eth0)のコネクションの作成
有線LANインターフェース用のコネクションを作成するには、次のようにコマンドを実行します。
有線LANで正常に通信が可能か確認します。設定を変更した場合、かならず変更したインターフェースを再度有効化してください。
同じネットワーク内にある通信機器とPING通信を行います。以下の例では、通信機器が「192.0.2.20」というIPアドレスを持っていると想定しています。
| |
---|
有線LAN以外のコネクションが有効化されている場合、ネットワーク通信に有線LANが使用されない場合があります。確実に有線LANの接続確認をする場合は、事前に有線LAN以外のコネクションを無効化してください。
|
ここでは、Armadillo-X1 に搭載されている無線LANモジュールの使用方法について説明します。
例として、WPA2-PSK(AES)のアクセスポイントに接続します。WPA2-PSK(AES)以外のアクセスポイントへの接続方法などについては、man nm-settings を参考にしてください。また、以降の説明では、アクセスポイントのESSIDを[essid] 、パスフレーズを[passphrase] と表記します。
6.2.5.1. 無線LANアクセスポイントに接続する
無線LANアクセスポイントに接続するためには、次のようにコマンドを実行します。
6.2.5.2. 無線LAN(wlan0)のコネクションの作成
「無線LANアクセスポイントに接続する」方法は簡単ですが、この方法はDHCPにしか対応していません。そのため、無線LANを固定IPにする場合や、細かなネットワーク設定を行うためにはコネクションから作成する必要があります。
無線LAN(wlan0)のコネクションの作成するためには、次のようにコマンドを実行します。
| type を wifi に設定し、無線LANのコネクションを作成します。 | | 暗号化キー管理方式を wpa-psk に設定します。 | | パスフレーズを設定します。 |
| |
---|
接続先のアクセスポイントによっては、以下のようなメッセージが出力され、アクセスポイントに接続できないことがあります。
|
無線LANで正常に通信が可能か確認します。
同じネットワーク内にある通信機器とPING通信を行います。以下の例では、通信機器が「192.0.2.20」というIPアドレスを持っていると想定しています。
| |
---|
無線LAN以外のコネクションが有効化されている場合、ネットワーク通信に無線LANが使用されない場合があります。確実に無線LANの接続確認をする場合は、事前に無線LAN以外のコネクションを無効化してください。
|
Armadilloでは、簡易ファイアーウォールが動作しています。設定されている内容を参照するには、図6.19「iptables」のようにコマンドを実行してください。
工場出荷イメージで利用することができるネットワークアプリケーションについて説明します。
| |
---|
ATDEとArmadilloのネットワーク設定がデフォルト状態であることを想定して記述しています。ネットワーク設定を変更している場合は適宜読み換えてください。
|
Armadilloでは、HTTPサーバーが動作しています。ATDEなどのPCのWebブラウザからArmadilloのURL (http://[ArmadilloのIPアドレス]/ にアクセスすると、lighttpdのトップページ(index.html)が表示されます。
Armadillo-X1 でストレージとして使用可能なデバイスを次に示します。
表6.3 ストレージデバイス デバイス種類 | ディスクデバイス | 先頭パーティション | インターフェース |
---|
SD/SDHC/SDXCカード | /dev/mmcblk* [] | /dev/mmcblk*p1 | SDスロット拡張ボード | USBフラッシュメモリ | /dev/sd* [] | /dev/sd*1 | USB ホストインターフェース(CON2) |
ここでは、SDHCカードを接続した場合を例にストレージの使用方法を説明します。以降の説明では、共通の操作が可能な場合に、SD/SDHC/SDXCカードをSDカードと表記します。
| |
---|
SDXC/microSDXCカードを使用する場合は、事前に「ストレージのパーティション変更とフォーマット」を参照してフォーマットを行う必要があります。これは、LinuxカーネルがexFATファイルシステムを扱うことができないためです。通常、購入したばかりのSDXC/microSDXCカードはexFATファイルシステムでフォーマットされています。
|
Linuxでは、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、mountです。
mountコマンドの典型的なフォーマットは、次の通りです。
-t オプションに続くfstype には、ファイルシステムタイプを指定します[]。FAT32ファイルシステムの場合はvfat []、EXT3ファイルシステムの場合はext3 を指定します。
device には、ストレージデバイスのデバイスファイル名を指定します。SDカードのパーティション1の場合は/dev/mmcblk0p1 、パーティション2の場合は/dev/mmcblk0p2 となります。
dir には、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。
SDスロットにSDHCカードを挿入した状態で図6.22「ストレージのマウント」に示すコマンドを実行すると、/mntディレクトリにSDHCカードのファイルシステムをマウントします。SDカード内のファイルは、/mntディレクトリ以下に見えるようになります。
ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。
6.3.2. ストレージのパーティション変更とフォーマット
通常、購入したばかりのSDHCカードやUSBメモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。
パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているSDカードのパーティションを、2つに分割する例を図6.24「fdiskコマンドによるパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには100MByte、二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは/dev/mmcblk0p1、二つめは/dev/mmcblk0p2となります。fdiskコマンドの詳細な使い方は、manページ等を参照してください。
FAT32ファイルシステムでストレージデバイスをフォーマットするには、mkfs.vfatコマンドを使用します。また、EXT2やEXT3ファイルシステムでフォーマットするには、mke2fsコマンドを使用します。SDカードのパーティション1をEXT3ファイルシステムでフォーマットするコマンド例を、次に示します。
Armadillo-X1 のLEDは、GPIOが接続されているためソフトウェアで制御することができます。
利用しているデバイスドライバはLEDクラスとして実装されているため、LEDクラスディレクトリ以下のファイルによってLEDの制御を行うことができます。LEDクラスディレクトリと各LEDの対応を次に示します。
表6.4 LEDクラスディレクトリとLEDの対応 LEDクラスディレクトリ | インターフェース | デフォルトトリガ |
---|
/sys/class/leds/led1/ | ユーザーLED1 | default-on |
以降の説明では、任意のLEDを示すLEDクラスディレクトリを"/sys/class/leds/[LED] "のように表記します。
LEDクラスディレクトリ以下のbrightnessファイルへ値を書き込むことによって、LEDの点灯/消灯を行うことができます。brightnessに書き込む有効な値は0〜255です。
brightnessに0以外の値を書き込むとLEDが点灯します。
| |
---|
Armadillo-X1 のLEDには輝度制御の機能が無いため、0 (消灯)、1〜255 (点灯)の2つの状態のみ指定することができます。
|
brightnessに0を書き込むとLEDが消灯します。
brightnessを読み出すとLEDの状態が取得できます。
LEDクラスディレクトリ以下のtriggerファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。triggerに書き込む有効な値を次に示します。
表6.5 triggerの種類 設定 | 説明 |
---|
none | トリガを設定しません。 | mmc0 | SDスロット拡張ボードのアクセスランプにします。 | mmc2 | eMMCのアクセスランプにします。 | timer | 任意のタイミングで点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します。 | heartbeat | 心拍のように点灯/消灯を行います。 | default-on | 主にLinuxカーネルから使用します。LEDが点灯します。 |
以下のコマンドを実行すると、LEDが2秒点灯、1秒消灯を繰り返します。
triggerを読み出すとLEDのトリガが取得できます。"[ ]"が付いているものが現在のトリガです。
Armadillo-X1 は、Board Management ICのRTC機能を利用しています。
電源が切断されても時刻を保持させたい場合は、RTC バックアップインターフェース(CON9)に外付けバッテリー(CR2032 WK11/Hitachi Maxell[]等)を接続することができます。
Linuxの時刻には、Linuxカーネルが管理するシステムクロックと、RTCが管理するハードウェアクロックの2種類があります。RTCに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。
システムクロックは、dateコマンドを用いて設定します。dateコマンドの引数には、設定する時刻を[MMDDhhmmCCYY.ss]というフォーマットで指定します。時刻フォーマットの各フィールドの意味を次に示します。
表6.6 時刻フォーマットのフィールド フィールド | 意味 |
---|
MM | 月 | DD | 日(月内通算) | hh | 時 | mm | 分 | CC | 年の最初の2桁(省略可) | YY | 年の最後の2桁(省略可) | ss | 秒(省略可) |
2015年6月2日12時34分56秒に設定する例を次に示します。
| |
---|
Armadillo-X1が接続しているネットワーク内にタイムサーバーがある場合は、NTP(Network Time Protocol)クライアントを利用してシステムクロックを設定することができます。
|
システムクロックを設定後、ハードウェアクロックをhwclockコマンドを用いて設定します。
Armadillo-X1 のユーザースイッチのデバイスドライバは、インプットデバイスとして実装されています。インプットデバイスのデバイスファイルからボタンプッシュ/リリースイベントを取得することができます。
ユーザースイッチのインプットデバイスファイルと、各スイッチに対応したイベントコードを次に示します。
表6.7 インプットデバイスファイルとイベントコード ユーザースイッチ | インプットデバイスファイル | イベントコード |
---|
SW1 | /dev/input/event1 | 2 (KEY_1) |
| |
---|
インプットデバイスは検出された順番にインデックスが割り振られます。USBデバイスなどを接続してインプットデバイスを追加している場合は、デバイスファイルのインデックスが異なる可能性があります。
|
ユーザースイッチのボタンプッシュ/リリースイベントを確認するために、ここではevtest コマンドを利用します。evtest を停止するには、Ctrl+c を入力してください。
Armadillo-X1の温度センサーは、i.MX 7DualのTEMPMON(Temperature Monitor)を利用しています。
/sys/class/thermal/thermal_zone1/temp ファイルの値を読み出すことによって、i.MX 7Dualの測定温度を取得することができます。
Armadillo-X1は、BMIC(Board Management IC)のADコンバーター機能により、電源電圧およびRTCバックアップインターフェース(CON9)に接続された外付けバッテリーの電圧を取得することができます。
電源電圧は、分圧されてADコンバーターへ入力されています。電源電圧を取得するためには、まずADコンバーターへの入力電圧を取得する必要があります。
外部バッテリーの電圧は分圧されていないため、ADコンバーターの入力電圧がそのまま外部バッテリーの電圧となります。
ADコンバーターは IIO(Industrial I/O) デバイスとして実装しています。
/sys/bus/iio/devices/iio:device0/ ディレクトリ以下のファイルから入力電圧を算出することができます。
| |
---|
IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。IIO デバイスは、IIOデバイス名から特定することができます。BMICのADコンバーターの IIO デバイス名は "3-0012"です。
|
ADコンバータへの入力電圧は、AD変換値と最小入力電圧変動から算出する事ができます。
/sys/bus/iio/devices/iio:device0/ ディレクトリ以下にある、入力電圧の算出に必要なファイルを次に示します。
表6.8 入力電圧の算出に必要なファイル ファイル | 説明 |
---|
in_voltage0_raw | シングルエンド入力 CH0(電源電圧)のAD変換値 | in_voltage1_raw | シングルエンド入力 CH1(外部バッテリー電圧)のAD変換値 | in_voltage_scale | シングルエンド入力の最小入力電圧変動 |
例として、電源電圧の取得方法について記載します。
図6.36「ADコンバーターへの入力電圧を取得する」の例では、ADコンバーターの入力電圧は、約 2.957V (4095 × 0.721191406 [mV])である事がわかります。
ADコンバーターへの入力電圧から、電源電圧を求める計算式を次に示します。
図6.36「ADコンバーターへの入力電圧を取得する」を例にとると、ADコンバーターの入力電圧1.261Vから、電源電圧は約11.770Vであることを求めることができます。
| |
---|
awk コマンドを利用して、次のように電源電圧を表示することができます。
|
vintrigger コマンドを利用して、電源電圧が指定した電圧になった場合に任意のコマンドを実行させることができます。
| |
---|
vintrigger を複数起動することはできません。
|
vintrigger コマンドのヘルプは次の通りです。
30秒間隔で電源電圧を監視し、4000mV(4V)以下になった場合に、LED2を点灯させる例を次に示します。
| |
---|
vintrigger コマンドのログは/var/log/messages ファイルに出力されます。
|
6.9. Armadillo-IoT RS232Cアドオンモジュール RS00
Armadillo-IoT RS232Cアドオンモジュール RS00(以降、RS232Cアドオンモジュールと記載します)は RS232C レベルのシリアルポートが 1 ポート搭載されています。RS232Cアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
対応するTTYデバイスファイルを次に示します。
| |
---|
RS232Cアドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
6.10. Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01
Armadillo-IoT 絶縁RS232C/422/485アドオンモジュール RS01(以降、絶縁シリアルアドオンモジュールと記載します)は、電気的に絶縁された RS232C/RS422/RS485 のシリアルポートが 1 ポート登載されています。絶縁シリアルアドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
対応するTTYデバイスファイルを次に示します。
| |
---|
絶縁シリアルアドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
6.10.1. RS422/RS485の通信設定を変更する
Armadillo-X1に電源を投入する前に 絶縁シリアルアドオンモジュール:SW1.1をOFFに設定すると、TTYデバイスのRS485設定が自動的に有効化されます。
| |
---|
Armadillo-X1の電源投入後に 絶縁シリアルアドオンモジュール:SW1.1の設定を変更しないでください。故障の原因となる可能性があります。
|
変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.11「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。
表6.11 RS485設定と初期値 設定 | 説明 | 初期値 |
---|
flags | ENABLED(bit0) |
0: RS485無効
1: RS485有効
| 1 | RTS_ON_SEND(bit1) |
0: データ送信時のRTS(Driver Enable)がLow
1: データ送信時のRTS(Driver Enable)がHigh
| 1 | RTS_AFTER_SEND(bit2) |
0: データ非送信時のRTS(Driver Enable)がLow
1: データ非送信時のRTS(Driver Enable)がHigh
| 0 | RX_DURING_TX(bit4) |
0: 半二重通信
1: 全二重通信
| 0 | delay_rts_before_send | 送信前遅延時間(ミリ秒) | 0 | delay_rts_after_send | 送信後遅延時間(ミリ秒) | 0 |
| |
---|
flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。
|
| |
---|
RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。
|
RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。
アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt )を参照してください。
Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。
表6.12 Linuxカーネル起動オプションからのRS485設定 オプション指定子 | 説明 |
---|
imx.rs485_uart7= |
UART7(ttymxc6)のRS485設定を指定します。
|
RS485設定のフォーマットは次の通りです。
例として、絶縁シリアルアドオンモジュールのRS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。
6.11. Armadillo-IoT RN4020アドオンモジュール BT00
Armadillo-IoT RN4020アドオンモジュール BT00(以降、RN4020アドオンモジュールと記載します)は Microchip製 RN4020が搭載されています。RN4020は、Bluetooth(R) version 4.1に対応しており、Bluetooth Low Energy 4.1 プロトコルスタックが内蔵されています。
RN4020アドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。対応するTTYデバイスファイルを次に示します。
| |
---|
RN4020アドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
RN4020アドオンモジュールを制御する例として、RN4020 の設定情報の取得を行います。
RN4020アドオンモジュールに搭載されているRN4020の設定情報を取得する手順を次に示します。
手順6.1 設定情報の取得
cu コマンドを実行して/dev/ttymxc6 に接続します。ボーレートは115200bpsです。
D (Dump configuration)コマンドを実行すると、RN4020の設定情報が表示されます。
まず、入力したコマンドを表示するために、Ctrl+aに続けてeを入力して下さい。
Dコマンドを実行すると、以下のように設定情報が取得できます。
cu を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の ASCII コマンドや、RN4020 の詳細な情報については Microchip製ドキュメントを参照してください。
6.12. Armadillo-IoT EnOceanアドオンモジュール EN00
Armadillo-IoT EnOceanアドオンモジュール EN00(以降、EnOceanアドオンモジュールと記載します)は コアスタッフ製 BP35A3 又は CS35A3が搭載されています。BP35A3/CS35A3にはEnOcean無線トランシーバーTCM410Jが搭載されています。
EnOceanアドオンモジュールは、TTY デバイスファイルからEnOcean Serial Protocol 3(ESP3)で通信することができます。対応するTTYデバイスファイルを次に示します。
| |
---|
EnOceanアドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
6.12.1. EnOcean無線データを受信する
EnOcean無線データを受信する例として、ROHM製スイッチモジュール PTM 210Jを使用します
EnOceanアドオンモジュールで受信する手順を次に示します。
手順6.2 EnOcean無線データの受信
stty コマンドを実行してTTY デバイスの通信設定を行います。ボーレートは57600bpsです。
hexdump コマンドを実行して受信データを16進数でダンプします。
hexdump を終了するには、"Ctrl+c"を入力します。
PTM 210Jなど、EnOcean製品の情報については ROHM社 Webページを参照してください。
EnOcean Serial Protocolの詳細については EnOcean GmbH製ドキュメントを参照してください。
6.13. Armadillo-IoT Wi-SUNアドオンモジュール WS00
Armadillo-IoT Wi-SUNアドオンモジュール WS00(以降、Wi-SUNアドオンモジュールと記載します)は ROHM製 BP35A1が搭載されています。
Wi-SUNアドオンモジュールは、TTY デバイスファイルからASCIIコマンドを使用した制御を行うことができます。対応するTTYデバイスファイルを次に示します。
| |
---|
Wi-SUNアドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
Wi-SUNアドオンモジュールを制御する例として、BP35A1 の設定情報の取得を行います。
Wi-SUNアドオンモジュールに搭載されているBP35A1の設定情報を取得する手順を次に示します。
手順6.3 設定情報の取得
cu コマンドを実行して/dev/ttymxc6 に接続します。ボーレートは115200bpsです。
SKINFOコマンドを実行すると、BP35A1 の設定情報が表示されます。
cu を終了するには、"~."(チルダ「~」に続いてドット「.」)を入力します。
その他の ASCII コマンドや、BP35A1 の詳細な情報については ROHM 製ドキュメントを参照してください。
6.14. Armadillo-IoT 絶縁RS485アドオンモジュール RS02
Armadillo-IoT 絶縁RS485アドオンモジュール RS02(以降、絶縁 RS485アドオンモジュールと記載します)は、電気的に絶縁された RS422/RS485 のシリアルポートが 1 ポート登載されています。絶縁 RS485アドオンモジュールのシリアルポートのデバイスドライバは、TTYデバイスとして実装されているためTTYデバイスファイルから制御を行うことができます。
対応するTTYデバイスファイルを次に示します。
| |
---|
絶縁 RS485アドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
6.14.1. RS422/RS485の通信設定を変更する
TTYデバイスのRS485設定は自動的に有効化されます。
変更が可能なRS485設定と、自動的に有効化された場合の初期値を表6.11「RS485設定と初期値」に示します。flagsは各ビットごとの論理和を示します。
表6.17 RS485設定と初期値 設定 | 説明 | 初期値 |
---|
flags | ENABLED(bit0) |
0: RS485無効
1: RS485有効
| 1 | RTS_ON_SEND(bit1) |
0: データ送信時のRTS(Driver Enable)がLow
1: データ送信時のRTS(Driver Enable)がHigh
| 1 | RTS_AFTER_SEND(bit2) |
0: データ非送信時のRTS(Driver Enable)がLow
1: データ非送信時のRTS(Driver Enable)がHigh
| 0 | RX_DURING_TX(bit4) |
0: 半二重通信
1: 全二重通信
| 0 | delay_rts_before_send | 送信前遅延時間(ミリ秒) | 0 | delay_rts_after_send | 送信後遅延時間(ミリ秒) | 0 |
| |
---|
flagsのRTS_ON_SENDとRTS_AFTER_SENDは初期値を変更しないでください。変更した場合はデータ送信を行うことができなくなります。
|
| |
---|
RS485が有効化されたTTYデバイスをコンソールとして利用することはできません。
|
RS485設定は、アプリケーションプログラムまたは、Linuxカーネル起動オプションで変更することができます。
アプリケーションプログラムの作成方法については、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/serial/serial-rs485.txt )を参照してください。
Linux カーネル起動オプションでは、次のオプション指定子でRS485設定を行います。
表6.18 Linuxカーネル起動オプションからのRS485設定 オプション指定子 | 説明 |
---|
imx.rs485_uart7= |
UART7(ttymxc6)のRS485設定を指定します。
|
RS485設定のフォーマットは次の通りです。
例として、RS485設定を全二重通信にする場合は、保守モードで起動してから次のようにコマンドを実行してください。
6.15. Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00
Armadillo-IoT 絶縁デジタル入出力/アナログ入力アドオンモジュール DA00(以降、絶縁 IO アドオンモジュールと記載します)は、電気的に絶縁されたデジタル入力2 ポート、デジタル出力 2 ポートと 0~5V のアナログ入力 2 ポートを追加することができます。
絶縁 IO アドオンモジュールのデジタル入出力のデバイスドライバは GPIO、アナログ入力のデバイスドライバは IIO(Industrial I/O) デバイスとして実装しています。
入出力ポートと、GPIO クラスディレクトリの対応を表6.19「入出力ポートとGPIO クラスディレクトリ」に示します。IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。
表6.19 入出力ポートとGPIO クラスディレクトリ ポート | GPIO クラスディレクトリ |
---|
デジタル出力 1 | /sys/devices/addon/DO1_INTF1 | デジタル出力 2 | /sys/devices/addon/DO2_INTF1 | デジタル入力 1 | /sys/devices/addon/DI1_INTF1 | デジタル入力 2 | /sys/devices/addon/DI2_INTF1 |
| |
---|
絶縁 IO アドオンモジュールが接続されているとき、Linuxカーネルの起動ログに次のように出力されます。
|
GPIOクラスディレクトリ以下のvalueファイルに値を書き込むことによって、出力状態を設定することができます。"0"は開放、"1"は短絡を表わします。
デジタル出力 1を開放に設定する例を次に示します。
GPIOクラスディレクトリ以下のvalueファイルから値を読み出すことによって、入力状態を取得することができます。"0"はGND_ISOとの短絡。"1"は開放または3.15V以上印加を表わします。
デジタル入力 1の状態を取得する例を次に示します。
/sys/bus/iio/devices/iio:device1/ ディレクトリ以下のファイルから入力電圧を算出することができます。
| |
---|
IIO デバイスは、デバイスを認識した順番で iio:deviceN (N は'0'からの連番)となります。IIO デバイスは、IIOデバイス名から特定することができます。絶縁 IO アドオンモジュールに搭載しているADコンバーターの IIO デバイス名は "mcp3202"です。
|
ADコンバータへの入力電圧は、AD変換値と最小入力電圧変動から算出する事ができます。
/sys/bus/iio/devices/iio:device1/ ディレクトリ以下にある、入力電圧の算出に必要なファイルを次に示します。
表6.20 入力電圧の算出に必要なファイル ファイル | 説明 |
---|
in_voltage0_raw | シングルエンド入力 CH0のAD変換値 | in_voltage1_raw | シングルエンド入力 CH1のAD変換値 | in_voltage_scale | シングルエンド入力の最小入力電圧変動 | in_voltage0-voltage1_raw | 疑似差動入力のAD変換値 | in_voltage-voltage_scale | 疑似差動入力の最小入力電圧変動 |
シングルエンド入力 CH0への入力電圧を算出する例を次に示します。
図6.43「ADコンバーターへの入力電圧を取得する」の例では、シングルエンド入力 CH0への入力電圧は、2.5V (2048 × 1.220703125 [mV])である事がわかります。
| |
---|
awk コマンドを利用して、次のように電源電圧を表示することができます。
|
| |
|