概要
Zeroは、UNOで確立されたプラットフォームをシンプルかつパワフルに32ビットで拡張したものです。Zeroボードは、パフォーマンスを向上させることでファミリーを拡張し、デバイスの様々なプロジェクト機会を可能にし、32ビットアプリケーション開発を学ぶための素晴らしい教育ツールとして機能します。 Zeroのアプリケーションは、スマートなIoTデバイス、ウェアラブルテクノロジー、ハイテクオートメーション、クレイジーなロボット工学まで多岐にわたります。このボードには、32ビットARM Cortex® M0+コアを搭載したAtmelのSAMD21 MCUが搭載されています。その最も重要な機能の1つがAtmelの組み込みデバッガー(EDBG)で、ハードウェアを追加することなく完全なデバッグインターフェースを提供し、ソフトウェアデバッグの使いやすさを大幅に向上させています。EDBGは、デバイスやブートローダのプログラミングに使用できる仮想COMポートもサポートしています。
ご注意 多くのArduinoおよびGenuinoボードと異なり、Zeroは3.3Vで動作します。I/Oピンが許容できる最大電圧は3.3Vです。どのI/Oピンにも3.3V以上の電圧を印加すると、ボードが破損する可能性があります。
ボードには、マイクロコントローラーをサポートするために必要なすべてのものが含まれています。マイクロUSBケーブルでコンピューターに接続したり、AC-DCアダプターやバッテリーで電源を供給したりするだけで、すぐに使い始めることができます。Zeroは、3.3Vで動作するすべてのシールドと互換性があり、1.0 Arduinoのピンアウトに準拠しています。
備考
AVRマイクロコントローラを搭載したArduinoおよびGenuinoボードは、Arduinoソフトウェア(IDE)のシリアルモニタを開くたびにリセットされ、スケッチの実行が再開されます。これは、これらのボードにスケッチをアップロードするために使用されるメカニズムでもあります。このボードは、ゼロがプログラミングポートを介して接続され、シリアルモニタを開いても、ボードは自動的にリセットされず、ロードされたスケッチが実行され続けます。スケッチを再起動するには、ボード本体のリセットボタンを押す必要があります。
技術スペック
MICROCONTROLLER | ATSAMD21G18, 32-Bit ARM Cortex M0+ |
OPERATING VOLTAGE | 3.3V |
DIGITAL I/O PINS | 20 |
PWM PINS | 3, 4, 5, 6, 8, 9, 10, 11, 12, 13 |
UART | 2 (Native and Programming) |
ANALOG INPUT PINS | 6, 12-bit ADC channels |
ANALOG OUTPUT PINS | 1, 10-bit DAC |
EXTERNAL INTERRUPTS | All pins except pin 4 |
DC CURRENT PER I/O PIN | 7 mA |
FLASH MEMORY | 256 KB |
SRAM | 32 KB |
EEPROM | None. See documentation |
LED_BUILTIN | 13 |
CLOCK SPEED | 48 MHz |
LENGTH | 68 mm |
WIDTH | 53 mm |
WEIGHT | 12 gr. |
Arduino Zeroはオープンソースのハードウェアです。以下をクリックし公式サイトよりファイルをダウンロードし自分のボードを作ることができます。
▶電子回路[EAGLE FILE ZIP]
▶電子回路[PDF]
Pinout Diagram
ARMコアの利点
Zeroには32ビットのARMコアが搭載されており、一般的な8ビットのマイクロコントローラボードよりも優れた性能を発揮します。主な違いは以下の通りです。
32ビットのコアは、4バイト幅のデータを1つのCPUクロックで演算することができます。(詳細はint型のページをご覧ください。)
CPUクロックは48MHz
12チャンネルのDMAコントローラーを搭載し、メモリを大量に消費するタスクからCPUを解放することが可能
時計/カレンダー機能を備えた32ビットのリアルタイム・カウンタ(RTC
32ビットのCRCジェネレータ
2チャネルのI2S(Inter IC Sound)インターフェース
ペリフェラル・タッチ・コントローラー(PTC
SAM-D21マイクロコントローラの詳細については、以下の資料をご参照ください。
Atmel 組み込みデバッガー
Atmel 組み込みデバッガ (EDBG) は、オンボード SAMD21 をプログラムするための SWD インターフェースを実装しており、マイクロコントローラの 1 つのハードウェアシリアルにも接続されています。つまり、「シリアル」クラスは、ボードのプログラミングポートに対応しています。ZeroはATMELと共同で設計されており、オンボードのEDBGはATMEL Studioを介してマイクロコントローラのメモリに完全にアクセスすることができ、コードのデバッグに役立ちます。
電源
Arduino Zeroは、USBコネクタまたは外部電源から電力を供給することができます。電源は自動的に選択されます。
外部電源(USB以外)は、AC-DCアダプタ(ウォールワートなど)またはバッテリーから供給され、2.1mmセンターポジティブプラグをボードの電源ジャックに接続するか、POWERコネクタのGNDおよびVINピンヘッダに直接接続することができます。
このボードは、6〜20ボルトの外部電源で動作します。推奨範囲は7~12ボルトです。
電源端子は以下の通りです。
- VIN。外部電源を使用しているときのボードへの入力電圧です(USB接続やその他の安定した電源からの5ボルトとは異なります)。このピンから電圧を供給することができます。電源ジャックから電圧を供給する場合は、このピンからアクセスします。
- 5V. このピンは、ボード上のレギュレーターから、レギュレートされた5Vを出力します。本ボードは、DC電源ジャック(7 – 12V)、USBコネクタ(5V)、またはボードのVINピン(7 – 12V)のいずれかから電源を供給することができます。5Vまたは3.3V端子から電圧を供給すると、レギュレータがバイパスされるため、十分にレギュレーションされていない場合、ボードが破損する可能性があります。お勧めできません。
- 3.3V. オンボードのレギュレーターによって生成される3.3Vの電源です。最大消費電流は800mAです。このレギュレータは、SAMD21マイクロコントローラにも電源を供給します。
GND。グラウンド端子です。 - IOREF。ボード上のこのピンは、マイクロコントローラが動作するための電圧基準を提供します。適切に構成されたシールドは、IOREFピンの電圧を読み取って適切な電源を選択したり、出力の電圧変換器を有効にして5Vまたは3.3Vで動作させることができます。
メモリ
SAMD21は256KBのフラッシュメモリを搭載しています。また、32KBのSRAMと、エミュレーションにより最大16KBのEEPROMを搭載しています。
入力と出力
Zeroの20本の汎用I/Oピンはそれぞれ、pinMode()、digitalWrite()、digitalRead()関数を使用して、デジタル入力またはデジタル出力に使用できます。PWM出力に使用可能なピンは 3, 4, 5, 6, 8, 9, 10, 11, 12, 13はanalogWrite()関数でPWM出力が可能です。すべてのピンは3.3ボルトで動作します。各ピンは最大7mAのソース/シンクが可能で,20~50kΩの内部プルアップ抵抗(デフォルトでは非接続)を備えています。
さらに、いくつかのピンは特別な機能を持っています。
- Serial:0(RX)および1(TX)。TTLシリアルデータの受信(RX)および送信(TX)に使用します。これらのピンは、Serial1クラスに接続されています。ネイティブUSBポートはSerialUSBクラスに対応しています。
- 外部インタラプト:4番ピンを除くすべてのピンで利用可能です。
- DAC: A0. analogWrite()関数で10ビットの電圧出力を提供します。
- pwm: 3, 4, 5, 6, 8, 9, 10, 11, 12, 13. analogWrite()機能により,8ビットのPWM出力が可能です。
- SPIです。SS、MOSI、MISO、SKK。ICSPヘッダ上に配置され、SPIライブラリを使用したSPI通信のみをサポートする。
- LED: 13. デジタルピン13で駆動するLEDを内蔵しています。ピンがHIGHの時、LEDは点灯し、ピンがLOWの時、消灯します。
- アナログ入力。ゼロの20本の汎用I/Oピンのうち6本がアナログ入力です。A0~A5のラベルが貼られており、それぞれが最大12ビットの分解能(つまり4096通りの値)を提供します。デフォルトでは、グランドから3.3ボルトまでを測定しますが、AREFピンとanalogReference()関数を使って、範囲の上限を変更することができます。
- TWI: SDA端子とSCL端子。WireライブラリでTWI通信をサポート
ボード上には他にもいくつかのピンがあります。
- AREF。アナログ入力の基準電圧です。analogReference()で使用されます。
- リセット。このラインをLOWにすると、マイクロコントローラーがリセットされます。通常、ボード上のリセットボタンをブロックするシールドにリセットボタンを追加するために使用します。
プログラミング
SAMD21へのスケッチのアップロードは、他のArduinoやGenuinoボードに搭載されているAVRマイクロコントローラーとは異なります。
ボードのプログラミングには、どちらのUSBポートも使用できますが、チップの消去方法を考慮すると、プログラミングポートの使用をお勧めします。
- プログラミングポート:このポートを使用するには、Arduino IDEでボードとして「Arduino/Genuino Zero(Programming Port)」を選択します。Zeroのプログラミングポート(DC電源ジャックに最も近いポート)をコンピュータに接続してください。プログラミングポートでは、EDBGをUSB-SWDチップとして使用します。
- ネイティブポート:このポートを使用するには、Arduino IDEでボードとして「Arduino/Genuino Zero (Native USB Port)」を選択してください。ネイティブUSBポートはSAMD21に直接接続されています。ZeroのNative USBポート(リセットボタンに最も近いポート)をコンピュータに接続してください。
アップロードにavrdudeを使用する他のArduino & Genuinoボードとは異なり、Zeroはbossacを使用し、プログラミングポートにはopenOCDを使用しています。
SWDによるデバッグ用のJTAGコネクター
オンボードのJTAGコネクタを使用して、外部のデバッガを使用することができます。
SPI通信用ICSPコネクタ
ICSPコネクター内のSPIピンの位置は以下の通りです。
EEPROM
フラッシュ・メモリの一部は、いくつかの制限付きで不揮発性ストレージとして使用することができます。一般的なフラッシュ・メモリの寿命は約25Kの書き込みサイクルで、EEPROMとは異なり、書き込み前にページ単位で消去する必要があります。新しいスケッチをアップロードすると、フラッシュ・メモリは消去されます。
シリアルポート
- SerialはEDBGチップに内部接続されたハードウェアシリアルポートで、プログラミング用USBコネクタを通してArduino Zeroを接続した際のコンピュータ上の仮想シリアルポートに相当します。
SerialUSBは、仮想USBシリアルポートで、ネイティブUSBコネクタからArduino Zeroを接続した際のコンピュータ上の仮想シリアルポートに相当します。 - Serial1は、ピン0と1に接続されたハードウェアのシリアルポートで、外部のシリアルデバイスに接続するために自由に使用できます。
ブートローダの書き込み
Zero Programming Portを使用して、Native USBポートで使用されているブートローダを書き込むことができます。ブートローダの書き込みは以下の手順で行います。
- ツール」→「プログラマ」→「Atmel EDBG」を選択します。
- ツール」→「ボード」→「Arduino/Genuino Zero(プログラミングポート)」を選択します。
- ツール」→「ブートローダを書き込む」を選択
USB過電流保護
ゼロ」には、コンピュータのUSBポートを短絡や過電流から保護するリセット可能なポリヒューズが搭載されています。ほとんどのコンピュータは独自の内部保護機能を備えていますが、ヒューズは追加の保護層を提供します。USBポートに500mA以上の電流が流れた場合、ショートや過負荷が解消されるまで、ヒューズが自動的に接続を解除します。
物理的特性
Zero PCBの最大の長さと幅はそれぞれ2.7インチと2.1インチで、USBコネクターと電源ジャックは前者の寸法よりも大きくなっています。3つのネジ穴により、基板を表面やケースに固定することができます。なお、デジタルピン7と8の間隔は160ミル(0.16インチ)で、他のピンの間隔である100ミルの偶数倍ではありません。Zeroは、Uno、Diecimila、Duemilanove用に設計されたほとんどのシールドと互換性があるように設計されています。デジタルピン0~13(および隣接するAREFとGNDピン)、アナログ入力0~5、電源ヘッダー、「ICSP」(SPI)ヘッダーは、すべて同等の位置に配置されています。さらに、メインのUART(シリアルポート)も同じピン(0と1)に配置されています。