「Intel Edison Kit for Arduino Hardware Guide」を日本語で読んでみる

はじめに

Intel Corporationが送り出したIntel Edison Compute Moduleと同時にリリースされた専用ボードのひとつにArduino互換の「Intel Edison Board for Arduino」があります。Arduino向けの資産を受け継ぐことができる設計であり、多くのユーザーがいるのではないかと思います。

「Intel Edison Board for Arduino」には同時にリリースされた「Intel Edison Breakout Board」の他、現状存在している拡張ボード/ベース・ボードにはSparkFun Electronicsの「SparkFun Block for Intel Edisonシリーズ」、スイッチ・サイエンスの「スイッチサイエンス版Eaglet (MFTバージョン)」、ランニングエレクトロニクスの「FRISKケースに入るEdison用ベース基板 Henry」、インテル株式会社による「試作版 Eaglet」などがあります※1が、これらよりもとても多くの機能を搭載しているのが、今回取り上げる「Intel Edison Board for Arduino」です。

Arduino IDEから簡易にIntel Edison Compute Moduleを使用するために設計されたこの拡張ボードは、その一方でArduino IDEから離れてLinux環境から直接GPIOなどにアクセスする際に必要とする手順は、他のボードと比較して非常に複雑です。Arduino IDEが抽象化していたすべてを手動で扱うことになるからです。この手順やボードをより活用するための情報を提供するドキュメントに「Intel® Edison Kit for Arduino* Hardware Guide / 331191-007」があります。

このドキュメントにはこのドキュメントでしか得られない情報がいろいろとあるのですが、現時点では英語版しか存在していません。そこで、今回は私の視点、私の理解で読んだ内容を元に日本語で書き起こした同ドキュメントを「Intel Edison Kit for Arduino / ハードウェア・ガイド」として公開してみることにします。

該当ドキュメントはダウンロード時に特にライセンスの確認がなく、該当ドキュメントの文頭にある宣言文を読む限り、Intelのライセンス上も問題がなさそうだと思われる(転載と翻訳を禁止するとの明示文がない)ため、参考にはなるかと思い公開するものです。

お願い

もしもIntelの関係者で、私がこの日本語ドキュメントを公開することが何らかのライセンスや法的問題があるとお考えであるならば、メールにてご連絡をいただければと思います。その際は、私がメールの送付主がIntel関係者であることを認識できるようにIntel社内からメールを送信し、所属・肩書き等を添えてください。

著作権等

英語版の資料をベースにしているこの日本語ドキュメントはIntelの著作権が及ぶ範囲内にあります。その上で、この日本語ドキュメントには“さかきけい”の著作権が発生しています。“さかきけい”はすべての著作権法上の権利を留保します(詳しくは「ご利用上の注意とお願い」を参照ください)。

免責の表明

この日本語ドキュメントはIntel Corporationが公開している「Intel® Edison Kit for Arduino* Hardware Guide / 331191-007」に記載されている情報を元に、“さかきけい”の理解で作成したものです。このためIntel Corporationには何らこの日本語ドキュメントに対する責任はありませんので、この日本語ドキュメントに関連する問い合わせをIntelに対して行うことを禁止します。

また、この日本語ドキュメントを作成した“さかきけい”も何ら責任を負いません。この日本語ドキュメントの内容は、利用者自身の責任においてのみ使用することができます。

使用上の注意

  • Intelによる法的な意味合いを持つと考えられる記述は英文のままとしています。これは、日本語にすることで意味合いが変化することを防ぐ目的のものです。しかし、その部分は英語原文に付属する部分であることを前提としなければなりません。したがって、本日本語ドキュメントではなく、文脈としては原書に付属することになります。本日本語ドキュメントにおいては、Intelが免責を宣言する部分はその通りですが、何らかの権利や許可を与える部分についてはすべて無効であるとご理解ください。※2
  • 複数の英単語によって構成される語は、単語間に「・」を入れて表現しています。例:ルート・ファイル・システム※3
  • 原則として単語末の長音記号「ー」は省略しない方針で編集しています。例:プロセッサー※4
  • 気づいたTypoや編集ミスなどは明確であると考えられる場合に若干修正しています。
  • 日本語での記述におかしいと思われる個所がある場合には原書をあたってください。
  • 技術的などの理由で記載内容にわからない事項がある場合には別途調べてください(“さかきけい”に質問のメールを送るのはご遠慮ください※5)。
  • 明らかな誤訳がある場合には具体的なご指摘をメールでお知らせいただけると助かります。
  • 記述内容に誤りがある場合にもお知らせいただけると嬉しく思います。ただし、原書も間違っている場合には特に日本語ドキュメントを修正することはせずに、訳注を追加するだけとするかもしれません。
  • 前述の内容と被りますが、“さかきけい”は何ら責任や義務を負うものではありません。

文書についてのご指摘をいただける方へのお願い

  • なるべく平坦でかつ理解しやすい程度に周辺情報を含む、日本語でのご指摘をお願いします。特に今回は“さかきけい”の理解の範疇を超えたハードウェアに関する部分のため、従来より多くの問題が存在し、それを理解するための周辺情報も多く必要であることが見込まれます。
  • “さかきけい”の主観において、いただいた情報の適用を行わないことがあることをあらかじめご理解ください。
  • ご連絡をいただける際には、以下の優先度でお願いします:
    1. “さかきけい”へのメール
    2. Facebook経由でのコンタクト
    3. このメモへのコメント

    ただし、このメモへのコメントの場合、大量のスパム・コメントに埋もれて反応が遅くなったり気づかない可能性があります。できる限りメールかFacebookでお願いします。


Intel® Edison Kit for Arduino*

ハードウェア・ガイド
2015年2月
リビジョン 007

ドキュメント番号: 331191-007

Notice: This document contains information on products in the design phase of development. The information here is subject to change without notice. Do not finalize a design with this information.

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.

A “Mission Critical Application” is any application in which failure of the Intel Product could result, directly or indirectly, in personal injury or death. SHOULD YOU PURCHASE OR USE INTEL’S PRODUCTS FOR ANY SUCH MISSION CRITICAL APPLICATION, YOU SHALL INDEMNIFY AND HOLD INTEL AND ITS SUBSIDIARIES, SUBCONTRACTORS AND AFFILIATES, AND THE DIRECTORS, OFFICERS, AND EMPLOYEES OF EACH, HARMLESS AGAINST ALL CLAIMS COSTS, DAMAGES, AND EXPENSES AND REASONABLE ATTORNEYS’ FEES ARISING OUT OF, DIRECTLY OR INDIRECTLY, ANY CLAIM OF PRODUCT LIABILITY, PERSONAL INJURY, OR DEATH ARISING IN ANY WAY OUT OF SUCH MISSION CRITICAL APPLICATION, WHETHER OR NOT INTEL OR ITS SUBCONTRACTOR WAS NEGLIGENT IN THE DESIGN, MANUFACTURE, OR WARNING OF THE INTEL PRODUCT OR ANY OF ITS PARTS.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

Intel software products are copyrighted by and shall remain the property of Intel Corporation. Use, duplication, or disclosure is subject to restrictions stated in Intel’s Software License Agreement, or in the case of software delivered to the government, in accordance with the software license agreement as defined in FAR 52.227-7013.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

The code names presented in this document are only for use by Intel to identify products, technologies, or services in development that have not been made commercially available to the public, i.e., announced, launched, or shipped. They are not “commercial” names for products or services and are not intended to function as trademarks.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature may be obtained by calling 1-800-548-4725 or by visiting Intel’s website at http://www.intel.com/design/literature.htm.

Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details.

Intel, the Intel logo, and Intel Atom are trademarks of Intel Corporation in the United States and other countries.

* Other brands and names may be claimed as the property of others.

Copyright © 2015 Intel Corporation. All rights reserved.

コンテンツ

図一覧

表一覧

改定履歴

リビジョン 詳細 日付
ww32 初期リリース 2014年8月4日
ww34 若干の編集 2014年8月20日
ww36 表2からコラムを削除 2014年9月5日
001 最初の一般公開 2014年9月9日
002 若干の修正 2014年9月15日
003 製品概要とシールド・ピン構成の章を追加 2014年9月18日
004 ソフトウェア・リカバリー・モード、ピン機能の多重制御、およびLED(発光ダイオード)セクションの更新 2014年12月1日
005 シールド・ピン構成のチャプターにおける、gpio214のHighとLowの順序を逆にした。 2014年12月11日
006 若干の修正 2015年1月30日
007 若干の修正 2015年2月5日

1 はじめに

このドキュメントはIntel® Edison Kit for Arduino*のハードウェア・インターフェースについて説明するものです。

このキットには様々なインターフェース・モードで使用することができるように構成することが可能なGPIO、 PWM、 SPI、 I2C、 ADCなど、Arduino* Uno*のシールド・ハードウェアと互換性のために必要な外部の入出力ピンを備えています。このドキュメントはピンで使用することができる機能、ピンの制御と入出力のためにマッピングされたGPIOの詳細、およびLinuxコマンド・ラインのツールによって外部の入出力ピンの機能を正しく操作するための方法について説明します。

1.1 ソフトウェア要件

  • Intel® Edison カーネル および BSP
  • Intel® Edison Compute Module上のLinuxコマンド・ラインへのアクセス

1.2 用語定義

用語 定義
PWM パルス幅変調
GPIO 汎用入出力
ADC アナログ・デジタル変換器
SPI シリアル・ペリフェラル・インターフェース
I2C インターインテグレーテッド・サーキット※6

1.3 参照

表1 製品固有ドキュメント

参照 名称 番号/場所
331188 Intel® Edison Board Support Package User Guide  
331189 Intel® Edison Compute Module Hardware Guide  
331190 Intel® Edison Breakout Board Hardware Guide  
331191 Intel® Edison Kit for Arduino* Hardware Guide (このドキュメント)
331192 Intel® Edison Native Application Guide  
329686 Intel® Galileo and Intel® Edison Release Notes  
[GSG] Intel® Edison Getting Started Guide W: http://www.intel.com/support/edison/sb/CS-035336.htm
M: http://www.intel.com/support/edison/sb/CS-035344.htm
L: http://www.intel.com/support/edison/sb/CS-035335.htm
331438 Intel® Edison Wi-Fi Guide  
331704 Intel® Edison Bluetooth* Guide  

2 製品概要

Intel® Edison Kit for Arduino*における20本のArduino*互換シールドのための入出力ピンは、IO0からIO19と番号づけられます(図1)。すべてのピンは基本的なGPIOの機能をサポートします。また、いくつかのピンはPWM、ADC、SPIまたはI2C機能をサポートします。Intel® Edison Kit for Arduino*では、同一ピンで使用できる異なる機能の選択は、SoCピン制御インターフェースと多重化制御のために特化したGPIO出力信号を使用することで実現しています。以後のセクションでは、以下のように広範に分類することができるそれぞれの機能が、Intel® Edison Compute Moduleにおけるそれぞれの使用可能なGPIOピンに、どのように割り当てられているのかを詳しく説明します(図1を参照ください):

  • 外部GPIO:外部のシールド・ピンを経由してデジタル信号の入出力をするために使用しています。
  • ピンの多重化制御:特定のシールド・ピンで使用可能な異なる機能を選択するために使用しています。
  • ピン・バッファー(レベル変換)方向制御:特定のシールド・ピンにおいて入力または出力のためのバッファーを構成するために使用しています。
  • ピンのプルアップ抵抗の制御:特定のシールド・ピンにおいてプルアップ抵抗を有効にするか、または無効にするかを選択するために使用しています。

シールド・ピンがサポートする機能のいずれかを使用するためには、最初にそのピンに適用される多重化、バッファーの方向、およびプルアップ抵抗の制御を構成することが必要です。

図1 Arduino* Uno*のピン配置※7

図1 Arduino* Uno*のピン配置

2.1 シールド・ピンとGPIOのマッピング

表2はシールドの入出力ピンにおける、GPIOおよびPWMの(Linuxにおける)ピン番号に関するマッピングについて説明します。以下の詳細が含まれています:

  • シールド・ピン:Arduino* Uno*ピン番号の割り当てスキームに沿ったデジタル入出力ピンの番号。
  • GPIO (Linux):Linuxにおいて割り当てられたピン番号。
  • 多重化機能:このシールド・ピンで使用可能な他の信号は、回路図に掲載されています。

表2 シールド・ピンのGPIOマッピング

シールド・ピン GPIO (Linux) PWM (Linux) 多重化機能 注記
IO0 130   UART1_RXD  
IO1 131   UART1_TXD  
IO2 128   UART1_CTS 注記1
IO3 12 0 PWM0 注記2
IO4 129   UART1_RTS 注記1
IO5 13 1 PWM1 注記2
IO6 182 2 PWM2 注記2
IO7 48    
IO8 49    
IO9 183 3 PWM3 注記2
IO10 41 ?? SPI_2_SS1  
I2S_2_FS 注記1
PWM4_OUT 注記2
IO11 43 ?? SPI_2_TXD  
I2S_2_TXD 注記1
PWM5_OUT 注記2
IO12 42   SPI_2_RXD  
I2S_2_RXD 注記1
IO13 40   SPI_2_CLK  
I2S_2_CLK 注記1
IO14 44   AIN0  
IO15 45   AIN1  
IO16 46   AIN2  
IO17 47   AIN3  
IO18 14   AIN4  
I2C_6_SDA  
IO19 165   AIN5  
I2C_6_SCL  
  1. いくつかの付加機能(I2SやUARTフロー制御のような)はある特定のSoCピンで使用可能です。しかし、それらは現在のところArudinoライブラリーによってサポートされていません。しかし、Linuxからはこれらの機能を使用することができます。
  2. PWM swizzlerに依存します。SoCは4本のPWMピンだけを提供します。ベースボードの“PWM swizzler”と名付けられた、ジャンパー・ピン・マトリックスによって、これらの4本のピンが通常PWMとして使用する6本のシールドのヘッダー・ピンのすべてにサブセットとして接続できます。工場出荷時には、IO3、IO5、IO6およびIO9が、前述のように4本の使用可能なSoCのPWMピンに接続されています。IO10またはIO11に接続するために、手動でこれらを変更することができます。

2.2 ピン機能の多重化制御(概要)

Arduino*ヘッダー上のすべてのGPIOピンに対し、ピンを使用する前に設定をすることをいくつかの内部GPIOが必要とします。これは一般に、出力有効化、プルアップ有効化、およびモードを設定するのと同程度に簡単です。しかし、いくつかのピンは、SPI、PWM、I2Cなどの追加的な機能を持っています。このため、これらのピンを使用可能にするためには追加の多重化制御が必要です。

表3に、Arduino*ヘッダー・ピンに与えられた多重化ピンの影響のすべてをプログラマーが容易に把握できるようにしたものを示します。表の関連する項目に背景色を割り当てています。例えば、青色の項目はピン多重化のピンとピン・モードの間の関係を示すことを意図しています。この表は、回路図のピン番号などの追加的な情報を含む以下のものよりも詳細な表の概要です。この概要化した表は、ほとんどの目的において必要十分でしょう。

表3 Arduino*ピンの多重化とピン・モードの設定※8

  Linux
GPIO
ピン
GPIOピン多重化 SoCピン・モード 出力有効化
(high = 出力)
プルアップ
有効化
Linuxピン 0 (low) 1 (high) 0 1 Linux Linux
IO0 130       GPIO UART 248 216
IO0 130       GPIO UART 248 216
IO1 131       GPIO UART 249 217
IO2 128       GPIO UART 250 218
IO3 12       GPIO PWM 251 219
IO4 129       GPIO UART 252 220
IO5 13       GPIO PWM 253 221
IO6 182       GPIO PWM 254 222
IO7 48       GPIO   255 223
IO8 49       GPIO   256 224
IO9 183       GPIO PWM 257 225
IO10 41 263 PWM 240を参照 GPIO I2SまたはSPI 258 226
    240 GPIOまたはI2S GPIOまたはSPI_FS        
IO11 43 262 PWM 241を参照 GPIO I2SまたはSPI 259 227
    241 GPIOまたはI2S GPIOまたはSPI TXD        
IO12 42 242 GPIOまたはI2S GPIOまたはSPI RXD GPIO I2SまたはSPI 260 228
IO13 40 243 GPIOまたはI2S GPIOまたはSPI CLK GPIO I2SまたはSPI 261 229
IO14 (A0) 44 200 GPIO A0 GPIO   232 208
IO15 (A1) 45 201 GPIO A1 GPIO   233 209
IO16 (A2) 46 202 GPIO A2 GPIO   234 210
IO17 (A3) 47 203 GPIO A3 GPIO   235 211
IO18 (A4) 14 204 GPIOまたはI2C SDA A4 GPIO I2C-6 236 212
IO19 (A5) 165 205 GPIOまたはI2C SCL A5 GPIO I2C-6 237 213

注記: すべての多重化の設定を開始する前に、214(TRI_STATE_ALL)ピンにHIGHを設定し、変更すべきすべての設定を行い、そして214ピンへLOWを設定します。

2.3 ピン機能の多重化制御(詳細)

表4にピン多重化制御に特化したGPIOの出力を示します。GPIOの出力に0または1(lowまたはhigh)を出力するように設定することで、シールドの入出力で決められた、異なる機能を選択することができます。さらに、SoCのGPIOピンのうち、いくつかは内部の多重化オプションを備えています。これらは“SoCピン・モード”として示します。

現在、これらは必要なピンモードを、対応するSoC GPIOピンNに/sys/kernel/debug/gpio_debug/gpioN/current_pinmux経由で“mode[0/1/2/…]”を設定することで構成します。

表4 ピン機能の多重化制御

シールド・ピン GPIOピンの多重化 SoCのピン・モード
Pin Linux 0 (Low) 1 (High) 電源ONデフォルト ピン Linux 0 1 2
IO0         GP130 130 GPIO UART  
IO1         GP131 131 GPIO UART  
IO2         GP128 128 GPIO UART  
IO3         GP12 12 GPIO PWM  
IO4         GP129 129 GPIO UART  
IO5         GP13 13 GPIO PWM  
IO6         GP182 182 GPIO PWM  
IO7         GP48 48 GPIO    
IO8         GP49 49 GPIO    
IO9         GP183 183 GPIO PWM  
IO10 U34_ IO1.7 263 PWM4_OUT GP41 プル・ダウン入力 GP41 41 GPIO I2S

 
SSP5_FS_1
U16_ IO1.0 240 GP41 SSP5_FS_1 プル・アップ入力1 GP111 111 GPIO SPI
IO11 U34_ IO1.6 262 PWM5_OUT GP43 プル・ダウン入力 GP43 43 GPIO I2S

 
SSP5_TXD GP115 115 GPIO SPI
U16_ IO1.1 241 GP43 SSP5_TXD プル・アップ入力 1
IO12 U16_ IO1.2 242 GP42 SSP5_RXD プル・アップ入力 1 GP42 42 GPIO I2S  
GP114 114 GPIO SPI
IO13 U16_ IO1.3 243 GP40 SSP5_CLK プル・アップ入力 1 GP40 40 GPIO I2S  
GP109 109 GPIO SPI
IO14 U17_ IO0.0 200 GP44 A0 プル・アップ入力 1 GP44 44 GPIO    
IO15 U17_ IO0.1 201 GP45 A1 プル・アップ入力 1 GP45 45 GPIO    
IO16 U17_ IO0.2 202 GP46 A2 プル・アップ入力 1 GP46 46 GPIO    
IO17 U17_ IO0.3 203 GP47 A3 プル・アップ入力 1 GP47 47 GPIO    
IO18 U17_ IO0.4 204 GP14 A4 プル・アップ入力 1 GP14 14 GPIO I2C-6 I2C-8
I2C6_SCL GP28 28 GPIO
IO19 U17_ IO0.5 205 GP165 A5 プル・アップ入力 1 GP165 165 GPIO I2C-6 I2C-8
I2C6_SDA GP27 27 GPIO
  1. これらのピンは電源ONでプルアップ入力になります。これは多重化スイッチを効果的に有効にできます(例えば、多重化機能1を選択します)。

2.4 GPIO割り込みのサポート

Intel® EdisonプラットフォームのすべてのGPIO入力は割り込み対応で、さらにすべての割り込みタイプをすべての入力でサポートします。表5にそれぞれのピンがサポートする、具体的なエッジおよびレベル・トリガーの割り込みタイプをを示します。

表5 GPIO割り込みのサポート

シールド・ピン GPIO エッジ・トリガー レベル・トリガー 1
Linux 立ち上がり 立ち下がり 両方 Low High
IO0 130 Y Y Y Y Y
IO1 131 Y Y Y Y Y
IO2 128 Y Y Y Y Y
IO3 12 Y Y Y Y Y
IO4 129 Y Y Y Y Y
IO5 13 Y Y Y Y Y
IO6 182 Y Y Y Y Y
IO7 48 Y Y Y Y Y
IO8 49 Y Y Y Y Y
IO9 183 Y Y Y Y Y
IO10 41 Y Y Y Y Y
IO11 43 Y Y Y Y Y
IO12 42 Y Y Y Y Y
IO13 40 Y Y Y Y Y
IO14 44 Y Y Y Y Y
IO15 45 Y Y Y Y Y
IO16 46 Y Y Y Y Y
IO17 47 Y Y Y Y Y
IO18 14 Y Y Y Y Y
IO19 165 Y Y Y Y Y
  1. レベル・トリガー割り込みは、GPIO sysfsインターフェースの制限のため、Arduino*ライブラリーではサポートしていません。

2.5 その他のGPIO

Arduinoシールドとの互換性のために、その他のプラットフォーム機能として使用するGPIOを表6に示します。

表6 その他のGPIO

機能 GPIOピン GPIO Linux 方向 電源ONデフォルト 1 初期設定
TRI_STATE_ALL U17_IO1.6 214 出力 プル・アップ入力*  
SHLD_RESET U17_IO1.7 215 出力 プル・アップ入力*  
SHLD_RESET U17_IO0.7 207 入力 プル・アップ入力*  
  1. これらのピンは電源ONでプル・アップ入力になります。この状態においてアウトプットでHighをセットするのと同じ効果があります。

2.6 ピンの方向とプルアップ制御

Intel® Edison Kit for Arduino*のほとんどのシールド・ピンは、入力または出力の方向を設定する必要があるバッファー/レベル変換があり、さらに外部の47 kΩのプルアップ/プルダウン抵抗をオプションで有効にできます。これらは専用のGPIO出力によって制御します。その内容を表7に示します。出力としてシールド・ピンを設定する際には、SoC GPIOピンの方向を出力に設定する前に、出力のためのバッファーを設定することをお勧めします。外部のプルアップ/プルダウン抵抗を切断するためには、それらを操作するGPIOをハイインピーダンス入力に設定することが必要です。

PCAL9555A GPIOエキスパンダーからのGPIO信号が、デフォルトでGPIOピンに接続される内部の100 kΩのプルアップ抵抗を備えていることにも注意が必要です。これらは、多くの場合にハイインピーダンス入力としてそれらのピンを設定することで、無効にする必要があります。

表7 ピンの方向とプルアップ制御

シールド・ピン 出力有効化GPIO (High = 出力) プルアップ有効化GPIO
ピン Linux 電源ONデフォルト 1 ピン Linux 電源ONデフォルト 2
IO0 U34_ IO0.0 248 プルダウン入力 U39_IO0.0 216 プル・アップ入力
IO1 U34_ IO0.1 249 プルダウン入力 U39_IO0.0 217 プル・アップ入力
IO2 U34_ IO0.2 250 プルダウン入力 U39_IO0.0 218 プル・アップ入力
IO3 U34_ IO0.3 251 プルダウン入力 U39_IO0.0 219 プル・アップ入力
IO4 U34_ IO0.4 252 プルダウン入力 U39_IO0.0 220 プル・アップ入力
IO5 U34_ IO0.5 253 プルダウン入力 U39_IO0.0 221 プル・アップ入力
IO6 U34_ IO0.6 254 プルダウン入力 U39_IO0.0 222 プル・アップ入力
IO7 U34_ IO0.7 255 プルダウン入力 U39_IO0.7 223 プル・アップ入力
IO8 U34_ IO1.0 256 プルダウン入力 U39_IO0.7 224 プル・アップ入力
IO9 U34_ IO1.1 257 プルダウン入力 U39_IO0.7 225 プル・アップ入力
IO10 U34_ IO1.2 258 プルダウン入力 U39_IO0.7 226 プル・アップ入力
IO11 U34_ IO1.3 259 プルダウン入力 U39_IO0.7 227 プル・アップ入力
IO12 U34_ IO1.4 260 プルダウン入力 U39_IO0.7 228 プル・アップ入力
IO13 U34_ IO1.5 261 プルダウン入力 U39_IO0.7 229 プル・アップ入力
IO14 U16_ IO0.0 232 プルダウン入力 U17_ IO1.0 208 プル・アップ入力
IO15 U16_ IO0.1 233 プルダウン入力 U17_ IO1.1 209 プル・アップ入力
IO16 U16_ IO0.2 234 プルダウン入力 U17_ IO1.2 210 プル・アップ入力
IO17 U16_ IO0.3 235 プルダウン入力 U17_ IO1.3 211 プル・アップ入力
IO18 U16_ IO0.4 236 プルダウン入力 U17_ IO1.4 212 プル・アップ入力
IO19 U16_ IO0.5 237 プルダウン入力 U17_ IO1.5 213 プル・アップ入力
  1. これらのピンは電源ONによって、外部プル・ダウン入力が設定されます。これはレベル変換のための入力方向の選択を効果的に行えます。
  2. これらのピンは電源ONによって、内部プル・アップ入力が設定されます。これはプルアップ(100 kΩ + 47 kΩの直列)の有効化を効果的に行えます。

3 高レベル機能の詳細

Intel® Edison Kit for Arduino*拡張ボードは、Uno R3のために設計されたArduinoシールドに対してハードウェアとソフトウェアがピン互換であるように設計されています。0~13のデジタル・ピン(そして、隣接するAREFおよびGNDピン)、0~5のアナログ入力、電源ヘッダー、ICSPヘッダ、UARTポート・ピン(0と1)、これらすべてはArduino Uno R3と同じ位置にあります。これはまた、Arduino 1.0ピン配置としても知られています。さらにIntel® Edison Kit for Arduino*ボードは、micro SD カード・コネクター、UART2と接続されたmicro USBデバイス・ポート、およびmicro USBデバイス・コネクターと専用標準サイズUSB 2.0ホストType-Aコネクターの組み合わせ(メカニカル・マイクロスイッチを経由して選択)を搭載しています。

図2 Intel® Edison Kit for Arduino*のブロック・ダイアグラム

図2 Intel® Edison Kit for Arduino*のブロック・ダイアグラム

3.1 Intel® Edison Kit for Arduino*のヘッダー信号リスト

Intel® Edison Kit for Arduino*のデジタル信号は、入力および出力として構成できます。入力として設定されている際には、GPIOは割り込みをサポートすることができます。Intel® Edison Kit for Arduino*は、1.8 Vの入出力を3ステート出力を備えたデュアル電源バス・トランシーバーSN74LVC1T45を使用して3.3 または 5 Vに変換します。もし、どちらかの給電レールがグラウンドになるなら、両方の出力はトライステートになります。ポートの方向はVCCAを参照します。トランシーバーによる駆動レベルは以下の通りです: 1.8 Vの±4 mA、3.3 Vの±24 mA、5 Vの±32 mA。

注記: 駆動レベルの1.8 Vは参照専用です – Intel® Edison Compute Moduleの駆動レベルに沿ったものです。

表8 Intel® Edison Kit for Arduino*のヘッダー信号リスト

ヘッダー Arduinoピン名 信号機能
電源 N/C 未接続
電源 IOREF シールド入出力の基準電圧(3.3 または 5 Vをボード上のジャンパーで選択)
電源 RESET シールドのリセット(ソフトウェア経由または手動でボタンを押すことで実施)
電源 3.3 V システム 3.3 V 出力
電源 5 V システム 5 V 出力
電源 GND グラウンド
電源 GND グラウンド
電源 VIN システム電源入力(7~15 V)
アナログ A0 アナログ入力またはデジタル入出力
アナログ A1 アナログ入力またはデジタル入出力
アナログ A2 アナログ入力またはデジタル入出力
アナログ A3 アナログ入力またはデジタル入出力
アナログ A4 / SDA アナログ入力、デジタル入出力、またはI2Cデータ(また、デジタル・ヘッダーと接続される)
アナログ A5 / SCL アナログ入力、デジタル入出力、またはI2Cデータ(また、デジタル・ヘッダーと接続される)
デジタル SCL I2Cクロック
デジタル SDA I2Cデータ
デジタル AREF ADCの基準電圧(AREFまたはIOREFをボード上のジャンパーJ8で選択)
デジタル GND グラウンド
デジタル 13 / SCK デジタル入出力、またはSPIクロック
デジタル 12 / MISO デジタル入出力、または SPIデータ受信
デジタル ~11 / MOSI デジタル入出力、SPIデータ送信、またはPWM (PWM swizzlerによって構成される)
デジタル ~10 デジタル入出力、SPI信号選択、またはPWM (PWM swizzlerによって構成される)
デジタル ~9 デジタル入出力、PWM (PWM swizzlerによって構成される)
デジタル 8 デジタル入出力
デジタル 7 デジタル入出力
デジタル ~6 デジタル入出力、PWM (PWM swizzlerによって構成される)
デジタル ~5 デジタル入出力、PWM (PWM swizzlerによって構成される)
デジタル 4 デジタル入出力
デジタル ~3 デジタル入出力、PWM (PWM swizzlerによって構成される)
デジタル 2 デジタル入出力
デジタル 1 / TX → デジタル入出力
デジタル 0 / RX ← デジタル入出力
ICSP MISO SPIデータ受信 (デジタル・ピン12に接続されている)
ICSP 5V システム 5 V 出力
ICSP SCK SPIクロック (デジタル・ピン13に接続されている)
ICSP MOSI SPIデータ送信 (デジタル・ピン11に接続されている)
ICSP RESET シールドのリセット(ソフトウェア経由または押しボタンを手動で実施)
ICSP GND グラウンド

3.2 Intel® Edison Kit for Arduino*のPWM swizzler

PWM出力として構成可能なGPIOが4つ用意されています。PWM機能は以下のとおりです:

  • 以下の方程式でPWM出力周波数とデューティー・サイクルを見積もることができます:※9
    • 対象周波数 ~= 19.2 MHz × Base_unit値 ÷ 256
    • 対象PWMデューティー・サイクル ~= PWM_on_time_divisor ÷ 256

4つのPWMソースはPWM “swizzler”につながっています。このピン・ヘッダーの配置は、4つのPWMソースを6本のArduinoヘッダー・ピンのうちの4本にどのように接続するかを決めるものです。図3にPWM swizzlerを示します。

図3 Intel® Edison Kit for Arduino*のPWM swizzler

図3 Intel® Edison Kit for Arduino*のPWM swizzler

Intel® Edison Compute Moduleの4つのPWMソース(GP12_PWM0、GP13_PWM1、GP182_PWM2、およびGP183_PWM3)を、6つのArduino*ヘッダーのPWMのうちの4つを駆動するために構成することができます。個々の Intel® Edison Kit for ArduinoのPWMは、3つのArduino PWMの1つに接続することができます。例えば、GP12_PWM0は、PWM0_OUT、PWM2_OUT、またはPWM1_OUTに接続することができます。

注記: デフォルトの構成からPWMジャンパーを移動させると、I/Oピンは使用不能になります。

Arduino*の多重化には、2つ目の多重化オプションとしてSPI(またはGPIO)があります。他のPWMには2つ目の多重化オプションはありません。したがって、もし4つのIntel® Edison Compute ModuleのPWMが使用されていて、さらに最初の4つのArduino* PWMピンに接続されていないのであれば、未使用のピンの最初の4つのピンはGPIOとして使用できません。それらはすべての機能を持つことができ、入力または出力をすることができません(表9)。

表9 Intel® Edison Kit for Arduino*のPWM swizzler信号の配置

デジタル・ピン Uno Uno Edison入出力 Edison PWM
11 入出力 PWM(5) GP43 (SSP2_TXD) PWM3
10 入出力 PWM(4) GP41 (SSP2_FS0) PWM3, PWM2
9 入出力 PWM(3) GP183_PWM3 PWM3, PWM2, PWM1
6 入出力 PWM(2) GP182_PWM2 PWM2, PWM1, PWM0
5 入出力 PWM(1) GP13_PWM1 PWM1, PWM0
3 入出力 PWM(0) GP12_PWM0 PWM0

Intel® Edison Kit for Arduino*の工場出荷時のデフォルト・ジャンパーの構成は、GPx_PWMxが結び付けられているデジタル・ピンの3、5、6、および9ピンに割り当てられています。これらのピンは、GPIOまたはPWM出力のいずれかに構成することできます。swizzlerは、4つのIntel® Edison Compute ModuleのPWMの中から表9の最後の項目で示す6つのArduino*ピンに割り当てることができます。例えば、もしPWM0をデジタル・ピンの5に割り当てるなら、デジタル・ピンの3へ接続するために使用可能なIntel® Edison Kit for Arduino*のピンはありません。したがって、このピンには機能を持つことができません。もしそれが出力として駆動されるのであれば、Highを出力します。もし入力として駆動されるのであれば、swizzlerの中で信号を失います。

デフォルトの構成は、DIG3 = GP12_PWM0、DIG5 = GP13_PWM1、DIG6 = GP182_PWM2、そしてDIG9 = GP183_PWM3です。これは、図4が示すようにJ12 1-2、およびJ12 3-4、J11 1-2、およびJ 11 3-4のジャンパーを必要とします。

図4 Intel® Edison Kit for Arduino*上のPWM swizzler

図4 Intel® Edison Kit for Arduino*上のPWM swizzler

3.3 Intel® Edison Kit for Arduino*のアナログ入力

アナログ入力はADS7951というADCを使用します。このデバイスの特徴は以下の通りです:

  • クロック速度 20 MHz
  • 12ビットのアナログ・デジタル変換
  • サンプリング速度 1 MHz
  • 信号対雑音比(SN比) 70 dB
  • 0~3.3 Vまたは5 Vの入力幅(オンボードのJ8ジャンパーでAREFまたはIOREFのいずれかを選択)

アナログ入力はSN74LVC2G53アナログ・スイッチを使用してデジタル入出力と多重化されています。このスイッチは漏話(クロストーク)を防止するためにアナログ入力とデジタル入力の分離を行います。
SN74LVC2G53は入出力をトライステート状態にする抑制ピンを備えています。スイッチは、4.5 V VCCで15 Ωの低オン抵抗※10があります。

3.4 Intel® Edison Kit for Arduino*の信号プルアップ抵抗

アナログおよびデジタル・ピンは外部のプルアップ抵抗を接続するように構成することができます。プルアップ値は47 kΩで固定されています。

3.5 Intel® Edison Kit for Arduino*のUSBインターフェース

Intel® Edison Compute Moduleには1つのUSB 2.0インターフェースがあります。このインターフェースはコードをダウンロードするための主要な手段です。Intel® Edison Compute ModuleはID信号を使用してOTGをサポートするように設計されています。Intel® Edison Kit for Arduino*ボードにはUSB多重化およびホスト・ポートまたはデバイス・ポートとしてUSBインターフェースを構成する外部のスイッチを使用する回路があります。スライド・スイッチSW1は、ホスト・モードとデバイス・モードのいずれかを選択します。スライダーでUSB標準サイズType Aコネクターに切り替えると、Intel® Edison Compute Moduleはホスト・モードになります。micro USB Type Bコネクターに切り替えると、Intel® Edison Compute Moduleはデバイス・モードになります。

注記: USBホスト・モードは常に外部電源アダプターの使用が必要です。

3.6 Intel® Edison Kit for Arduino*の電源供給

Intel® Edison Compute Moduleは低消費電力のデバイスです。通常時200 mA(Wi-Fiによって電波で通信する際は約430 mA(確定値は未定※11))より多くを主電源から使用しません。このため、Intel® Edison Kit for Arduino*は(デバイスとして構成されている時は)USB電源、あるいは外部の電源アダプターからの7~15 Vで動作することができます。

外部電源アダプターからの電源はDC-DCコンバーターへ行き、降圧コンバートで5 Vになります。5 VレールはUSB VBUSレールのあるダイオードORedです。この電源はDC-DCコンバーターで4.4 Vに降圧します。これはEdisonモジュールのVSYS用の安全な範囲の電圧です。VSYSの電圧範囲は3.15~4.5 Vです。これにより、Intel® Edisonデバイスを標準的なリチウムイオン電池で動作させることが可能になります。

オンボードの充電器ICは電源の入力を検出すると入力電源を500 mA(USB micro Bポートに接続されている場合)、またはDC電源ジャックに接続されている場合は最大1 Aのいずれかに制限するように構成します。充電器に100 mAで充電するように設定します。この充電器は、最大4.2 Vを充電電圧とする標準リチウムイオン電池を充電するように設計されています。エンドユーザーには適切なバッテリーを選ぶこと、および充電時に充電池の温度が高くなりすぎないようにすること、過充電を防ぐためにすべての安全措置を取ることに責任があります。

低消費電力のアプリケーション(3.3 Vで動作するシールド)向けに、リチウム・イオン電池(3.0から最大4.3 V)をJ2に取り付け、それによってIntel® Edison Kit for Arduinoに電力を供給し、シールドに対して100 mAの 3.3 Vを供給することができます。

Intel® Edison Kit for Arduino*には電力供給におけるいくつかの課題があります:

  • 5 V DC/DCとVBUS入力がダイオードORingの影響で、シールド・ヘッダーの表示上の5V電源が5 V未満となることがあります。これは、VBUSの電圧は4.4 V(VBUS最小電圧の4.75 Vからダイオード降下の0.3 Vを引いた電圧)と同程度に低くなる場合、外部の電源アダプターの出力が4.7 V未満となる場合です。
  • USBホスト・モードは常に外部電源アダプターの使用を必要とします。

3.7 Intel® Edison Kit for Arduino*の物理寸法

図5に、Intel® Edison Kit for Arduino*ボードの寸法(1/1000 inchおよび[mm])を示します。

図5 Intel® Edison Kit for Arduino*の物理寸法

図5 Intel® Edison Kit for Arduino*の物理寸法

4 Intel® Edison Kit for Arduino*の電源

以下のいずれかの方法を使用してIntel® Edison Kit for Arduino*に電源を供給することができます:

  • J1への外部電源供給;
  • シールド・ヘッダー・ピンVINを経由するDCIN;
  • micro USBコネクターJ16を経由するUSBケーブル; または
  • J2へのリチウムイオン電池の接続。

電源がJ1またはVINに供給される際には、外部電源は7~17 Vの範囲でなければなりません。電源はスイッチング電源を経由して5 Vに変換され、それがシステムに電源として供給されます。この供給は、1 Aを継続的に供給するように設計されています。より高い電流は、多くの電力損失を発生させて、スイッチング電源へ熱的なダメージを与えることがあります。スイッチング電源は内部に短絡保護、および発熱時のシャットダウンによる保護を備えています。エンドユーザーは短絡保護および熱に対する保護をあてにすべきではありません。

図6にIntel® Edison Kit for Arduino*の電力供給ネットワークを示します。

図6 Intel® Edison Kit for Arduino*の電力供給ネットワーク

図6 Intel® Edison Kit for Arduino*の電力供給ネットワーク

5 Vスイッチャーからの電源はダイオードORedを備えたUSBコネクターからの電源です。これはIntel® Edison Kit for Arduino*へUSB電源または外部電源を流すことができる配置です。このレールは、シールド、SDカード・スロット、および4.35 Vスイッチャーが使用します。このレールにおける全電流は最大1 A(継続状態)に制限されるべきです。

Intel® Edison Compute Moduleおよびバッテリー充電器を4.35 Vレールが動作させます。4.3 Vの供給は1 Aを生成するように設計されており、5 Vの供給と同じ保護(熱と短絡)があります。

充電器は4.35 Vレールから最大1 Aを受け入れるように設計されており、100 mAで電池を充電します。充電器は4.35 V入力またはバッテリー(装着するのであれば)を電源とします。暗黙のうちにIntel® Edison Kit for Arduinoの電源として充電器がバッテリーを充電する残りのすべての電流を使用します。

低電圧のシステムには、Intel® Edison Compute Moduleは3.3 Vの250 mAをシールドに供給することができます。ユーザーはIntel® Edison Kit for Arduino*の3.3 Vレールからの電流を制限すべきです。より高い電流によって3.3 V出力は引きずられ(IRの損失のため)、さらにIntel® Edison Compute Moduleの過剰な発熱を引き起こす可能性があります。

Intel® Edisonは低消費電力のデバイスです。通常の消費電力は200 mAです。Wi-Fiによる送信バーストによって、電流はミリ秒単位で600 mAに届くことがあります。Intel® Edison Kit for Arduino*の電流の合計(再充電、SDカード、およびシールドの電源)は500 mAの仕様の制限を超えることがあります。これはPC内部のUSB電源スイッチのトリガーを引き起こすことがあり、PCが再起動するまでの間、USBの機能性を喪失することがあります。※12

Intel® Edison Kit for Arduino*には電力供給におけるいくつかの課題があります:

  • 5 V DC/DCおよびVBUSから入力するダイオードORingがあります。この場合にVBUSからの電源でIntel® Edison Kit for Arduino*を動作させる場合、シールドの電圧は最小4.4 V(4.75 VのVBUS最小から0.3 Vのダイオード降下を差し引く)となることがあります。この場合に外部電源アダプターによるシールドへの電圧は5 V ±2%となります。
  • Intel® Edison Compute ModuleがUSBホストを使用するのであれば外部電源アダプターが必須です。
  • エンドユーザーは充電の際にバッテリーの温度が非常に高くなる場合に備えること、また充電過多になるのを防ぐために、適切なバッテリーを選択し、すべての安全措置を講じることに責任があります。100 mAの充電電流では少なくとも200 mAhの容量を備えたバッテリーでなければなりません。Intelは内部保護回路を備えたバッテリー・パックを推奨します。
  • 4.1 ブート時の電源選択 – DCIN 信号

    DCINは、Intel® Edison Compute Moduleがバッテリーまたは外部の電源からのいずれで動作しているかを示す信号です。また、DCINはブートするためにVSYSに必要な電圧レベルを設定します。DCINが未接続またはグラウンドに接続されている場合には、100ミリ秒でVSYSの電圧が2.5Vから3.5Vまで上昇しなければならず、そうでなければブートは中止されます。ブートが中止された時には、電源は2.5V未満に回帰しなければなりません。もし、DCINがVSYSに接続されている時に100 msにわたってVSYSが2.5 Vを超えているならIntel® Edison Compute Moduleはブートを開始します。

    注記: DCINがVSYSに接続されている場合に、100 msにわたって電圧が2.8 Vを超えるのであれば必ずブートを開始します。DCIN信号はPCBのVSYSに配線します。
    注記: Wi-FiおよびBluetoothの機能性を保証する絶対最小電圧は3.15 Vです。

    5 バッテリー

    Intel® Edison Kit for Arduino*とIntel® Edison Breakout Boardはリチウムイオンまたはリチウムポリマー・バッテリーを再充電するように設計されています。バッテリーの充電を行う際にはメーカーのガイドラインに従ってください。一般に充電電流は定格容量の50~70%を超えるべきではありません。例えば、200 mAhのバッテリーは70% • 200 mA = (140 mA)で充電を行うべきです。

    Intel® Edison Kit for Arduino*の充電電流は100 mAです; Intel® Edison Breakout Boardの充電電流は190 mAです。

    6 レイアウト

    6.1 アンテナ占有域

    アンテナの下とその周辺の領域は、すべてのコンポーネント、ルート、およびグラウンド面から解放状態になければなりません。Intel® Edison Kit for Arduino*のトレース・レイヤーでアンテナ占有領域として示されている、Intel® Edison Compute Module DXFの空白部分がそれです。図7を参照ください。

    図7 アンテナ周辺領域

    図7 アンテナ周辺領域

    6.2 SDカード、I2S、SPI、I2Cのレイアウト

    表10 SDカードのレイアウト

    信号パラメーター 距離 (mm) 標準 (mils)
    合計長 L1 0.254 ~ 101.6 mm 10 ~ 4000 mils
    DATA/CMD/CTRL ~ CLK ピンとピンの間の長さの最大不整合 ±2.54 mm ±100 mils
    最小のメイン・ルート間隔比率 60 × 60 μm. 1:1 トレース 幅/間隔.
    CLK ~ DATA/CMD/CTRL 突合せ ±200 mils
    シングル・エンデッド・インピーダンス特性 42 ~ 45 Ω (±10%)
    負荷キャパシタンス 2 ~ 5 pF

    注記: SPIでは、合計の長さは6000 mils; I2Cでは、合計の長さは8000 mils。

    6.3 LED(発光ダイオード)

    Intel® Edison Kit for Arduinoには3つのLEDがあります(場所は図5を参照ください)。

    • DS1はリセットLEDです。Intel® Edisonプロセッサーが稼働中に点灯します。プロセッサーがリセット中でRESET_OUT#がLowにアサートされている最中には消灯します。
    • DS2はArduino*ボードにおける標準LEDです。‘blink’コード※13で使用します。また、Digital入出力13がHighになるといつでも発光します。インジケーターとして直接制御で使用することができます。
    • DS3は充電中LEDです。装着されたバッテリーをLTC4067が充電中に点灯します。

    7 取り扱い

    Intel® EdisonモジュールをArduino*ボードに組み立てる際には、PCB端の近くにIntel® Edisonモジュールを取り付けます。シールドを掴んだり圧力を加えることは避けてください。ArudinoボードにIntel® Edison Compute Moduleを噛み合わせるように、コネクターのその上と左上角を図8で示すように押してください。

    図8 Intel® Edison Compute Moduleの挿入

    図8 Intel® Edison Compute Moduleの挿入

    8 デバッグ用UARTと低消費電力スリープ・モード

    Intel® Edison Compute Moduleが低消費電力スリープに入る際に、UART内部のFIFOとインターフェースの電源が落とされます。これによって、Intel® Edison Compute Moduleが低消費電力スリープ・モードにある時に、2ワイヤーUART(Rx/Tx)が最初の受信文字を失う現象を起こします。スリープ・モードを有効にする時には、この問題を避けるために4ワイヤーUART(Rx、Tx、CTS、およびRTS)を使用する必要があります。

    注記: 最新のシステム・イメージではデフォルトで低消費電力スリープを無効にしています。ファームウェアを更新する方法についてはhttps://communities.intel.com/docs/DOC-23147のGetting Started Guideを参照ください。

    9 ボタン

    このセクションでは、Intel® Edison Kit for Arduino*のボタンのソフトウェア機能について説明します。

    Intel® Edison Kit for Arduino*には以下のボタンがあります:

    • システム・リセット: システム・リセット・ボタン(SW1UI5)を押すと、Intel® Edison Compute Moduleをリセットし、さらに入出力エキスパンダーをリセットし、すべてのシールド・ピンをプルアップのないハイ・インピーダンス状態に設定します。
    • シールド・リセット: シールド・リセット・ボタン(SW1UI1)を押すと、シールドのリセット信号(負論理)をアクティブlow状態にします。これはIntel® Edison Compute Moduleやその入出力の状態に影響を与えません。
    • 電源ボタン: 電源ボタン(SW1UI2)はソフトウェアによって構成されています。電源ボタンを押したり長押ししたりすることで、その時間とIntel® Edison Compute Moduleの状態に応じて、それぞれの結果を促します:
      • Intel® Edisonデバイスが完全にパワー・ダウンしている状態で、電源ボタンを3秒長押しするとデバイスの電源が入り、Intel® Edison Compute Moduleが起動します。
      • Intel® Edisonデバイスの稼働中に、電源ボタンを2秒以上7秒未満の間、長押しするとIntel® EdisonデバイスはAP(アクセス・ポイント)モードに入ります。これによって“ワンタイム・セットアップ”を有効にします(configure_edison –enableOneTimeSetupの実行と同じです)。
      • Intel® Edisonデバイスの稼働中に、電源ボタンを10秒以上長押しするとIntel® Edison Compute Moduleの電源切断を促します。これはハード・シャットダウンに近いもので、Compute Moduleへの電力供給をカットします。

    9.1 FWR_RCVRとRCVR_MODE

    SW1UI3とSW1UI4は工場でのみ使用します。

    10 Digikeyによる供給

    図9にユーザーが使用できるサードパーティのアクセサリーを示します。※14

    図9 Digikeyによる供給

    図9 Digikeyによる供給 -1 70ピン・コネクター

    結合コネクター 2.0 mm
    DF40C(2.0)-70DS-0.4V(51) – H11908CT-ND カット テープ(CT)
    DF40C(2.0)-70DS-0.4V(51) – H11908TR-ND テープ&リール(TR)

    図9 Digikeyによる供給-2 電源ジャック

    ミニブレークアウト 電源ジャック※15
    PJ-002BH-SMT-TR CP-002BHPJCT-ND カット テープ(CT)
    PJ-002BH-SMT-TR CP-002BHPJTR-ND テープ&リール(TR)

    図9 Digikeyによる供給-3 USBアダプター・ケーブル

    ミニブレークアウト USB アダプター・ケーブル
    USB A メスからMicro A オス 10-00649 839-1105-ND

    図9 Digikeyによる供給-4 オス・ヘッダー

    Mini-breakout male header
    ミニブレークアウト オス・ヘッダー
    2×14 M20-9980745 952-1932-ND

    11 シールド・ピンの構成

    このチャプターではArduino*シールド・ピンを構成する方法を例示します。

    Arduino*シールド・ピンを以下のように構成します:

    1. 使用したいピンのArduino*シールド・ピン番号をIO0~IO19の範囲で特定します。
    2. 特定したピンで使用可能な機能を特定し、そして使用したい機能を選択します。典型的な機能はGPIO、PWM、UART、I2C、SPI、ADCです。それぞれのピンで使用できる機能は決まっています。
    3. どのGPIO信号を使用するかを決定します。もし、選択したピンが複数の機能を多重化で持っている場合、必要な機能を構成する必要があります。いくつかのピンは1つの機能だけを持ち、また多重化制御を必要としません。
    4. もし必要であれば、GPIO信号が入力あるいは出力のためにピン・バッファの方向を選択するための構成が必要であるかどうかを判断し、必要である場合には方向を設定します。
    5. もしGPIO信号にプルアップ抵抗の制御を選択するために構成を行う必要性があるのであれば、プルアップ抵抗を有効にするか無効にするかを選択する必要があります。ほとんどのピンの機能は、一般的にプルアップ抵抗を無効にすべきです。GPIO入力機能では、要望に沿ってプルアップ抵抗をオプションで有効あるいは無効にすることができます。
    6. アクセスのための前述のGPIO番号をLinuxユーザー空間環境へエクスポートします(コマンド・シェルから)。
    7. 上記のGPIO番号に構成のための出力をします。
    8. シールド・ピンの接続を解除するためにTRI_STATE_ALL信号をアサートします。
    9. 上記のGPI番号に対して出力ロジック・レベルをhighまたはlowににアサートします。
    10. 機能に必要とされるようにSoC GPIOピン・モードを設定します。
    11. シールド・ピンを再接続するために、TRI_STATE_ALL信号をデアサートします。

    11.1 IO5をGPIO入力、プルアップ抵抗を無効として構成

    IO5をGPIO入力、プルアップ抵抗を無効に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO5のGPIO番号は13です。
    2. 表4によるとGPIO 13※16は、ピン多重化でGPIOを選択するためにmode0に設定する必要があります。
    3. 表7によるとGPIO 253は、IO5の出力方向を無効にするために0を設定する必要があります。
    4. 表7によるとGPIO 221は、ハイインピーダンス入力でIO5のための外付けプルアップ抵抗を無効にするように設定する必要があります。
    5. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:

    # echo 13 > /sys/class/gpio/export
    # echo 253 > /sys/class/gpio/export
    # echo 221 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo low > /sys/class/gpio/gpio253/direction
    # echo in > /sys/class/gpio/gpio221/direction
    # echo mode0 > /sys/kernel/debug/gpio_debug/gpio13/current_pinmux
    # echo in > /sys/class/gpio/gpio13/direction
    # echo high > /sys/class/gpio/gpio214/direction

    IO5をGPIO入力として使用することができるはずです。例えば:

    # cat /sys/class/gpio/gpio13/value

    11.2 IO11をGPIO入力、プルアップ抵抗を無効として構成

    IO11をGPIO入力、プルアップ抵抗無効に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO11のGPIO番号は43です。
    2. 表4によるとGPIO 262にGPIO/SPIを選択するために1を設定する必要があります、GPIO 241にGPIOを選択するために0を設定する必要があります、およびGPIO 43にピン多重化でGPIOを選択するために‘mode0’を設定する必要があります。
    3. 表7によるとGPIO 259にIO11の出力方向を無効にするために0を設定する必要があります。
    4. 表4によるとGPIO 227はIO5の外部プルアップ抵抗を無効にし、ハイインピーダンス入力に設定する必要があります。
    5. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:

    # echo 43 > /sys/class/gpio/export
    # echo 262 > /sys/class/gpio/export
    # echo 241 > /sys/class/gpio/export
    # echo 259 > /sys/class/gpio/export
    # echo 227 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo high > /sys/class/gpio/gpio262/direction
    # echo low > /sys/class/gpio/gpio241/direction
    # echo mode0 > /sys/kernel/debug/gpio_debug/gpio43/current_pinmux
    # echo low > /sys/class/gpio/gpio259/direction
    # echo in > /sys/class/gpio/gpio227/direction
    # echo in > /sys/class/gpio/gpio43/direction
    # echo high > /sys/class/gpio/gpio214/direction

    IO11をGPIO入力として使用することができるはずです。例えば:

    # cat /sys/class/gpio/gpio43/value

    11.3 IO7をGPIO入力、プルアップ抵抗有効として構成

    IO7をGPIO入力、プルアップ抵抗有効に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO11のGPIO番号は48です。
    2. 表7によるとGPIO 255にIO7の出力方向を無効にするために0を設定する必要があります。
    3. 表7によるとGPIO 223にIO7の外部プルアップ抵抗を有効するためにhighを出力する必要があります。
    4. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:

    # echo 48 > /sys/class/gpio/export
    # echo 255 > /sys/class/gpio/export
    # echo 223 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo low > /sys/class/gpio/gpio255/direction
    # echo high > /sys/class/gpio/gpio223/direction
    # echo in > /sys/class/gpio/gpio48/direction
    # echo high > /sys/class/gpio/gpio214/direction

    IO7をGPIO入力として使用することができるはずです。例えば:

    # cat /sys/class/gpio/gpio48/value

    11.4 IO6をPWM出力として構成

    IO6をPWM出力に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO6のGPIO番号は182です。
    2. 表4によるとGPIO 182にピン多重化でPWMを選択するために‘mode1’を設定する必要があります。
    3. 表7によるとGPIO 254にIO6の出力方向を有効にするために1を設定する必要があります。
    4. 表7によるとGPIO 222はIO6のプルアップ抵抗を無効にし、ハイインピーダンス入力に設定する必要があります。※17
    5. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:

    # echo 254 > /sys/class/gpio/export
    # echo 222 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo high > /sys/class/gpio/gpio254/direction
    # echo in > /sys/class/gpio/gpio222/direction
    # echo mode1 > /sys/kernel/debug/gpio_debug/gpio182/current_pinmux
    # echo high > /sys/class/gpio/gpio214/direction

    IO6をPWM出力として使用することができるはずです。例えば:

    # echo 2 > /sys/class/pwm/pwmchip0/export
    # echo 2000000 > /sys/class/pwm/pwmchip0/pwm2/duty_cycle
    # echo 1 > /sys/class/pwm/pwmchip0/pwm2/enable

    11.5 IO14をADC入力として構成

    IO14をADC入力に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO14のGPIO番号は44です。
    2. 表4によるとGPIO 200にADCを選択するために1を設定する必要があります。
    3. 表7によるとGPIO 232に出力方向を無効にするために0を設定する必要があります。
    4. 電流の漏れの防止を可能にするためにIO14と直接接続されるすべてのGPIOラインはハイインピーダンス入力として設定する必要があります。表7によるとGPIO 208はIO14のプルアップ抵抗を有効にするために使用します。
    5. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:

    # echo 200 > /sys/class/gpio/export
    # echo 232 > /sys/class/gpio/export
    # echo 208 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo high > /sys/class/gpio/gpio200/direction
    # echo low > /sys/class/gpio/gpio232/direction
    # echo in > /sys/class/gpio/gpio208/direction
    # echo high > /sys/class/gpio/gpio214/direction

    IO14をADC入力として使用することができるはずです。例えば:

    # cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw

    注記: 多重化スイッチのデフォルト状態、および13へのシールド・ピンIO11のためのレベル変換が一致せず、もし適切に構成されていないのであれば、SPI通信はADCを損なう(妨害する)でしょう。したがって、ADCの使用を試みる前に、それらの機能(例えばSPIまたはGPIO)のいずれかをこれらのピンで完全に構成するように本ドキュメントにおける他の記述の指示に従うことを勧めます。

    11.6 IO18/IO19をI2Cの接続用に構成

    IO18とIO19をI2Cの接続用に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO18およびIO19のGPIO番号はそれぞれ28および27です。※18
    2. 表4によるとGPIO 204はGPIO/I2Cを選択するために0を設定する必要があります※19、またGPIO 28のピン多重化はIO18にI2Cを選択するために‘mode1’を設定する必要があります。
    3. 表4によるとGPIO 205はGPIO/I2Cを選択するために1を設定する必要があります※20、またGPIO 27のピン多重化はIO19にI2Cを選択するために‘mode1’を設定する必要があります。
    4. GPIO 14およびGPIO 165がI2C信号に接続され、I2Cでこれらのピンを使用中であれば、I2Cバスにおいて信号を駆動することを防ぐために、ハイインピーダンス入力を構成すべきです。
    5. 表7によればGPIO 236にGPIO 14の出力方向を無効にするために0を設定する必要があり、さらにGPIO 237はGPIO 165の出力方向を無効にするために0を設定する必要があります。
    6. 表7によればGPIO 212および213はIO18およびIO19はそれぞれプルアップ抵抗を無効にし、ハイインピーダンス入力とする必要があります。
    7. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。

    これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:※21

    # echo 28 > /sys/class/gpio/export
    # echo 27 > /sys/class/gpio/export
    # echo 204 > /sys/class/gpio/export
    # echo 205 > /sys/class/gpio/export
    # echo 236 > /sys/class/gpio/export
    # echo 237 > /sys/class/gpio/export
    # echo 14 > /sys/class/gpio/export
    # echo 165 > /sys/class/gpio/export
    # echo 212 > /sys/class/gpio/export
    # echo 213 > /sys/class/gpio/export
    # echo 214 > /sys/class/gpio/export
    # echo low > /sys/class/gpio/gpio214/direction
    # echo low > /sys/class/gpio/gpio204/direction
    # echo low > /sys/class/gpio/gpio205/direction
    # echo in > /sys/class/gpio/gpio14/direction
    # echo in > /sys/class/gpio/gpio165/direction
    # echo low > /sys/class/gpio/gpio236/direction
    # echo low > /sys/class/gpio/gpio237/direction
    # echo in > /sys/class/gpio/gpio212/direction
    # echo in > /sys/class/gpio/gpio213/direction
    # echo mode1 > /sys/kernel/debug/gpio_debug/gpio28/current_pinmux
    # echo mode1 > /sys/kernel/debug/gpio_debug/gpio27/current_pinmux
    # echo high > /sys/class/gpio/gpio214/direction

    IO18およびIO19をI2C通信に使用することができるはずです。

    11.7 IO10からIO13をSPI接続に構成

    IO10からIO13をSPI接続に構成する方法を以下に示します:

    1. 表2を参照してGPIO番号を確認します。表2によるとIO10からIO13はそれぞれ111、115、114および109です。
    2. 表4によるとGPIO 263にGPIO/SPIを選択するために1を設定する必要があります、GPIO 240にSPIを選択するために1を設定する必要があります、そしてGPIO 111のピン多重化設定にIO10でSPIを選択するために‘mode1’を設定する必要があります。
    3. 表4によるとGPIO 262にGPIO/SPIを選択するために1を設定する必要があります、GPIO 241にSPIを選択するために1を設定する必要があります、そしてGPIO 115のピン多重化設定にIO11でSPIを選択するために‘mode1’を設定する必要があります。
    4. 表4によるとGPIO 242にSPIを選択するために1を設定する必要があります、そしてGPIO 114のピン多重化設定にIO12でSPIを選択するために‘mode1’を設定する必要があります。
    5. 表4によるとGPIO 243にSPIを選択するために1を設定する必要があります、そしてGPIO 109のピン多重化設定にIO13でSPIを選択するために‘mode1’を設定する必要があります。
    6. 表7によればGPIO 258にIO10の出力方向を有効にするために1を設定する必要があります、GPIO 259にIO11の出力方向を有効にするために1を設定する必要があります、GPIO 260にIO12の出力方向を無効にするために0を設定する必要があります、そしてGPIO 261にIO13の出力方向を有効にするために1を設定する必要があります。
    7. 表7によればGPIO 226~229をIO10~IO13のプルアップ抵抗を無効にしてハイインピーダンス入力に設定する必要があります。
    8. 表6によるとGPIO 214でTRI_STATE_ALL信号を制御することができます。
    9. これらの集めたすべての情報を元に、以下のコマンドをLinuxに入力します:
      # echo 111 > /sys/class/gpio/export
      # echo 115 > /sys/class/gpio/export
      # echo 114 > /sys/class/gpio/export
      # echo 109 > /sys/class/gpio/export
      # echo 263 > /sys/class/gpio/export
      # echo 240 > /sys/class/gpio/export
      # echo 262 > /sys/class/gpio/export
      # echo 241 > /sys/class/gpio/export
      # echo 242 > /sys/class/gpio/export
      # echo 243 > /sys/class/gpio/export
      # echo 258 > /sys/class/gpio/export
      # echo 259 > /sys/class/gpio/export
      # echo 260 > /sys/class/gpio/export
      # echo 261 > /sys/class/gpio/export
      # echo 226 > /sys/class/gpio/export
      # echo 227 > /sys/class/gpio/export
      # echo 228 > /sys/class/gpio/export
      # echo 229 > /sys/class/gpio/export
      # echo 214 > /sys/class/gpio/export
      # echo low > /sys/class/gpio/gpio214/direction
      # echo high > /sys/class/gpio/gpio263/direction
      # echo high > /sys/class/gpio/gpio240/direction
      # echo high > /sys/class/gpio/gpio262/direction
      # echo high > /sys/class/gpio/gpio241/direction
      # echo high > /sys/class/gpio/gpio242/direction
      # echo high > /sys/class/gpio/gpio243/direction
      # echo high > /sys/class/gpio/gpio258/direction
      # echo high > /sys/class/gpio/gpio259/direction
      # echo low > /sys/class/gpio/gpio260/direction
      # echo high > /sys/class/gpio/gpio261/direction
      # echo in > /sys/class/gpio/gpio226/direction
      # echo in > /sys/class/gpio/gpio227/direction
      # echo in > /sys/class/gpio/gpio228/direction
      # echo in > /sys/class/gpio/gpio229/direction
      # echo mode1 > /sys/kernel/debug/gpio_debug/gpio111/current_pinmux
      # echo mode1 > /sys/kernel/debug/gpio_debug/gpio115/current_pinmux
      # echo mode1 > /sys/kernel/debug/gpio_debug/gpio114/current_pinmux
      # echo mode1 > /sys/kernel/debug/gpio_debug/gpio109/current_pinmux
      # echo high > /sys/class/gpio/gpio214/direction

    IO10~IO13をSPI接続に使用することができるはずです。


    まとめ

    これでIntel Edison Compute Module関連のドキュメントを私の解釈で日本語化したものを公開するのは3つ目になりました。Intel Corporationが提供するIntel Edison関連のハードウェアであるIntel Edison Compute Module、Intel Edison Breakout Board、Intel Edison Board for Arduioの3つのハードウェアについてのガイドを今回の分を含めてすべて日本語で紹介することができました。

    Intel Edison Breakout Boardの時には、公開までの日数について強く意識をしました。しかし、それによって出来上がったドキュメントの完成度は、自分自身の期待を若干下回るものでした。今回は、その反省に基づいて、時間を意識するよりも内容についてより強く意識をおいて編集することにしました。前回のBreakout Boardのドキュメントよりも初期段階における品質がより高いものにできたのではないかと考えています。が、第三者の評価はまた別のところにあることも理解しています。

    お読みなって意味不明だった点、誤っている点などのご指摘等ありましたら、メールあるいはFacebook、あるいはこのメモへのコメントなどでご指摘をいただければと思います。

    Breakout Boardのドキュメントについては今週末、あるいは来週末を使用して、ブラッシュ・アップを図っていきたいと思います。

    今回の「Intel Edison Kit for Arduino Hardware Guide」を私が読んだ解釈で日本語化したドキュメントが、少しでも皆様のお役にたてば幸いです。

    日本語ドキュメント 改定履歴

    2015年2月28日

    初版

    2015年3月2日

    • 各所の表現の修正を行いました。
    • 各表に枠線を追加しました。

    関連記事


    • 筆者である“さかきけい”の手元に存在しているIntel Edison Compute Module用ボードを順不同で取り上げました。
    • 有効にしたい場合は原書をご確認ください。
    • インテル株式会社による表現がそうなっているので、それに合わせています。
    • インテル株式会社による表現がそうなっているので、それに合わせています。
    • 質問者の技術レベルに応じて必要な回答を用意するのは、非常に高いスキルと多くの時間を必要とするものです。私はこれらのサービスが可能な状態にはありません。
    • 訳注:I2Cは集積回路間の通信バスを示す“Inter-integrated circuit”の略語です。「インターインテグレーテッド・サーキット」はそのカタカナ語です。
    • 訳注:該当する図の表示ライセンスが「CC BY ND」のため英語表記のままとしています。
    • 訳注:IO0が2行ありますが、これは原文通りです。
    • 訳注:原文の段組みは崩れていると思われるので、Intel® Edison Compute Module Hardware Guideの記載を元に修正しています。
    • 原文: low on state resistance
    • 訳注:TBDをTo Be Determinedとして訳しています。
    • 訳注:自己復帰型(リセッタブル)ヒューズによって、過電流防止のためにパソコン側からのUSBデバイスへの給電が停止されることがあり得るということを説明しています。実際にこれが発生するかどうかはパソコン側のUSB回路の設計によります。
    • 訳注:Arduino IDEに含まれるサンプル・プログラム(サンプル・スケッチ)の「Blink」のことです。LEDをチカチカと点滅表示(Lチカ)します。
    • 訳注:リンク先はすべてDigiKeyの日本語ページの方に変更しています。
    • 訳注:編集に失敗しているようなので他の部分と整合性があるように修正しています。
    • 訳注:原文では43となっていますが、13が正しい番号と考えられるために13に置き換えて記載しています。
    • 訳注: ここは「入力」ではなく「出力」にすべきと考えられます。未検証ですので、現状では変更を加えていません。
    • 訳注: 実際には表2を参照してもIO18およびIO19のGPIO番号がそれぞれ28および27であることはわかりません。この場合は表4を併せて参照する必要があります。
    • 訳注: 原文では1を設定するように記載がありますが、正しくは0を設定する必要があります。このため、ここではそのように記載しています。
    • 訳注: 原文では1を設定するように記載がありますが、正しくは0を設定する必要があります。このため、ここではそのように記載しています。
    • 訳注: 原文ではgpio204およびgpio205に対してhighを出力していますが、正しくはlowを設定する必要があります。このため、ここではそのように記載しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です