Armadillo標準ガイド ハードウェア拡張編

~組み込みLinuxの導入から製品化まで~


目次

1. はじめに
1.1. 対象読者
1.2. 表記について
1.2.1. コマンド入力例
1.2.2. アイコン
1.3. サンプルソースコード
1.4. 困った時は
1.5. お問い合わせ先
1.6. 商標
1.7. ライセンス
1.8. 謝辞
2. 注意事項
3. ハードウェア機能をカスタマイズする
3.1. Device Treeのカスタマイズ
3.1.1. Device Treeとは
3.1.2. Device Treeの記述
3.2. カーネルイメージのカスタマイズ
3.3. DTB・イメージをビルドする
4. UART(シリアルインターフェース)の活用
4.1. UARTとは
4.2. コンソールに使用するUARTを変更する
4.2.1. ブートローダーのコンソールに使用するUARTを変更する
4.2.2. Linuxのコンソールに使用するUARTを変更する
5. I2Cデバイスの活用
5.1. I2Cとは
5.2. A/Dコンバーター(PCF8591)を使用する
5.2.1. 接続方法
5.2.2. 対応カーネルイメージの作成
5.2.3. 使用例
5.2.4. プロトコル
5.3. I/Oエクスパンダー(PCF8574)を使用する
5.3.1. 接続方法
5.3.2. 対応カーネルイメージの作成
5.3.3. 使用例
5.3.4. プロトコル
5.4. 温度湿度センサー(HDC1080)を使用する
5.4.1. 接続方法
5.4.2. 対応カーネルイメージの作成
5.4.3. 使用例
5.4.4. プロトコル
5.5. VOCsセンサー(CCS811)を使用する
5.5.1. 接続方法
5.5.2. 対応カーネルイメージの作成
5.5.3. 使用例
5.5.4. プロトコル
6. SPIデバイスの活用
6.1. SPIとは
6.2. A/Dコンバーター(MCP3204)を使用する
6.2.1. 接続方法
6.2.2. 対応カーネルイメージの作成
6.2.3. 使用例
6.2.4. プロトコル
7. 1-Wireデバイスの活用
7.1. 1-Wireとは
7.2. 温度センサー(DS18B20)を使用する
7.2.1. 接続方法
7.2.2. 対応カーネルイメージの作成
7.2.3. 使用例
7.2.4. プロトコル
8. CANの活用
8.1. CANとは
8.2. CANを使用する
8.2.1. 接続方法
8.2.2. 対応カーネルイメージの作成
8.2.3. CAN通信プログラムの準備
8.2.4. 使用例
A. Linux カーネルサポートデバイス情報
A.1. 加速度センサー
A.2. A/D コンバーター
A.3. 化学センサー
A.4. D/A コンバーター
A.5. 周波数シンセサイザ
A.6. ジャイロスコープ
A.7. ヘルスセンサー
A.8. 湿度センサー
A.9. 慣性測定センサー
A.10. 照度センサー
A.11. 磁力計センサー
A.12. デジタルポテンショメーター
A.13. ポテンショスタット
A.14. 気圧センサー
A.15. 距離センサー
A.16. 温度センサー
A.17. ファン速度コントローラ
A.18. 電源モニタ

図目次

1.1. クリエイティブコモンズライセンス
3.1. armadillo-640-i2c4.dtsi (I2C使用ピン設定部分)
3.2. armadillo-640_multiplex抜粋
3.3. MUXの内部構成
3.4. PADの内部構成
3.5. PAD設定値のフォーマット
3.6. armadillo-640-i2c4.dtsi (I2Cバスノード部分)
3.7. armadillo-640-i2c4.dtsi (I2Cスレーブデバイスノード部分)
3.8. armadillo-640-i2c4.dtsi (全体)
3.9. armadillo-640.dts
4.1. UARTの接続方法
4.2. ハードウェアフロー制御の接続方法
4.3. RS232Cへの変換
4.4. UARTプロトコル(データビット数8、ストップビット数1、パリティビットなし)
4.5. デフォルトコンフィギュレーション適用
4.6. menuconfigの実行
4.7. menuconfig
4.8. ブートローダーをビルド
4.9. ブートローダーイメージ書き換え
4.10. 再起動
4.11. ブートパラメータの設定
5.1. I2Cの接続方法
5.2. 複数のスレーブを接続する場合
5.3. I2Cの通信フォーマット
5.4. 複数バイトの連続送受信
5.5. アドレスバイト
5.6. I2Cの波形
5.7. I2C接続A/Dコンバーター回路図
5.8. armadillo-640-i2c4.dtsi
5.9. armadillo-640.dts
5.10. menuconfigの実行
5.11. menuconfig
5.12. コマンド実行例
5.13. PCF8591 通信フォーマット(書き込み)
5.14. PCF8591 通信フォーマット(D/A出力値書き込み)
5.15. PCF8591 通信フォーマット(読み出し)
5.16. PCF8591 アドレスバイト
5.17. PCF8591 コントロールバイト
5.18. PCF8591 データバイト
5.19. I2C接続I/Oエクスパンダー回路図
5.20. armadillo-640-i2c4.dtsi
5.21. armadillo-640.dts
5.22. menuconfigの実行
5.23. menuconfig
5.24. GPIOクラスディレクトリ作成コマンド実行例
5.25. 出力コマンド実行例
5.26. 入力コマンド実行例
5.27. PCF8574 通信フォーマット(書き込み)
5.28. PCF8574 通信フォーマット(読み出し)
5.29. PCF8574 アドレスバイト
5.30. PCF8574 データバイト
5.31. I2C接続温度湿度センサー回路図
5.32. armadillo-640-i2c4.dtsi
5.33. armadillo-640.dts
5.34. menuconfigの実行
5.35. menuconfig
5.36. コマンド実行例
5.37. 湿度の計算
5.38. 温度の計算
5.39. HDC1080 アドレスバイト
5.40. HDC1080 通信フォーマット(読み出し)
5.41. HDC1080 通信フォーマット(書き込み)
5.42. HDC1080 コンフィグレーションレジスタ
5.43. I2C接続VOCsセンサー回路図
5.44. armadillo-640-i2c4.dtsi
5.45. armadillo-640.dts
5.46. menuconfigの実行
5.47. menuconfig
5.48. コマンド実行例
5.49. CCS811 アドレスバイト
5.50. CCS811 通信フォーマット(STATUS読み出し)
5.51. CCS811 通信フォーマット(ALG_RESULT_DATA読み出し)
5.52. CCS811 STATUSレジスタ
6.1. SPIの接続方法
6.2. 複数のスレーブを接続する場合
6.3. SPIモードと波形
6.4. SPI接続A/Dコンバーター回路図
6.5. armadillo-640-ecspi1.dtsi
6.6. armadillo-640.dts
6.7. menuconfigの実行
6.8. menuconfig
6.9. コマンド実行例
6.10. MCP3204通信フォーマット
7.1. 1-Wireの接続方法
7.2. 複数のスレーブを接続する場合
7.3. 1-Wireプロトコル(書き込みスロット)
7.4. 1-Wireプロトコル(読み出しスロット)
7.5. 1-Wireプロトコル
7.6. 1-Wire接続温度センサー回路図
7.7. armadillo-640-w1.dtsi
7.8. armadillo-640.dts
7.9. menuconfigの実行
7.10. menuconfig
7.11. コマンド実行例
7.12. コマンド実行例(Hardware Monitoring)
7.13. DS18B20 Temperature Registerフォーマット
8.1. CANの接続方法
8.2. 3つ以上のノードの接続方法
8.3. CANプロトコル(データフレーム)
8.4. CANプロトコル(リモートフレーム)
8.5. CANトランシーバー回路図
8.6. CAN接続図
8.7. armadillo-640-can2.dtsi
8.8. armadillo-640.dtsにincludeを追記
8.9. menuconfigの実行
8.10. menuconfig
8.11. can-utilsのインストール
8.12. CAN信速度設定
8.13. CANを有効化
8.14. candump実行開始
8.15. cansendでのメッセージ送信
8.16. candumpでのメッセージ受信結果
8.17. cangenでの連続メッセージ送信
8.18. candumpでの連続メッセージ受信結果

表目次

1.1. 表示プロンプトと実行環境の関係
1.2. コマンド入力例での省略表記
3.1. PAD設定値の詳細
5.1. I2Cモード一覧
5.2. PCF8591のデータバイト
5.3. PCF8574のデータバイト
5.4. HDC1080のレジスタ
5.5. CCS811のレジスタ
6.1. SPIモード
6.2. MCP3204チャンネル指定
7.1. DS18B20内蔵レジスタ
7.2. DS18B20温度センサー分解能
8.1. CANプロトコルフレーム
A.1. Linux カーネルがサポートする加速度センサー
A.2. Linux カーネルがサポートするA/D コンバーター
A.3. Linux カーネルがサポートする化学センサー
A.4. Linux カーネルがサポートするD/A コンバーター
A.5. Linux カーネルがサポートする周波数シンセサイザ
A.6. Linux カーネルがサポートするジャイロスコープ
A.7. Linux カーネルがサポートするヘルスセンサー
A.8. Linux カーネルがサポートする湿度センサー
A.9. Linux カーネルがサポートする慣性測定センサー
A.10. Linux カーネルがサポートする照度センサー
A.11. Linux カーネルがサポートする磁力計センサー
A.12. Linux カーネルがサポートするデジタルポテンショメーター
A.13. Linux カーネルがサポートするポテンショスタット
A.14. Linux カーネルがサポートする気圧センサー
A.15. Linux カーネルがサポートする距離センサー
A.16. Linux カーネルがサポートする温度センサー
A.17. Linux カーネルがサポートするファン速度コントローラ
A.18. Linux カーネルがサポートする電源モニタ