86Duino Zero ハードウェア説明

ご紹介

86Duino Zeroはx86イーサネットのマイクロネット開発ボードであり、内部に32ビットのプロセッサを採用し、Arduinoのプログラムを実行することが可能です。
Zeroは86Duinoの入門版であり、Arduino UNO 及び Leonardoに対し同様のインターフェイスユニットを提供し、並びにネット、USB 2.0、SDカード等を内蔵し、また、Leonardoはポートが有り、ユーザーがこのような機能の為に改めて拡張する必要が有りません。
Arduinoは86Duino Zeroを学習するための敷居を低くし、環境が整っていなくても、基本的なパソコン操作能力さえあれば、容易に学習に使用でき、Arduinoユーザーやその他の書学者、設計者、芸術家、愛好者等如何なる人に対してもぴったりで、自分だけの電気によって稼働する芸術装置を作り上げることができます。

ハードウェア規格

  • CPU コンプレッサ:x86イーサネット 32 ビットコンプレッサVortex86EX,主要クロック 300MHz(可用 SysImage ツールソフトウェアを用いると、最高で500MHz)
  • RAM メモリ:128MB/1GB 工業規格 DDR3 SDRAM
  • Flash メモリ: 8MB内蔵,出荷時に既にBIOS 及び 86Duino 等をインストール済み
  • 1 個の 10M/100Mbps イーサネット
  • 1 個 のUSB Host ポート
  • 1 個の MicroSD スロット
  • 1 個のUSB Device ポート(5V 入力,Type B micro-USB,バーニングプログラミングポート)
  • 1 個 の7V-12V 外部電源入力ポート
  • 17 本のシグナル入力/出力ピン(GPIO)
  • 1 個 のTTL シリアルポート(UART)
  • 1 組 のEncoder ポート
  • 6本のA/D 入力ピン
  • 7 本の PWM 出力ピン
  • 1 個 のSPI ポート
  • 1 個 のI2C ポート
  • 2 の 5V電圧出力ピン,2 本の 3.3V 電圧出力ピン
  • 全長:76.98mm,幅:53.34mm
  • 重さ:41g

I/O ポートは一

寸法図

86Duino Zero の大きさは基本的に Arduino Leonardo と同様であり,下図に示した通り:(完全サイズダウンロード

zero_size

このほか下図からZeroの固定穴位置(赤丸の所)がArduino Leonardoと同じことが確認できる。

1

ポート位置

86Duino Zero の Pin-Out Diagram は下図の通り(クリックで拡大):

pin

Pin-Out Diagramを通じZeroのピン(下図赤丸の所)がArduino Leonardoと同じことが確認できる。その為、ZeroはArduino Uno 及び Leonardoユーザーの拡張ボードを積み重ねることが可能である(例えば、 Arduino WiFi Shield)。

2

I/O ポート機能紹介

一、電源システム

86Duino Zeroは二つの電源入力ポートを持ち、一つは外部用で差込口が黒く(Power Jack)、左下の赤丸の所がそうであり、可能な電圧範囲は7V ~ 12Vである。

1

もう一つはバーニングプログラム用のmicro-USBであり(左下赤丸の所参照)、電圧は5Vでなくてはならない。

2

ユーザーは上記のポートからZeroに給電が可能である。貴方が外部の電源を使用する時には、ボードに内蔵されたチップに繋ぎ、下図に示した通りの、正常な動作を行う必要がある。

3

micro-USBポートを通じ給電する際、USBの5Vの電圧をby-pass方式を用いてボード上のパーツに直接プログラミングすることが可能である。外部電源コネクタとmicro-USBコネクタは同時使用可能である。

power5

外部電源差込口の電源接続方法

黒色の電源差込口を使用して給電する際、7V ~ 12Vの間で出力可能な家庭用の変圧器と
2.1mmサイズの電源コネクタを用意する必要が有る。電源変圧器を黒色の電源差込口に差し込めば、下図の通り、接続完了である。

4

0.5A電流以上の電源変圧器使用をお勧めしたい。

micro-USB によるコネクタ電源接続方法

ボード上のmicro-USBコネクタを通じてUSBメインボードホール或いはUSB充電器の5V電圧をZeroに給電することが可能である。メインボードの破損を避けるため、コネクタ内に1アンペアのヒューズを内蔵し、保護を行う。

86one_usb_device_protect_sch

ユーザーはmicro-USBを1本用意しType A USBに節電する(例:スマートフォンのケーブル;86Duino Zero 配線キット內にこれを含む)詳細は下図参照。

power7

コンピュータのUSBソケットによる給電以外にも、USB電源供給機を使用することが可能である(例えばスマートフォンの充電器)詳細は下図の通り:

power8

注意していただきたいのは、86Duino Zeroに如何なる外部装置も付けていない時(例:USBキーボードマウス)、少なくとも370mAの電流により正常に作動する;
一般のPC 或いはノートパソコンのUSB 2.0ポートが供給可能なのは最大で500mAの電流までで、それで十分Zeroを作動させることができるが、もし、Zeroに接続された外部装置(USB蔵置及び5V 及 び3.3V出力の実験電気回路含む)が、外部接続装置の消耗電流が非常に大きい場合、消耗電流が500mAを超えてしまう場合は、PC の USB 2.0ポートを使ってZeroに給電するのは、ふさわしくない。

註:古いものや設計がよくないPC及びノートパソコンはUSBポートの設計に難が有り、供給可能な電源はUSB 2.0 規格の500mA以下とし、このようなPCを用いて86Duino Oneに給電すると、正常に作動できない可能性が有る(例えば起動できない或いはプログラムのバーニングができない)ので、この時は、パソコンを変えて改めて試してみてほしい。

電源指示ランプ

86Duino Zeroが正確に電源に接続された後、電源の指示ランプ“ON”が下図のように輝く:

power9

電源出力ポート

86Duino Zeroボード上に配置された多くの電圧出力ピンは、3種に大別できるすなわち:
3.3V、5V と VINであり,詳細は下図の通り:

5

3.3V、5V出力ピンは電子実験の電圧原として作られ、其の中の3.3Vピンは最高出力電流が400mA,5Vピンの最高出力は600mAである。VIN出力と黒色の電源ソケットの外部電源入力は共用であり、言い換えれば、両社は電気回路上に連接している;VINピンは主に外部装置で電圧が比較的高い時に用いられる。

注意してほしいのは、もし、あなたの実験回路の消耗が600mAを超えたとき(例えば直流モーター)、VIN出力ピンを用いるべきで、5Vと3.3Vピンの給電は避けるべきだ、ということだ。このほか、VIN出力電圧は5Vより高く、I/Oピンが焼ける可能性が有る。

二、Micro SDカードスロット

86Duino Zero最大 32GB SDHC の Micro SD カードをサポートし, SDXCをサポートしません。

注意していただきたいのは、貴方がもしMicro SDカードの中にWindows 或いは Linux作業システムをインストールする場合、Micro SDカード本体の処理速度に影響を及ぼすので、Class 10のMicro SDカードを使用することをお勧めする。

SysImageツールについて、貴方はMicro SDカードに86Duinoにシステムを入れることができるサービスを提供している。詳しい説明については、更なる說明を参照。

起動順序

Zero起動時、BIOSが三つの場所に行き起動ディスクを探す:内蔵のFlashメモリ、Micro SDカード、USBポータブルディスク。探す順番はFlashメモリ、Micro SDカード、USBポータブルディスクの順となっている。既に86Duinoシステムがインストールされており、ZeroにSD カード或いは USBポータブルディスクが無い場合、Flashより起動する。

註:注意していただきたいのは、Micro SDカード或いはUSBポータブルディスクに、Micro SDカード或いはUSBポータブルディスクに86Duinoシステム或いは作業システム(例Windows 或いは Linux)をインストールするための空きが必要だということで、さもないと、起動に失敗してしまうだろう。

Micro SD カード插入方向

Micro SD スロットは Zeroの 背面にあり,下図のように Micro SD カードを差し込む:

sd1

Zero の MicroSDスロットの位置はArduino SDカード拡張ボード及び一般の組込みシステム開発ボードのスロットよりも更にボードの深いところに、わざと設計されており、それはMicroSDカード挿入後に完全に飛び出ないようにするためである(下図参照)。
Zeroは下げ強い動作に用いる装置であるため(例:相撲ロボット)、このような設計をし、衝撃によりMicroSDカード脱落の惨劇を防ぐようになっている。

sd11

三、GPIO ピン(デジタル出力/入力ピン)

86Duino Zero 17 本の GPIO ピンを,下図のように提供する。86Duino Coding開発環境內において,あなたは digitalWrite 関数を呼び出し、このピンの上で HIGH 或 いはLOWの操作をすることをしたり,或いは digitalRead 関数を呼び出して入力状態にすることができる。

8

全てのGPIOピンはみな出力と入力の方向を持ち、あなたは pinMode 関数を呼び出して方向を設定することができる。GPIOの出力方向を設定する時、出力はHIGH が 3.3V,LOW が0Vであり,毎本ごとの電流出力は最高で16mAである。GPIOの入力方向を設定する時は、その電圧は0 ~ 5Vである。

86Duino ZeroとArduinoは類似しており、GPIOピンの部分には別の機能が有り、例えば:ピンコード~ナンバーや、出力PWMシグナルなどである;RX 或いは TXの文字を持つ場合、代表的なものはUARTシリアルシグナルで;EA、EB 、EZの文字を持つ者は代表的なものは入力Encoderシグナルである。私たちは一組のピンを選び、異なる機能のナンバー表示について、下図のように説明したい:

gpio2

GPIO に関する説明は更に多いので, 基礎ハードウェア概念を参考していただきたい。

四、LED 指示ランプ

LEDは開発の中で最も常用される状態指示設備であり、86Duino Zeroボード上には四個の指示ランプがある:(1)電源指示ランプ(POWER LED),ボード上の表記はONで、電源に差し込んだ時に点灯する(緑色ランプ);(2) TX LEDランプ, ZeroがUSB Deviceポートを通じてPCにデータを送る時、点滅する;(3) RX LEDランプ,ZeroがUSB DeviceポートがPCにデータを送る時,点滅する;(3) RX LED;(4)ボード上の表記はL の LEDランプで,Pin 13(表記は13の GPIOピン)を通じてその点灯消灯をコントロールする。

7

Pin 13 と L指示ランプの接続電子回路図は下図に示した通りである。Pin 13出力がHIGHの時、L 指示ランプは点灯する(オレンジ色);出力LOWの時、L 指示ランプは消える。

86one_L13_sch

五、RESET

86Duino Zeroはボード上の左隅にRESETボタンが有り、左下にRESETピンが、下図に示した通りに有る。

6

RESETピンは、内部にCPUモジュール上のチップに接続されており、RESETピンで低電脈クロックを出しZeroを再起動させる。RESETピンの電気回路図は下図の通り。

reset2

RESETボタンはRESETピンに接続され、RESETボタンを押すと同様にZeroを再起動させることができる:

reset3

六、A/D ピン(アナログ入力ピン)

86Duino Zeroは6 個のアナログピンAD0 ~ AD5を、下図のように提供する:

10

各チャネルは最高11 bitsの解析度を持ち、あなたは86Duino Coding開発環境において analogRead 関数を呼び出し任意のチャネルの電圧値を読み取ることができる。Arduinoと同期するため、analogRead関数の読み取りのA/D 值解析度は10 bitsとあらかじめ設定してあり、あなたは analogReadResolution 関数を通じ解析度を最高11 bitsに調整可能である。

注意していただきたいのは、各A/Dチャネルは入力可能な電圧の範囲が0V ~ 3.3Vであり、使用上厳格に入力電圧が3.3V以下に制限されており、任意のA/Dチャネルにそれを超える入力をさせた場合、読み取る数値に異常が発生し、最悪の場合、ピンが焼けてしまう。其の外、Zero の A/DピンはArduino Leonardoのような一切の切り替えシグナル出力ピンが無い。

配線例

この例の中で、私たちは86Duino Zeroを用いAAA電池電圧を測定する。電池のプラスが
AD0 ~ AD5の中の一つと繋げると、電池のマイナスはGNDとつながり、analogRead 関数を呼び出し電池電圧を読み取ることができる。配線は下図に示した通り:

3

A/Dの更なる説明については、基礎ハードウェア概念を参考にされたい。

七、I2C ポート

86Duino Zero一組 I2C, SDA と SCLを提供する。配置は下図の通り:

1

86Duino Coding開発環境において Wire 関数を使用しI2Cポートを操作することが可能である。ZeroはI2C規範のstandard mode(最高 100Kbps)、fast mode(最高 400Kbps)、high-speed mode(最高 3.3Mbps)の三種類の速度モジュールと外部設備通信をサポートする。I2C規範をもとに、外部設備と接続する場合、SCL と SDAピンの電圧をあげる必要ある(ウィキペディアの説明参照)。電圧値の上昇とI2C速度モジュールは関係しており、
Zeroにおいては, 100Kbpsと 400Kbps の速度モジュールの下で、4.7kΩに電圧を引き上げることをお勧めする;3.3Mbps 速度モジュールでは、1KΩの電圧に引き上げることをお勧めする。

配線例

私たちはRoBoard Module RM-G146 9 軸慣性感測器を例として,いかにして 86Duino Zero の I2C ポートを接続するかの例を示す。下図に RM-G146 のピン配置を示す:

i2c3

RM-G146はI2Cチャネル上で電圧を上昇させるので、私たちはZeroの5V出力ピンをRM-G146の5V出職に繋ぎ、GNDを相互にドッキングさせ、I2Cチャネルも相互にドッキングさせ、正確にZero と RM-G146 をI2Cを通じ互いに通信させることができる。接続は下図に示した通り:

2

八、PWM ポート

86Duino Zeroは7 個のPWM出力チャネルを提供し(GPIO との共用ピン)、それぞれ下図に示した通り3、5、6、9、10、11、13に分けられる:

9

86Duino Coding開発環境において analogWrite 関数を呼び出し、これらのピンにPWM信号を発せさせることができる。ZeroのPWMチャネルは最高25MHz 或いは 32-bit の解析度の出力シグナルを出すことができるが、Arduinoと同期するため、あらかじめその周波数は1KHz、解析度は8 bitsと設定されている。

analogWrite 関数出力のPWM周波数は1KHzに固定され調整することはできないが、あなたは analogWriteResolution 関数を呼び出してその出力のPWMシグナル解析度を13 bitsにまで引き上げることができる。もしあなたがPWMピン上でその他の周波数を出力したい場合は、 TimerOne 関数を用いてPWMシグナルを出力し、最高出力周波数を1MHzとすることができる。PWMに関するより多くの説明は、基礎ハードウェア概念を参考にされたい。

九、TTL シリアルポート(UART TTL)

86Duino ZeroはTX1 (1) / RX1 (0)の1 組の UART TTLを提供し,その通信速度(ボーレート)は最高 6Mbpsに達する。Serial1 関数を使用しそのデータを送受信することができる。
UART TTLポートの位置は下図に示した通り:

15

注意してほしいのは、このUARTシグナルはLVTTL電圧準位(0 ~ 3.3V)に属するので、
12Vの電圧準位のRS232ポートシグナルを直接このUART TTLポートに繋がないこと。焼けが起こってしまう。

話すに値するのは、Zero の UART TTLには二種類のモジュールが備わっていることだ。このモジュールが作動する時、ロボット専用のAIサーバを呼び出し接続することを要求できることで、Arduino やRaspberry Piとは違い、イーサネット回路を切り替えることが可能だ。

UART TTLの半二重モードは、Serial1ライブラリが提供する begin 関数を使用して86Duinoスケッチプログラムで切り替えることができます。

接続例

本例ではいかにしてZeroと Robotis会社が提供するDymanixel AX-12+ロボットサーバと接続するのかを示す。下図はDymanixel AX-12+及びそのピン位置である:

uart2

AX-12+はUART TTLシグナルを採用しているので、Zero の UARTはモジュールと相関関係にある。このモジュールにおいて、UARTの TXピンはシリアルデータの送受信を行い、RXは保留することができず、その為、ここで私たちは直接AX-12+のDATAピンをZero の Pin 1 (TX1)とドッキングし、VIN,GNDも、下図に示した通りドッキングする:

16

uartS2

接続完了後、86Duino sketchプログラムにおいてSerial1とAX-12+通信を使用することが可能となる。注意すべきは、Zero と AX-12+のボレートは同じに設定すべきで、そうすることで初めて正常に作動する;其の外、VINはサーバに正確な作業電圧を提供し(7V ~ 10V)、AX-12+は初めて起動する。

十、SPI ポート

86Duino Zeroは一組のSPIポートを提供し、位置はArduino Leonardoと同じで、SPI通信協定のCSピンシグナルを下図に示した通り増加できる:

14

86Duino Coding開発環境においてSPI関数を使用しSPIポートを操作可能です。

十一、LAN インターネットポート

86Duino Zeroは背面にLANポートを一つ提供し、10/100Mbps伝送速度を支援し、Ethernet 関数を使用してデータの送受信を行うことができる。LANポートの位置とピンの定義は下記に示した通り:

13

17

LANポートは1.25mmの4Pコネクタであり、その為、RJ45コネクタ1本を伝送ケーブルとして制作し(86Duino Zero 配線パック内にこれを含む)、ネットに繋ぐ必要が有る。RJ45をボード上に半田しないと、容易に抜け落ちてしまい、ボードの安全上に問題が出てくる。

接線例

下図は86Duino Zero配線パック内の伝送ケーブルを用いた、接続例である:

4

十二、USB 2.0 ポート

86Duino ZeroにはUSB 2.0 Hostポートが一つあり、外部のUSB 裝置(例えばUSBキーボード及びマウス)と接続が可能である。86Duino Coding開発環境において、USB Host 関数を使用してUSBキーボード、マウスを取得することができる。貴方がZeroにWindows 或いは Linux作業システムをインストールする時、USBポートはUSB無線ラン及びUSBカメラに接続して、その機能を拡張することができる。USBポートの位置及びピンの定義は下図に示した通り:

18

19

USBポートは1.25mmの5Pコネクタであり、その為、USBコネクタの伝送線(86Duino Zero 配線パック内に1本のUSB Type A伝送線を含む)を作成しUSB装置に連接する。
安全の為、USB伝送線はボードにしっかりはんだすること。

接続例

下図は86Duino Zero配線パック内に付属する伝送線を用いて、USBマウスに接続した例である:

5

もし二つ以上のUSB装置を接続する場合は、USB Hubを使用しより多くのUSBスロットを拡張し、下図の例のようにUSB Hubを用いてUSBキーボードとマウスを同時に接続すること:

6

十三、Encoder ポート

86Duino Zeroは1 組の Encoderポートを提供し、ピンは3つ有り、それぞれ下図に示した通りA、B、Zとなる:

22

Encoderポートは光学増量コードを及びSSI絶対コードシグナルを読み取り、86Duino Coding開発環境において、Encoder 関数を使用してその数値を読み取ることができる。Encoderポートの最高入力シグナル周波数は25MHz。

配線例

私たちはICを例として、それと86Duino Zeroの Encoderポートの接続例を示す。下図にAM4096のピン配置を示す:

encoder2

上図の出力ピン中の、増量エンコーダーシリアル出力の一組は、即ちA/B Phaseであり、ピンの標示はそれぞれA、B 、Riとなっている。私たちはAM4096 の A、B 、Riを個別に42、43、44に繋ぎ、その後AM4096の電源Vddを3.3Vに繋ぎ、AM4096のGNDをZeroのGNDに繋ぎ、このようにしてようやく正確にZero と AM4096をEncoderを通じ相互に通信させることができる。接続図は下図に示した通り:

3

十四、CMOS 電池

大部分のx86パソコンにはCMOS メモリが有りそれによりBIOS 設定及びクロック(RTC)が記録する時間日時を保存する。CMOSメモリにはシャットダウン後に消去された記憶を保存する特徴があるため、x86パソコンメインボードには通常外部接続の電池によりCMOSメモリ内容を維持するようになっている。86Duino Zeroはx86開発ボードとして、同様に上述のCMOSメモリ及び電池を備えており、それは下図に赤丸で示した通りである:

86zero_battery

しかしながら、Zero の CMOSメモリはクロック時間及びEEPROM関数のCMOS bankデータしか記録できず、並びにBIOS 設定は保存できない:その為、CMOS電池故障やZeroのBIOSが正常に作動しないことは招かないが、EEPROM 関数が保存するCMOS bankデータを失う可能性が有り、並びに Time86 関数に読み取らせたクロックが重複する可能性が有る。EEPROM 及 びTime86関数が正常に作動するために、平時はボード上のCMOSを取り除こうとしないこと。

十五、PCI-E Target ポート

貴方は86Duino Zeroボード端に飛び出たPCI-Eインターフェイスカードの金色のコネクタをみつけることができるだろう。その場所は、下図の赤丸に示したところだ。このPCI-Eを、Zeroのデザイナーは大変可愛いと思っているそうだ……

86zero_pcie

このコネクタは実際の所はハッカー(hackers)達が遊ぶように設計されており、その機能を起動させるだけで、必ずZeroに対しhardware hackingを行ってこそ──これはVortex86EXに対し十分認識され、そしてPCI-Eインターフェイスをより深く理解することができるだろう。言うなれば、PCI-Eを起動することは、Zeroのデザイナーが86Duinoに与えた挑戦とも言える。

PCI-E通常使用しない場合は、その機能を正常に起動させるため、一般パソコンメインボードのPCI-Eスロット上に差し込まないこと:

86zero_pcie


附錄一:86Duino Zero ピン名称及び Vortex86EX GPIO Ports の対応関係

7

附錄二:86Duino Zero 配線パック內容

86Duino Zero 配線パック內には下図に示した線材を含む。左よりそれぞれ、 micro-USB 電源ケーブル(プログラミングバーニングケーブル)、USB Host コネクタケーブル、RJ45 イーサネットケーブル。

24

附錄三:86Duino Zero ハードウェアソースコード


展示映像


ハードウェア説明ホームページ

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.