Changes between Version 6 and Version 7 of Guide/ArduinoLeonardo


Ignore:
Timestamp:
May 25, 2012 1:55:28 PM (12 years ago)
Author:
sgk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Guide/ArduinoLeonardo

    v6 v7  
    1010
    1111=== リセット時にシリアルポートが再検出される ===
    12 Leonardoにはシリアル通信専用のマイコンが搭載されておらず、シリアルポートはあなたのパソコンとLeonardo上のソフトウェアにより、仮想的に実現されています。Arduinoマイコンボードを接続したときに、あなたのパソコン上にシリアルポートドライバのインスタンスが生成されるのと同様、ブートローダが動いているときにはLeonardoはシリアルインスタンスを生成しています。LeonardoはUSBのCommunications Device Class (CDC)ドライバのインスタンスです。つまり、あなたがボードをリセットするたびに、LeonardoのUSBシリアル通信は切断され、再接続されます。Leonardoはシリアルポートのリストから消え、再度リストに上ることになります。Leonardoとのシリアル接続を開いているプログラムは接続を失うことになります。これはUSB接続(ATmega8U2やATmega16U2といった二つ目のプロセッサによって管理されている)を閉じること無くメインプロセッサ(ATmega328P)をリセットできるArduino Unoとは対照的です。この違いはドライバのインストール、アップロード、そして通信に影響します。具体的には後述します。
     12Leonardoにはシリアル通信専用のマイコンが搭載されておらず、シリアルポートはあなたのパソコンとLeonardo上のソフトウェアにより、仮想的に実現されています。Arduinoマイコンボードを接続したときに、あなたのパソコン上にシリアルポートドライバのインスタンスが生成されるのと同様、ブートローダが動いているときにはLeonardoはシリアルインスタンスを生成しています。LeonardoはUSBのCommunications Device Class (CDC)ドライバのインスタンスです。つまり、あなたがボードをリセットするたびに、LeonardoのUSBシリアル通信は切断され、再接続されます。Leonardoはシリアルポートのリストから消え、再度リストに上ることになります。Leonardoとのシリアル接続を開いているプログラムは接続を失うことになります。これはUSB接続(ATmega8U2やATmega16U2といった二つ目のプロセッサによって管理されている)を閉じること無くメインプロセッサ(ATmega328P)をリセットできるArduino Unoとは対照的です。この違いはドライバのインストール、スケッチの書き込み、そして通信に影響します。具体的には後述します。
    1313
    1414=== シリアルポートを開いてもリセットされない ===
     
    5858Leonardoへのスケッチの書き込みは、Unoや他のArduinoマイコンボードでの手順と同様です。ArduinoIDEの「マイコンボードに書き込む」ボタンをクリックすると、あなたのスケッチは自動的にLeonardoに転送され、実行されます。ArduinoIDEはLeonardoをリセットし、ブートローダ(これは新しいスケッチを受信し、保存し、起動するものです。)を起動します。
    5959
    60 Leonardoのシリアルポートは仮想ですので、ボードがリセットされたときにパソコンから見えなくなります。このため、ArduinoIDEはUnoや他のボードとは異なるタイミングで書き込みを行います。Leonardoのオートリセットを開始した後(「ツール」→「シリアルポート」メニューで選択したシリアルポートを使います。)、ArduinoIDEは新たに仮想シリアルポートが見つかるまで待ちます(これがLeonardoのはずです)。その後、新たに見つかったポートにアップロードを開始します。
     60Leonardoのシリアルポートは仮想ですので、ボードがリセットされたときにパソコンから見えなくなります。このため、ArduinoIDEはUnoや他のボードとは異なるタイミングで書き込みを行います。Leonardoのオートリセットを開始した後(「ツール」→「シリアルポート」メニューで選択したシリアルポートを使います。)、ArduinoIDEは新たに仮想シリアルポートが見つかるまで待ちます(これがLeonardoのはずです)。その後、新たに見つかったポートに対して、スケッチの書き込みを実行します。
    6161
    6262これらの違いによって、オートリセットが働かなかったときにリセットボタンを用いる方法に違いが生じています。Leonardoのリセットボタンを押し、押したままの状態でArduino IDEの「マイコンボードに書き込む」ボタンをクリックします。Arduino IDEのステータスバーに「マイコンボードに書き込んでいます…」と表示された後にリセットボタンから指を離して下さい。すると、ブートローダがスタートし、パソコン上で新しい仮想シリアルポート(CDC)が作成されます。Arduino IDEはポートを見つけ、そのポートを使って書き込みを実行します。なお、この方法でのリセットが必要なのは、通常の書き込み(例えば「マイコンボードに書き込む」ボタンをクリックしたとき)がうまくいかなかった場合のみです。オートリセットはパソコンがLeonardoのシリアルポートを1200bpsで開いた後に閉じる事によって実行されます。たとえばスケッチで割り込みを禁止しているような場合には、USB通信がうまくいかず、オートリセットも動作しません。