Arduino Zero

概要

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ポートで使用されているブートローダを書き込むことができます。ブートローダの書き込みは以下の手順で行います。

  1. ツール」→「プログラマ」→「Atmel EDBG」を選択します。
  2. ツール」→「ボード」→「Arduino/Genuino Zero(プログラミングポート)」を選択します。
  3. ツール」→「ブートローダを書き込む」を選択

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)に配置されています。

タイトルとURLをコピーしました