• 検索結果がありません。

13 Analog-to-Digital Converter (ADC)

N/A
N/A
Protected

Academic year: 2021

シェア "13 Analog-to-Digital Converter (ADC)"

Copied!
131
0
0

読み込み中.... (全文を見る)

全文

(1)

Stellaris

®

LM3S9B96 Microcontroller

20 章 ユニバーサル・シリアル・バス (USB) コントローラ

JAJU152

SPMS182D 翻訳版(20 章)

最新の英語版:

http://www.ti.com/lit/gpn/lm3s9b96

(2)

JAJU152

Stellaris LM3S9B96 Microcontroller Data Sheet (Rev. D) 20 章 翻訳版

20

ユニバーサル・シリアル・バス

(USB) コントローラ

Stellaris

®

USB コントローラは、USB ホストやデバイス、OTG 機能との Full Speed または Low Speed でのポイ

ントツーポイント通信機能コントローラとして動作します。SUSPEND 信号および RESUME 信号を採用した USB

2.0 標準に準拠しています。コントロール転送用にハード・ワイヤードされたエンドポイント 2 個 (IN 用 1 つ、

OUT 用 1 つ) と、ファームウェアで定義されるエンドポイント 30 個の計 32 個のエンドポイントを備え、大規模な

ダイナミック FIFO とともに、複数のパケット・キューイングをサポートします。FIFO への

μDMA アクセスにより、シ

ステム・ソフトウェアの介在を最小限に抑えることができます。接続と切断をソフトウェアで制御し、USB デバイス起

動時のフレキシビリティを提供します。また、このコントローラは、OTG 標準のセッション要求プロトコル (SRP) およ

びホスト・ネゴシエーション・プロトコル (HNP) に準拠します。

Stellaris

®

USB モジュールの主な機能は次のとおりです。

„ USB-IF 認証標準に準拠

„ USB 2.0 Full Speed (12 Mbps) および Low Speed (1.5 Mbps) 動作に対応

„ PHY 内蔵

„ 4 つのデータ転送タイプ: コントロール転送、インタラプト転送、バルク転送、アイソクロナス転送

„ 32 個のエンドポイント

– コントロール転送専用 IN エンドポイントおよび OUT エンドポイント各 1 個

– 転送タイプが設定可能な IN エンドポイントおよび OUT エンドポイント各 15 個

„ 4 KB の専用エンドポイント・メモリ: エンドポイント 1 個を、ダブル・バッファ 1023 バイト・アイソクロナス・パケ

ット・サイズ用に設定

„ VBUS ドループおよび有効な ID の検出と割り込み

„ マイクロ・ダイレクト・メモリ・アクセス・コントローラ (μDMA) を使用した効率的なデータ転送

– 最大 3 個までの IN エンドポイントおよび 3 個までの OUT エンドポイントに対し、個別の送信チャネル

と受信チャネルを設定可能

– FIFO のデータ量が指定したレベルに達したときにチャネル要求をアサート

(3)

20.1 ブロック図

(4)

3

20.2 信号の説明

表 20-1 と表 20-2 に USB コントローラの外部信号の一覧を示し、それぞれの機能について説明します。USB

コントローラ信号は特定の GPIO 信号の代替機能であり、リセット後はデフォルトの GPIO 信号になります。次の

表中、「ピン・マルチプレクシング / ピン割り当て」の列に、これらの USB 信号に可能な GPIO ピンの配置を示し

ます。

USB 機能を選択するには、GPIO 代替機能選択 (GPIOAFSEL) レジスタの AFSEL ビットをセットする必

要があります。括弧内の数値は、指定された GPIO ポート・ピンに USB 信号を割り当てるために、GPIO ポート

制御

(GPIOPCTL) レジスタの PMCn フィールドに設定する値を示しています。USB0VBUS 信号と USB0ID 信号

は、

GPIO デジタル・イネーブル (GPIODEN) レジスタの対応する DEN ビットをクリアすることによって設定します。

GPIO の設定の詳細については、「9 汎用入出力 (GPIO)」を参照してください。その他の信号 (ピン・マルチプレク

シング / ピン割り当ての列に「固定」と記載) の割り当てピンと機能は固定です。

注:

OTG モードで使用する場合、USB0VBUS と USB0ID は、USB コントローラに専用のピンであり、また USB

コネクタの VBUS 信号および ID 信号に直接接続されるため、設定は必要ありません。USB コントローラを

専用ホストまたはデバイスとして使用する場合、USB 汎用制御&ステータス (USBGPCS) レジスタの

DEVMODOTG ビットと DEVMOD ビットを使用して USB0VBUS 入力と USB0ID 入力を内部的に固定レベルに

接続し、PB0 ピンと PB1 ピンを解放して GPIO で使用できるようにすることができます。

電源内蔵

デバイスが

正しく動作するには、引き続き VBUS 値を監視し、ホストが VBUS を解除した場合に電源内蔵デバイスが

D+/D- プルアップ抵抗をディスエーブルすることを保証する必要があります。この機能は、VBUS に標準

GPIO を接続することによって実現できます。

(5)

20-1. USB の信号 (100 LQFP)

ピン名 ピン番号 ピン・マルチプレクシング

/ ピン割り当て 入出力 バッファのタイプ

a 説明

USB0DM 70 固定 I/O アナログ 双方向差動データ・ピン (USB 仕様の D-)。 USB0DP 71 固定 I/O アナログ 双方向差動データ・ピン (USB 仕様の D+)。 USB0EPEN 19 24 34 72 83 PG0 (7) PC5 (6) PA6 (8) PB2 (8) PH3 (4) O TTL ホスト・モードでオプションとして使用され、外部 電源を制御して USB バスに電力を供給しま す。

USB0ID 66 PB0 I アナログ USB ID 信号の状態を検出します。USB PHY によって内蔵プルアップがイネーブルになり、外 部の要素 (USB コネクタ) が USB コントロー ラの初期状態を示します (プルダウンはケーブ ルの A 側、プルアップは B 側)。 USB0PFLT 22 23 35 65 74 76 87 PC7 (6) PC6 (7) PA7 (8) PB3 (8) PE0 (9) PH4 (4) PJ1 (9) I TTL 外部電源によるホスト・モードでオプションとして 使用され、その外部電源のエラー状態を示しま す。 USB0RBIAS 73 固定 O アナログ USB アナログ回路で内部的に使用する 9.1 kΩ 抵抗 (精度 1%)。 USB0VBUS 67 PB1 I/O アナログ セッション要求プロトコル動作中に使用されま す。USB PHY は、この信号によって VBUS パルス動作中に VBUS の電圧レベルを検出 したり、VBUS を一時的にプルアップしたりする ことができます。

a. 「TTL」は、ピンの電圧レベルが TTL 互換であることを示します。

20-2. USB の信号 (108BGA)

ピン名 ピン番号 ピン・マルチプレクシング / ピン割り当て 入出力 バッファのタイプ a 説明

USB0DM C11 固定 I/O アナログ 双方向差動データ・ピン (USB 仕様の D-)。 USB0DP C12 固定 I/O アナログ 双方向差動データ・ピン (USB 仕様の D+)。 USB0EPEN K1 M1 L6 A11 D10 PG0 (7) PC5 (6) PA6 (8) PB2 (8) PH3 (4) O TTL ホスト・モードでオプションとして使用され、外部 電源を制御して USB バスに電力を供給しま す。

USB0ID E12 PB0 I アナログ USB ID 信号の状態を検出します。USB PHY によって内蔵プルアップがイネーブルになり、外 部の要素 (USB コネクタ) が USB コントロー ラの初期状態を示します (プルダウンはケーブ ルの A 側、プルアップは B 側)。 USB0PFLT L2 M2 M6 E11 B11 B10 B6 PC7 (6) PC6 (7) PA7 (8) PB3 (8) PE0 (9) PH4 (4) PJ1 (9) I TTL 外部電源によるホスト・モードでオプションとして 使用され、その外部電源のエラー状態を示しま す。 USB0RBIAS B12 固定 O アナログ USB アナログ回路に対して内部的に使用する 9.1 kΩ 抵抗 (精度 1%)。 USB0VBUS D12 PB1 I/O アナログ セッション要求プロトコル動作中に使用されま す。USB PHY は、この信号によって VBUS パルス動作中に VBUS の電圧レベルを検出 したり、VBUS を一時的にプルアップしたりする ことができます。

(6)

5

20.3

機能の説明

注:

USB0RBIAS とグランドの間には 9.1 kΩ の抵抗を接続する必要があります。9.1 kΩ 抵抗は、許容誤差が

1% で、かつ ERBIAS ピンの近傍に配置する必要があります。抵抗の消費電力は低いため、任意の形状の

チップ抵抗を使用できます。

Stellaris

®

USB コントローラは、セッション要求プロトコルと (SRP) とホスト・ネゴシエーション・プロトコル (HNP)

の両方をサポートすることにより、完全な OTG ネゴシエーションを提供します。セッション要求プロトコルは、ケーブ

ルの B 側のデバイスが A 側のデバイスに対して VBUS をオンにするように要求できるようにします。ホスト・ネゴ

シエーション・プロトコルは、最初のセッション要求プロトコルがバスに電力を供給した後に使用され、ケーブルのどち

らの終端がホスト・コントローラとして動作するかを決定します。デバイスが非 OTG のペリフェラルまたはデバイス

に接続する場合、コントローラはケーブルのどちらの終端が使用されたか検出することができます。また、このときコ

ントローラがホスト・コントローラとして動作するか、それともデバイス・コントローラとして動作するかを示すレジスタを

備えています。この指示と動作モードは、USB コントローラによって自動的に処理されます。この自動検出により、

システムは、A と B に対して個別のコネクタを持つ代わりに単一の A/B コネクタを使用することができ、他の

OTG デバイスとの完全な OTG ネゴシエーションをサポートします。

さらに、USB コントローラは、非 OTG のペリフェラルまたはホスト・コントローラへの接続をサポートします。USB

コントローラは、専用ホストまたはデバイスとして動作するように設定できます。この場合、USB0VBUS 信号と

USB0ID 信号は GPIO 信号として使用できます。ただし、USB コントローラが電源内蔵デバイスとして動作する場

合は、VBUS に GPIO 入力またはアナログ・コンパレータ入力を接続し、VBUS レベルが低下したときに割り込み

を生成するように設定する必要があります。この割り込みを使用して、USB0DP 信号のプルアップ抵抗をディスエー

ブルすることができます。

(7)

20.3.1 デバイスとしての動作

この節では、Stellaris

®

USB コントローラを USB デバイスとして使用した場合の動作について説明します。USB

コントローラの動作モードをデバイスからホスト、またはホストからデバイスに変更する前に、ソフトウェア・リセット制

2 (SRCR2) レジスタの USB0 ビットをセットすることによってソフトウェアで USB コントローラをリセットする必

要があります (SRCR2 レジスタを参照)。IN エンドポイント、OUT エンドポイント、SUSPEND モードの開始と終了、

およびフレーム開始 (SOF) の認識について説明します。

デバイス・モードでは、IN トランザクションはエンドポイントの送信インターフェイスによって制御され、指定されたエン

ドポイントの送信エンドポイント・レジスタを使用します。OUT トランザクションは、エンドポイントの受信インターフェイ

スで処理され、指定されたエンドポイントの受信エンドポイント・レジスタを使用します。

エンドポイントの FIFO のサイズはエンドポイントの最大パケット・サイズを考慮して設定してください。

„ バルク

バルク・エンドポイントは、最大パケットのサイズ (最大 64 バイト)、またはダブル・バッファリングが使用されて

いる場合は最大パケット・サイズの 2 倍にする必要があります (詳細説明は次節参照)。

„ インタラプト

インタラプト・エンドポイントは、最大パケットのサイズ (最大 64 バイト)、またはダブル・バッファリングが使用さ

れている場合は最大パケット・サイズの 2 倍にする必要があります。

„ アイソクロナス

アイソクロナス・エンドポイントはより

フレキシブル

であり、最大 1023 バイトまで設定できます。

„ コントロール

USB デバイスごとに個別の コントロール・エンドポイントを指定することができます。ただし、ほとんどの場合、

USB コントローラのエンドポイント 0 上の専用 コントロール・エンドポイントを使用する必要があります。

20.3.1.1 エンドポイント

デバイスとして動作する場合、USB コントローラはホスト・コントローラとの通信に使用できる専用 コントロール・エ

ンドポイント 2 個 (IN と OUT) と 転送タイプが設定可能なエンドポイント 30 個 (IN、 OUT それぞれ 15 個)

を提供します。エンドポイントに対応するエンドポイント番号と方向は、そのレジスタでの指定に直接関係します。たと

えば、ホストがエンドポイント 1 に送信する場合、すべての設定とデータは、エンドポイント 1 送信レジスタを介しま

す。

エンドポイント 0 は、エニュメレーション中またはエンドポイント 0 に対して他の何からの制御要求が行われたとき

に、エンドポイント 0 に対するすべての制御トランザクションに使用される専用 コントロール・エンドポイントです。エ

ンドポイント 0 は、USB コントローラの FIFO RAM の最初の 64 バイトを、IN トランザクションと OUT トランザ

クションの両方の共有メモリとして使用します。

残りの 30 個のエンドポイントは、コントロール、バルク、インタラプト、または アイソクロナス・エンドポイントとして設

定できます。これらは、設定可能な 15 個の IN エンドポイントおよび設定可能な 15 個の OUT エンドポイントと

して扱います。エンドポイントのペアは、その IN エンドポイントと OUT エンドポイントの設定が同じタイプである必

要はありません。たとえば、あるエンドポイント・ペアの OUT 部分を バルク・エンドポイントとし、そのエンドポイン

ト・ペアの IN 部分を インタラプト・エンドポイントとすることができます。各エンドポイントに接続された FIFO のアド

レスとサイズは、アプリケーションのニーズに合わせて変更することができます。

(8)

7

20.3.1.2 デバイスとしての IN トランザクション

USB デバイスとして動作する場合、IN トランザクションのデータは送信エンドポイントに接続された FIFO を介して

処理されます。設定可能な 15 個の IN エンドポイントの FIFO のサイズは、USB 送信 FIFO 開始アドレス

(USBTXFIFOADD) レジスタで指定します。送信用の送信エンドポイント FIFO に格納できるデータ・パケットの最

大サイズは変更可能で、そのエンドポイントの USB 最大送信データ・エンドポイント n (USBTXMAXPn) レジスタ

に書き込まれた値によって決まります。エンドポイントの FIFO は、ダブル・パケット・バッファリングまたはシングル・

パケット・バッファリングを使用するように設定することもできます。ダブル・パケット・バッファリングがイネーブルの場

合は、2 つのデータ・パケットを FIFO にバッファリングできるため、FIFO も 2 パケット分以上のサイズが必要に

なります。ダブル・パケット・バッファリングがディスエーブルの場合、パケット・サイズが FIFO サイズの半分より小さ

い場合でも、1 つのパケットしかバッファリングできません。

注:任意のエンドポイント用に設定された最大パケット・サイズは、FIFO サイズを超えないようにしてください。また、

データが FIFO に存在する間は USBTXMAXPn レジスタにデータを書き込まないでください。予期しない結

果が生じることがあります。

シングル・パケット・バッファリング

送信エンドポイントの FIFO のサイズがこのエンドポイントの最大パケット・サイズ (USB 送信ダイナミック FIFO

サイジング (USBTXFIFOSZ) レジスタで設定) の 2 倍より小さい場合、パケットを 1 つしか FIFO にバッファリ

ングできないためシングル・パケット・バッファリングが必要になります。各パケットが送信 FIFO に完全にロードされ

た後、

USB 送信制御&ステータス・エンドポイント n Low (USBTXCSRLn) レジスタの TXRDY ビットをセットする

必要があります。

USB 送信制御&ステータス・エンドポイント n High (USBTXCSRHn) レジスタの AUTOSET ビ

ットがセットされている場合、最大サイズのパケットが

FIFO にロードされた時点で TXRDY ビットが自動的にセット

されます。パケット・サイズが最大よりも小さい場合は、TXRDY ビットを手動でセットする必要があります。TXRDY ビ

ットが手動または自動でセットされると、パケットを送信することができます。パケットが正しく送信されると、TXRDY

FIFONE の両ビットがクリアされ、対応する送信エンドポイント割り込み信号が送信されます。この時点で、次の

パケットを FIFO にロードできます。

ダブル・パケット・バッファリング

送信エンドポイントの FIFO のサイズがこのエンドポイントの最大パケット・サイズの 2 倍以上の場合、2 つのパケ

ットを FIFO にバッファリングすることができ、ダブル・パケット・バッファリングが可能です。各パケットが送信 FIFO

にロードされた後、

USBTXCSRLn レジスタの TXRDY ビットをセットする必要があります。USBTXCSRHn レジス

タの AUTOSET ビットがセットされている場合、最大サイズのパケットが FIFO にロードされた時点で TXRDY ビッ

トが自動的にセットされます。パケット・サイズが最大よりも小さい場合は、TXRDY を手動でセットする必要がありま

す。TXRDY ビットが手動または自動でセットされると、パケットを送信することができます。最初のパケットがロードさ

れると直ちに TXRDY がクリアされ、割り込みが生成されます。その後、2 番目のパケットが FIFO にロードされ、

TXRDY が手動で、またはパケットが最大サイズの場合は自動的に再びセットされると、この時点で、両方のパケット

を送信することができます。各パケットが正しく送信されると、TXRDY が自動的にクリアされて対応する送信エンドポ

イント割り込みが送信され、この時点で別のパケットを送信 FIFO にロードできます。この時、USBTXCSRLn レジ

スタの

FIFONE ビットは、ロードできるパケット数を示します。FIFONE ビットがセットされている場合、別のパケット

FIFO に存在しており、パケットをあと 1 つだけロードすることができます。FIFONE ビットがクリアされている場

(9)

合、パケットが FIFO に存在しないため、パケットをあと 2 つロードすることができます。

注: エンドポイントに対応する USB 送信ダブル・パケット・バッファ・ディスエーブル (USBTXDPKTBUFDIS) レ

ジスタの

EPn ビットがセットされている場合、ダブル・パケット・バッファリングがディスエーブルです。このビット

はデフォルトでセットされているため、ダブル・パケット・バッファリングを有効にするにはクリアする必要がありま

す。

20.3.1.3 デバイスとしての OUT トランザクション

デバイス・モードでは、OUT トランザクションは USB コントローラ受信 FIFO を介して処理されます。設定可能な

15 個の OUT エンドポイントのサイズは、USB 受信 FIFO 開始アドレス (USBRXFIFOADD) レジスタで指定し

ます。任意のパケットでエンドポイントが受信する最大データ量は、そのエンドポイントの USB 最大受信データ・エ

ンドポイント n (USBRXMAXPn) レジスタに書き込まれた値によって決まります。ダブル・パケット・バッファリングが

イネーブルの場合、2 つのデータ・パケットを FIFO にバッファリングできます。ダブル・パケット・バッファリングがデ

ィスエーブルの場合、パケットが FIFO サイズの半分より小さくてもパケットを 1 つしかバッファリングできません。

注: いかなる場合でも、最大パケット・サイズが

FIFO サイズを超えないようにしてください。

シングル・パケット・バッファリング

受信エンドポイント FIFO のサイズがエンドポイントの最大パケット・サイズの 2 倍より小さい場合、1 つのデータ・

パケットしか FIFO にバッファリングできないためシングル・パケット・バッファリングが必要になります。パケットを受

信して受信 FIFO に格納すると、USB 受信制御&ステータス・エンドポイント n Low (USBRXCSRLn) レジスタ

RXRDY ビットと FULL ビットがセットされ、対応する受信エンドポイントに信号が送信され、この時点で FIFO

からパケットをアンロードできることを示します。パケットがアンロードされた後、続いて他のパケットを受信するには、

RXRDY ビットをクリアする必要があります。このとき、ホスト・コントローラにアクノリッジ信号が送信されます。USB

受信制御&ステータス・エンドポイント

n High (USBRXCSRHn) レジスタの AUTOCL ビットがセットされている状

態で最大サイズのパケットが

FIFO からアンロードされると、RXRDY ビットと FULL ビットが自動的にクリアされま

す。パケット・サイズが最大よりも小さい場合、RXRDY を手動でクリアする必要があります。

ダブル・パケット・バッファリング

受信エンドポイントの FIFO のサイズがこのエンドポイントの最大パケット・サイズの 2 倍以上の場合、2 つのデー

タ・パケットをバッファリングすることができ、ダブル・パケット・バッファリングを使用できます。最初のパケットを受信し

て受信

FIFO にロードすると、USBRXCSRLn レジスタの RXRDY ビットがセットされ、対応する受信エンドポイン

ト割り込みが送信され、この時点で FIFO からパケットをアンロードできることを示します。

注:

最初のパケットを受信した時点では、USBRXCSRLn の FULL ビットはセットされません。このビットは、2 番

目のパケットを受信し、受信 FIFO にロードしたときにのみセットされます。

(10)

9

リアする必要があります。RXRDY のクリア時に FULL ビットがセットされている場合、USB コントローラはまず

FULL ビットをクリアしてから再び RXRDY をセットし、アンロード待機中の別パケットが FIFO 内に存在することを

示します。

注: USB 受信ダブル・パケット・バッファ・ディスエーブル (USBRXDPKTBUFDIS) レジスタで、エンドポイントに

対応する EPn ビットがセットされている場合、ダブル・パケット・バッファリングがディスエーブルです。このビッ

トはデフォルトでセットされているため、ダブル・パケット・バッファリングを有効にするにはクリアする必要があり

ます。

20.3.1.4 スケジューリング

デバイスはトランザクションのスケジューリングを制御しません。スケジューリングはホスト・コントローラによって決定

されます。Stellaris

®

USB コントローラは、いつでもトランザクションを開始することができます。USB コントローラは、

ホスト・コントローラからの要求を待機し、トランザクションが完了するか、または何からのエラーで終了した場合に割

り込みを生成します。ホスト・コントローラが要求を行った時点でデバイス・コントローラがレディでない場合、レディに

なるまで

USB コントローラはすべての要求に対してビジー応答 (NAK) を送信します。

20.3.1.5 その他の動作

USB コントローラは、コントロール転送や予期しない長さゼロの OUT データ・パケットを自動的にストールする場

合など、USB バスの特定の状態またはホスト・コントローラの処理に自動的に応答します。

コントロール転送のストール

USB コントローラは、以下の状態の制御転送に対して STALL ハンドシェークを自動的に発行します。

z ホストが、セットアップ・フェーズ中にデバイス要求で指定されたよりも多くのデータを、コントロール転送の OUT

データ・フェーズで送信した状態

この状態は、最後の OUT パケットがアンロードされ、USB 制御&ステータス・エンドポイント 0 Low

(USBCSRL0) レジスタの DATAEND がセットされた後、ホストが OUT トークン (IN トークンでなく) を送信し

たときに、USB コントローラによって検出されます。

z ホストが、セットアップ・フェーズ中にデバイス要求で指定されたよりも多くのデータを、制御転送の IN データ・フ

ェーズで要求した状態

この状態は、最終パケットであるはずのパケットに対してホストから発行された ACK に応答して CPU が

TXRDY をクリアし、DATAEND をセットした後、ホストが IN トークン (OUT トークンでなく) を送信したときに、

USB コントローラによって検出されます。

z ホストが、OUT データ・トークンで USBRXMAXPn バイトを超えるデータを送信した状態。

z ホストが、OUT ステータス・フェーズで長さがゼロを超えるデータ・パケットを送信した状態。

(11)

長さゼロの OUT データ・パケット

長さゼロの OUT データ・パケットは、コントロール転送の終了を示すのに使用されます。通常動作では、デバイス

要求の長さ全体が転送された後で、必ずこのようなパケットを受信する必要があります。

しかし、デバイス要求の長さ全体が転送される前に、ホストが長さゼロの OUT データ・パケットを送信すると、

早期

転送終了として通知されます。この場合、USB コントローラはデータ・フェーズの準備が整ったすべての IN トー

クンを

FIFO から自動的にフラッシュし、USBCSRL0 レジスタの DATAEND ビットをセットします。

デバイス・アドレスの設定

ホストが、USB デバイスのエニュメレーションを試行する場合、デバイスに対してそのアドレスをゼロから他のある値

に 変 更 す る よ う に 要 求 し ま す 。 ア ド レ ス の 変 更 は 、 ホ ス ト が 要 求 し た 値 を

USB デ バ イ ス 機 能 ア ド レ ス

(USBFADDR) レジスタに書き込むことによって実行されます。ただし、USBFADDR に書き込む場合は、トランザク

シ ョ ン が 完 了 す る 前 に ア ド レ ス を 変 更 し な い よ う に 注 意 す る 必 要 が あ り ま す 。 こ の レ ジ ス タ は 、 必 ず

SET_ADDRESS コマンドが完了した後で設定してください。すべてのコントロール・トランザクションと同様に、このト

ランザクションはデバイスがステータス・フェーズを終了した後でのみ完了します。SET_ADDRESS コマンドの場合、

トランザクションはホストからの IN 要求にゼロ・バイト・パケットで応答することによって完了します。デバイスが IN

要求に応答した後は、USBFADDR レジスタをできるだけ早く新しい値に設定して、新しいアドレスに送信される新し

いコマンドが失われないようにする必要があります。

注: デバイスが

SET_ADDRESS コマンドが含まれたパケットの OUT トランザクションを受信した直後に

USBFADDR レジスタを新しい値に設定すると、コントロール転送の間にアドレスが変更されます。この場合、

IN 要求は古いアドレスに送信されるため、デバイスは IN 要求を受信せず、USB トランザクションはコントロ

ール転送のステータス・フェーズを終了することができません。その結果、ホストは IN 要求に対する応答を受

け取らず、デバイスのエニュメレーションに失敗します。

20.3.1.6 デバイス・モード SUSPEND

USB バス上で 3 ms 間アクティビティが発生しないと、USB コントローラは自動的に SUSPEND モードに移行し

ます。USB 割り込みイネーブル (USBIE) レジスタで SUSPEND 割り込みをイネーブルにしている場合、この時

点で割り込みが生成されます。SUSPEND モードでは、PHY も SUSPEND モードに移行します。RESUME 信号

が検出されると、USB コントローラは SUSPEND モードを終了し、PHY を SUSPEND から復帰させます。

RESUME 割り込みがイネーブルの場合、割り込みが生成されます。USB 電源 (USBPOWER) レジスタの

RESUME ビットをセットすることによって、USB コントローラに強制的に SUSPEND モードを終了させることもでき

ます。このビットをセットすると、USB コントローラは SUSPEND モードを終了し、RESUME 信号をバス上に発信

します。RESUME ビットは、10 ms 後 (15 ms 以内) に クリアして RESUME 信号の発信を終了する必要があり

ます。

USB 規格の電源要件を満たすために、コントローラをディープ・スリープ・モードにして低消費電力の状態に保つこと

ができます。 (訳注:Rev C3/C5 のデバイスではエラッタによりディープ・スリープ・モードは使用できません。詳細は

各デバイスのエラッタを参照してください。)

(12)

11

20.3.1.7 フレーム開始

USB コントローラは、デバイス・モードで動作する場合、ホストから 1 ms ごとにフレーム開始 (SOF) パケットを受

け取ります。SOF パケットを受信すると、パケットに含まれる 11 ビットのフレーム番号が USB フレーム値

(USBFRAME) レジスタに書き込まれます。また、SOF 割り込み信号が送信され、アプリケーションで処理すること

ができます。SOF パケットの受信開始後、USB コントローラは 1 ms ごとに 1 つの SOF パケットを受信すること

とみなします。1.00358 ms 経過しても SOF パケットが受信されない場合、パケットは失われたとみなされ、

USBFRAME レジスタは更新されません。パケットが再び正しく受信されると、USB コントローラは受信 SOF パケ

ットと同期したパルス送信を継続します。

20.3.1.8 USB RESET

USB コントローラがデバイス・モードの場合、USB バス上で RESET 状態が検出されると、USB コントローラは以

下の処理を自動的に実行します。

„ USBFADDR レジスタをクリア

„ USB エンドポイント・インデックス (USBEPIDX) レジスタをクリア

„ すべてのエンドポイント FIFO をフラッシュ

„ すべての制御 / ステータス・レジスタをクリア

„ すべてのエンドポイント割り込みをイネーブル

„ RESET 割り込みを生成

USB コントローラを駆動してるアプリケーション・ソフトウェアが RESET 割り込みを受信したとき、開いているすべ

てのパイプが閉じられ、USB コントローラはバスのエニュメレーションが始まるのを待っている状態です。

20.3.1.9 接続/切断

USB バスへの USB コントローラの接続は、ソフトウェアによって処理されます。USBPOWER レジスタの

SOFTCONN ビットをセットまたはクリアすることにより、USB PHY のモードを通常モードと非駆動モードとで切り換え

ることができます。SOFTCONN ビットをセットすると、PHY は通常モードになり、USB バスの USB0DP/USB0DM ラ

インがイネーブルされます。同時に、USB コントローラは USB RESET 信号のみに応答する状態になります。

SOFTCONN ビットをクリアすると、PHY は非駆動モードに移行します。USB0DP と USB0DM がトライステートになり、

USB バス上の他のデバイスには USB コントローラが切断されているように見えます。非駆動モードはデフォルト

設定であるため、SOFTCONN ビットがセットされるまで USB コントローラは切断されているものとして扱われます。

PHY を通常モードに設定するタイミングは、アプリケーション・ソフトウェアによって選択します。システムに設定する

初期化手順の時間を長めにすることによって、初期化の完了を確実にし、USB バスに接続する前にバス・エニュメ

レーションの準備状態にしておくことができます。SOFTCONN ビットのセット後、再びこのビットをクリアすることによっ

て USB コントローラを切断することができます。

注: デバイスがホストに接続されている場合、USB コントローラは割り込みを生成しません。

ホストがセッションを終了すると割り込みが生成されます。

(13)

20.3.2 ホストとしての動作

ホスト・モードで動作する場合、Stellaris

®

USB コントローラは、別の USB デバイスとのポイントツーポイント通信に

使用したり、ハブに接続すれば複数デバイスとの通信に使用したりすることができます。USB コントローラの動作モ

ードをホストからデバイス、またはデバイスからホストに変更する前に、ソフトウェア・リセット制御 2 (SRCR2) レジ

スタの

USB0 ビットをセットすることによってソフトウェアで USB コントローラをリセットする必要があります

(SRCR2 レジスタを参照)。ポイントツーポイント通信とハブを介した通信のいずれにおいても、Full Speed の USB

デバイスと Low Speed の USB デバイスの両方をサポートします。USB コントローラは、Full Speed または

Low Speed のデバイスを USB 2.0 ハブを通して使用するために必要なトランザクション変換を自動的に実行しま

す。コントロール、バルク、アイソクロナス、および インタラプト・トランザクションをサポートしています。この節では、

USB コントローラを USB ホストとして使用した場合の動作について説明します。IN エンドポイント、OUT エンドポ

イント、SUSPEND モードへの移行と SUSPEND モードからの復帰、および RESET の設定について説明しま

す。

ホスト・モードでは、IN トランザクションはエンドポイントの受信インターフェイスによって制御されます。すべての IN

トランザクションは受信エンドポイント・レジスタを使用し、すべての OUT エンドポイントは指定されたエンドポイント

の送信エンドポイント・レジスタを使用します。デバイス・モードと同様に、エンドポイントの FIFO のサイズはエンドポ

イントの最大パケット・サイズを考慮して設定してください。

„ バルク

バルク・エンドポイントは、最大パケットのサイズ (最大 64 バイト)、またはダブル・バッファリングが使用されて

いる場合は最大パケット・サイズの 2 倍にする必要があります (詳細説明は次節参照)。

„ インタラプト

インタラプト・エンドポイントは、最大パケットのサイズ (最大 64 バイト)、またはダブル・バッファリングが使用さ

れている場合は最大パケット・サイズの 2 倍にする必要があります。

„ アイソクロナス

アイソクロナス・エンドポイントはよりフレキシブルであり、最大 1023 バイトまで設定できます。

„ コントロール

デバイスとの通信には、個別の コントロール・エンドポイントを指定することができます。ただし、ほとんどの場合、

デバイスのエンドポイント 0 と通信するために専用の コントロール・エンドポイントを使用する必要があります。

20.3.2.1 エンドポイント

エンドポイント・レジスタは、接続されたデバイスと通信する USB エンドポイント・インターフェイスの制御に使用され

ます。エンドポイントは、コントロール専用

IN エンドポイント、コントロール専用 OUT エンドポイント、各タイプに設

定可能な OUT エンドポイント 15 個、および各タイプに設定可能な IN エンドポイント 15 個で構成されます。

コントロール専用インターフェイスは、デバイスのエンドポイント 0 のコントロール・トランザクション専用です。これら

のトランザクションは、エニュメレーション中、またはデバイスのエンドポイント 0 を使用する他のコントロール転送実

行中に使用されます。このコントロール・エンドポイントは、USB コントローラの FIFO RAM の最初の 64 バイトを

IN トランザクションと OUT トランザクションで共有します。残りの IN インターフェイスと OUT インターフェイスは、

コントロール、バルク、インタラプト、またはアイソクロナスの各デバイス・エンドポイントと通信するように設定できま

す。

(14)

13

ジスタセットにより

IN および OUT エンドポイントをペアにして制御します。ただし、これらは、デバイス上の異なるタ

イプのエンドポイントおよび異なるエンドポイントと通信するように設定できます。たとえば、エンドポイントの最初のペ

アに対し、OUT 部分がデバイスの バルク OUT エンドポイント 1 と、IN 部分がデバイスの インタラプト IN エン

ドポイント 2 と通信するように分割できます。

ポイントツーポイント通信またはハブを介した通信のいずれにおいても、アクセスされるデバイスのアドレスを保存す

るために、各受信エンドポイントに対しては

USB 受信機能アドレス・エンドポイント n (USBRXFUNCADDRn) レ

ジスタ、送信エンドポイントに対しては USB 送信機能アドレス・エンドポイント n (USBTXFUNCADDRn) レジスタ

を、デバイスにアクセスする前にそれぞれ設定する必要があります。

USB コントローラは、各 USB 転送のハブ・アドレスとポートを指定するレジスタを備え、USB ハブを介したデバイ

スへの接続もサポートしています。FIFO のアドレスとサイズはカスタマイズ可能であり、USB IN 転送ごとおよび

OUT 転送ごとに指定できます。カスタマイズすることによって、トランザクションごとに 1 つの FIFO を設定したり、

複数のトランザクションで FIFO を共有したり、ダブル・バッファ FIFO を設定したりすることができます。

20.3.2.2 ホストとしての IN トランザクション

IN トランザクションは、最初に USBCSRL0 レジスタの REQPKT ビットをセットし、このエンドポイントにアクティブ

なトランザクションが存在することをトランザクション・スケジューラに示すことによってトランザクションを開始する必要

がありますが、それ以外は

USB コントローラがデバイス・モードのときに OUT トランザクションを処理するのと同

様の方法で処理されます。次に、トランザクション・スケジューラはターゲット・デバイスに IN トークンを送信します。

パケットを受信して受信

FIFO に格納すると、USBCSRL0 レジスタの RXRDY ビットがセットされ、対応する受信

エンドポイント割り込みが送信され、この時点で FIFO からパケットをアンロードできることを示します。

パケットがアンロードされた場合は、RXRDY をクリアする必要があります。USBRXCSRHn レジスタの AUTOCL ビ

ットを使用して、最大サイズのパケットが

FIFO からアンロードされた時点で RXRDY を自動的にクリアすることがで

きます。RXRDY ビットがクリアされると、 USBRXCSRHn の AUTORQ ビットの設定に応じて REQPKT ビットが自

動的にセットされます。

μDMA アクセスで AUTOCL ビットと AUTORQ ビットを使用すると、メイン・プロセッサを介す

ことなく完全な

バルク転送を実行できます。RXRDY ビットがクリアされると、コントローラはデバイスにアクノリッジを

送信します。既知の数のパケットを転送する場合は、エンドポイントに対応する USB ブロック転送エンドポイントで

の要求パケット・カウント n (USBRQPKTCOUNTn) レジスタに、転送するパケット数を設定する必要があります。

USB コ ン ト ロ ー ラ は 、 各 要 求 の 後 に USBRQPKTCOUNTn レ ジ ス タ 内 の 値 を デ ク リ メ ン ト し ま す 。

USBRQPKTCOUNTn の値がデクリメントされて 0 になると、AUTORQ ビットがクリアされ、トランザクションがそれ

以上試行されないようにします。転送のサイズが不明の場合は、USBRQPKTCOUNTn をクリアする必要がありま

す。このとき AUTORQ は、バルク転送の終了などで発生するショート・パケット (つまり、USBRXMAXPn レジスタ

MAXLOAD の値未満) の受信によってクリアされるまでセットされた状態に維持されます。

デバイスが バルクまたは インタラプト IN トークンに NAK で応答すると、USB ホスト・コントローラは設定された

NAK 制限に達するまでトランザクションの再試行を続けます。ただし、ターゲット・デバイスが STALL で応答する場

合、

USB ホスト・コントローラはトランザクションの再試行を行わず、USBCSRL0 レジスタの STALLED ビットをセ

ットします。ターゲット・デバイスが要求された時間内に IN トークンに応答しない場合、またはパケットに CRC エラ

ーまたはビット・スタッフ・エラーが含まれる場合は、USB ホスト・コントローラはトランザクションを再試行します。3

回試行してもターゲット・デバイスが応答しない場合、USB ホスト・コントローラは USBCSRL0 レジスタの

REQPKT ビットをクリアし、ERROR ビットをセットします。

(15)

20.3.2.3 ホストとしての OUT トランザクション

OUT トランザクションは、USB コントローラがデバイス・モードの場合に IN トランザクションが処理されるのと同様

の方法で処理されます。各パケットが送信

FIFO にロードされた場合、USBTXCSRLn レジスタの TXRDY ビット

をセットする必要があります。この場合も、

USBTXCSRHn レジスタの AUTOSET ビットをセットすることによって、

最大サイズのパケットが

FIFO にロードされた時点で TXRDY を自動的にセットすることができます。さらに、μDMA

コントローラで

AUTOSET を使用することによって、ソフトウェアを介さずに完全なバルク転送を実行することができ

ます。

ターゲット・デバイスが OUT トークンに NAK で応答すると、USB ホスト・コントローラは設定された NAK 制限に

達するまでトランザクションの再試行を続けます。ただし、ターゲット・デバイスが STALL で応答すると、USB コント

ローラはトランザクションの再試行を行わず、

USBTXCSRLn レジスタの STALLED ビットをセットすることによって

メイン・プロセッサに割り込みます。ターゲット・デバイスが要求された時間内に OUT トークンに応答しない場合、ま

たはパケットに CRC エラーまたはビット・スタッフ・エラーが含まれる場合は、USB ホスト・コントローラがトランザク

ションを再試行します。3 回試行してもターゲット・デバイスが応答しない場合、USB ホスト・コントローラは FIFO

をフラッシュし、

USBTXCSRLn レジスタの ERROR ビットをセットします。

20.3.2.4 トランザクション・スケジューリング

トランザクションのスケジューリングは、USB ホスト・コントローラによって自動的に処理されます。ホスト・コントロー

ラにより、エンドポイント・トランザクションのタイプに基づくエンドポイント通信スケジューリングの設定が可能になりま

す。インタラプト・トランザクションの発生スケジュールは、1 フレームごとから 255 フレームごとの範囲内で、1 フレ

ーム単位で設定することができます。

バルク・エンドポイントでは、スケジューリング・パラメータは使用できませんが、デバイスのエンドポイントが応答しな

い場合

NAK タイムアウトを実行することができます。アイソクロナス・エンドポイントのスケジュールは、1 フレーム

ごとから 2

16

フレームごとの範囲内で、2 の累乗で設定することができます。

USB コントローラは、フレーム・カウンタを維持します。ターゲット・デバイスが Full Speed デバイスの場合、USB

コントローラは各フレームの開始時に自動的に SOF パケットを送信し、フレーム・カウンタをインクリメントします。タ

ーゲット・デバイスが Low Speed デバイスの場合、バスに K ステートが送信されてキープアライブとして動作し、

Low Speed デバイスが SUSPEND モードに移行するのを阻止します。

SOF パケットが送信された後、USB ホスト・コントローラは設定されたすべてのエンドポイントを巡回し、アクティブ

なトランザクションを探します。アクティブなトランザクションとは、REQPKT ビットがセットされる受信エンドポイント、お

よび TXRDY ビットか FIFONE ビット、またはその両方がセットされる送信エンドポイントです。

アイソクロナス・トランザクションまたはインタラプト・トランザクションは、フレームの最初のスケジューラ・サイクルでト

ランザクションが検出され、かつ、そのエンドポイントのインターバル・カウンタがゼロにカウント・ダウンした場合に開

始されます。その結果、各エンドポイントでインタラプト・トランザクションまたはアイソクロナス・トランザクションが

n

フレームごとに

1 つだけ発生します。このとき、n はそのエンドポイントの USB ホスト送信インターバル・エンドポ

イ ン ト

n (USBTXINTERVALn) レ ジ ス タ ま た は USB ホ ス ト 受 信 イ ン タ ー バ ル ・ エ ン ド ポ イ ン ト n

(USBRXINTERVALn) レジスタを介してセットされるインターバルを示します。

アクティブなバルク・トランザクションは、次の SOF パケットが予定される前にこのトランザクションを完了するため

の十分な時間がフレームに残されている場合は直ちに開始されます。NAK を受信した場合やターゲット・デバイス

(16)

15

の NAK を送信しているエンドポイントがバス上で他のトランザクションをブロックしないことを保証しています。コント

ローラによって、エンドポイントがタイムアウトする前にターゲット・デバイスから受信する NAK の時間制限を指定す

ることもできます。

20.3.2.5 USB ハブ

以下の設定要件は、USB ホスト・コントローラを USB ハブとともに使用する場合にのみ適用されます。Full Speed

デバイスまたは Low Speed デバイスを USB 2.0 ハブを介して USB コントローラに接続する場合、ハブ・アドレ

スとハブ・ポートの詳細も、対応する

USB 受信ハブ・アドレス・エンドポイント n (USBRXHUBADDRn) レジスタと

USB 受信ハブ・ポート・エンドポイント n (USBRXHUBPORTn) レジスタ、または USB 送信ハブ・アドレス・エン

ドポイント n (USBTXHUBADDRn) レジスタと USB 送信ハブ・ポート・エンドポイント n (USBTXHUBPORTn)

レジスタに保存する必要があります。さらに、デバイスがアクセスするエンドポイントごとに、USB タイプ・エンドポイ

ント 0 (USBTYPE0) (エンドポイント 0)、USB ホスト設定送信タイプ・エンドポイント n (USBTXTYPEn)、または

USB ホスト設定受信タイプ・エンドポイント n (USBRXTYPEn) レジスタにデバイスの動作速度 (Full または

Low) を保存する必要があります。

ハブを介した通信では、これらのレジスタの設定により、接続された USB デバイスへの現在のエンドポイントの割り

当てを保存します。サポートされるデバイス数を最大にするために、USB ホスト・コントローラは、これらのレジスタに

保存されるアドレス情報と速度情報を更新するだけで、この割り当てを動的に変更できます。デバイス機能へのエン

ドポイント割り当ての変更は、影響を受けるエンドポイントで実行中のトランザクションがすべて完了した後に行う必

要があります。

20.3.2.6 バブル

USB ホスト・コントローラは、バスがインアクティブの状態が最小パケット間遅延以上継続するまで、トランザクション

を開始しません。コントローラがフレーム終了までにトランザクションを完了できない場合も、トランザクションを開始し

ません。フレーム終了時に引き続きバスがアクティブな場合、USB ホスト・コントローラは接続されたターゲット・デバ

イスが正常に動作していないとみなし、USB コントローラはすべてのトランザクションを中断し、バブル割り込みを生

成します。

20.3.2.7 ホスト SUSPEND

USBPOWER レジスタの SUSPEND ビットがセットされると、USB ホスト・コントローラは現在のトランザクションを

完了し、トランザクション・スケジューラとフレーム・カウンタを停止します。以降、トランザクションは開始されず、SOF

パケットも生成されません。

SUSPEND モードを終了するには、RESUME ビットをセットし、SUSPEND ビットをクリアしてください。RESUME ビッ

トがセットされると、

USB ホスト・コントローラはバス上に RESUME 信号を送信します。20 ms 後、RESUME ビット

がクリアされ、フレーム・カウンタとトランザクション・スケジューラが起動します。ホストは、リモート・ウェイク・アップの

検出をサポートします。

(17)

20.3.2.8 USB RESET

USBPOWER レジスタの RESET ビットがセットされると、USB ホスト・コントローラはバス上に USB RESET 信

号を送信します。ターゲット・デバイスを正しくリセットするために、RESET ビットは 20 ms 以上セット状態を維持する

必要があります。CPU がこのビットをクリアすると、USB ホスト・コントローラはそのフレーム・カウンタとトランザクシ

ョン・スケジューラを起動します。

20.3.2.9 接続/切断

USB デバイス制御 (USBDEVCTL) レジスタの SESSION ビットをセットすることによってセッションが開始され、

USB コントローラはデバイスが接続されるのを待機します。デバイスが検出されると、接続割り込みが生成されます。

接続されたデバイスの速度は、USBDEVCTL レジスタを読み取ることによって判断できます。Full Speed デバイス

の場合は FSDEV ビットがセットされ、Low Speed デバイスの場合は LSDEV ビットがセットされています。USB コ

ントローラはデバイスへの RESET 信号を生成する必要があり、その後、USB ホスト・コントローラはデバイスのエ

ニュメレーションを開始できます。セッション処理中にデバイスが切断されると、切断割り込みが生成されます。

20.3.3 OTG モード

電力を節約するため、USB On-The-Go (OTG) 機能を使用して、必要な場合のみ VBUS をオンにし、バスが使用

されていない場合はオフにすることができます。VBUS は常にバス上の A デバイスによって供給されます。USB

OTG コントローラは、PHY からの ID 入力をサンプリングすることによって、A デバイスか B デバイスかを判断し

ます。この信号は、A タイプのプラグが検出された (USB OTG コントローラが、A デバイスとして動作することを示

す) 場合は Low に設定され、B タイプのプラグが検出された (USB OTG コントローラが、B デバイスであること

を示す) 場合は High に設定されます。OTG A と OTG B とを切り換える場合、USB コントローラはレジスタのす

べての内容を保持します。

20.3.3.1 セッションの開始

USB OTG コントローラがセッション開始レディ状態のときに、USBDEVCTL レジスタの SESSION ビットをセットし

ます。次に、USB OTG コントローラは ID ピンの検出をイネーブルします。ID 入力は、A タイプの接続が検出され

た場合は

Low、B タイプの接続が検出された場合は High になります。また、USBDEVCTL レジスタの DEV ビ

ットもセットされ、USB OTG コントローラが A デバイスと B デバイスのどちらの役割を採用したかを示します。

USB OTG コントローラは、ID ピン検出の完了と、USBDEVCTL レジスタのモード値が有効であることを示す割り

込みも備えています。この割り込みは、USBIDVIM レジスタでイネーブルされ、その状態は USBIDVISC レジスタ

で確認できます。USB コントローラは、ケーブルの A 側であることを検出した場合、100 ms 以内に VBUS 電源

をイネーブルする必要があります。100 ms 以内に VBUS 電源をイネーブルしなかった場合、USB コントローラは

デバイス・モードに戻ります。

USB OTG コントローラが A デバイスの場合、USB OTG コントローラはホスト・モードに移行し (A デバイスは常

にデフォルトでホスト)、VBUS を起動し、VBUS が VBUS 有効スレッショルドを超えるのを待ちます。これは、

USBDEVCTL レジスタの VBUS ビットが 0x3 になることで示されます。次に、USB OTG コントローラはペリフェ

ラルが接続されるのを待ちます。ペリフェラルが検出されると、接続割り込み信号が送信され、Full Speed ペリフェ

Low Speed ペリフェラルのいずれが検出されたかによって、USBDEVCTL レジスタの FSDEV ビットと

(18)

17

出された場合、または VBUS がセッション有効値を下回った場合、USB OTG コントローラは自動的にセッションを

終了します。

注: 大電流デバイスに接続した場合、USB OTG コントローラはホスト・モードでなくなることがあります。大電流デ

バイスに相当量の電流が流れ、VBUS が一時的に有効レベルを下回ると、コントローラはホスト・モードでなく

なります。ホスト・モードに戻す唯一の方法は、VBUS がセッション終了レベルより低くなるのを許可するという

ものです。この場合、デバイスは

VBUS の低下を繰り返し発生させ、次回 VBUS がイネーブルされるときに

VBUS を Low に戻します。

また、デバイスがそのアクティブな設定の使用を開始できることを通知されたときにも、USB OTG コントローラ

はホスト・モードに維持されない場合があります。この時点で、デバイスにより大きな電流が流れ、VBUS が 有

効レベルを下回る可能性があります。

USB OTG コントローラが B デバイスの場合、USB OTG コントローラは、USB On-The-Go 追加仕様で規定され

たセッション要求プロトコル

(VBUS の放電) によってセッションを要求します。次に、VBUS がセッション終了スレッ

ショルドを下回り

(USBDEVCTL レジスタの VBUS ビットが 0x0 になり)、ライン状態が 2 ms を超えてシングル

エンド・ゼロであった場合、USB OTG コントローラはデータ・ラインにパルスを送り、次に VBUS にパルスを送りま

す。セッションが終了すると、SESSION ビットは USB OTG コントローラまたはアプリケーション・ソフトウェアのいず

れかによってクリアされます。次に、USB OTG コントローラは、PHY に D+ でプルアップ抵抗をスイッチ・アウトさ

せ、A デバイスにセッション終了を信号として送信します。

20.3.3.2 アクティビティの検出

OTG 設定の他方のデバイスがセッションを開始しようとする場合、A デバイスの場合は VBUS をセッション有効ス

レッショルドより上にし、B デバイスの場合はデータ・ラインにパルスを送り、次に VBUS にパルスを送ります。この

どちらの処理が行われるかによって、USB コントローラは現在の設定でコントローラが A デバイスと B デバイス

のどちらであるかを判断し、それに応じて動作することができます。VBUS がセッション有効スレッショルドを上回る

場 合 、 こ の

USB コントローラは B デバイスとなります。USB コントローラは、 USBDEVCTL レジスタの

SESSION ビットをセットします。バス上で RESET 信号が検出されると、RESET 割り込みが送信され、セッション

の開始とみなされます。

B デバイスがデフォルト・モードであるため、USB コントローラはデバイス・モードになります。セッションが終了する

と、A デバイスは VBUS の電源を切断します。VBUS がセッション有効スレッショルドを下回ると、USB コントロー

ラはこの降下を検出し、SESSION ビットをクリアしてセッションが終了したことを示します。これにより、切断割り込み

が送信されます。データ・ラインと VBUS パルスが検出されると、この USB コントローラは A デバイスになります。

コントローラは、SESSION REQUEST 割り込みを生成して、B デバイスがセッションを要求していることを示します。

USBDEVCTL レジスタの SESSION ビットをセットして、セッションを開始する必要があります。

(19)

20.3.3.3 ホスト・ネゴシエーション

USB コントローラが A デバイスの場合、ID は Low であり、セッションが開始されるとコントローラは自動的にホス

ト・モードに移行します。USB コントローラが B デバイスの場合、ID は High であり、セッションが開始されるとコ

ントローラは自動的にデバイス・モードに移行します。ただし、

USBDEVCTL レジスタの HOSTREQ ビットをセットす

ることによって、

USB コントローラがホストになるようにソフトウェアで要求することもできます。このビットは、

USBDEVCTL レジスタの SESSION ビットをセットすることによってセッション開始の要求と同時にセットすることも、

セッション開始後の任意の時点でセットすることもできます。HOSTREQ ビットがセットされたままの場合、USB コント

ローラが次に SUSPEND モードに移行したときに、PHY が D+ ラインのプルアップ抵抗を切断することによって、

コントローラをホスト・モードに移行してホスト・ネゴシエーション (USB On-The-Go 追加仕様の規定に従って) を開

始し、A デバイスをデバイス・モードに切り替えてその A デバイスのプルアップ抵抗が接続されます。USB コントロ

ーラがこれを検出すると、接続割り込みが生成され、

USBPOWER レジスタの RESET ビットがセットされて A デ

バイスのリセットが開始されます。USB コントローラは、このリセット・シーケンスを自動的に開始し、A デバイスがそ

のプルアップ抵抗を接続してから 1 ms 以内に要求に従ってリセットが開始されるようにします。メイン・プロセッサ

20 ms 以上待機し、その後 RESET ビットをクリアして A デバイスをエニュメレーションします。

USB OTG コントローラ B デバイスがバスの使用を終了した場合、USBPOWER レジスタの SUSPEND ビットを

セットすることによって

USB コントローラは SUSPEND モードに移行します。A デバイスはこれを検出し、セッショ

ンを終了するか、またはホスト・モードに戻ります。A デバイスが USB OTG コントローラの場合、切断割り込みを

生成します。

20.3.4 DMA 動作

USB ペリフェラルは、3 つの送信エンドポイントと 3 つの受信エンドポイントごとに個別のチャネルを使用して、

μDMA コントローラに接続するインターフェイスを提供します。ソフトウェアは、USB DMA 選択 (USBDMASEL)

レジスタを使用して、μDMA チャネルのどのエンドポイントで処理を行うかを選択します。USB の μDMA 動作は、

送信チャネルに対応する

USBTXCSRHn レジスタと受信チャネルに対応する USBRXCSRHn レジスタによって

イネーブルされます。μDMA 動作がイネーブルの場合、対応する FIFO がデータを転送できるときに、USB はイネ

ーブルされた受信チャネルまたは送信チャネルで

μDMA 要求をアサートします。いずれかの FIFO がデータを転

送できる場合、そのチャネルのバースト要求がアサートされます。μDMA チャネルはベーシック・モードで動作するよ

うに設定する必要があり、μDMA 転送のサイズは USB FIFO のサイズの整数倍に制限する必要があります。

μDMA を使用した USB FIFO の読み取り転送と書き込み転送は、いずれもこのように設定する必要があります。

たとえば、USB エンドポイントが 64 バイトの FIFO サイズで設定されている場合、μDMA チャネルを使用して、

エンドポイント FIFO と 64 バイトのデータを転送させることができます。転送に使用するバイト数が 64 バイト未満

の場合、メイン・プロセッサを使用して

FIFO とのデータコピーをする必要があります。

USBTXCSRHn/USBRXCSRHn レジスタの DMAMOD ビットがクリアされている場合、すべてのパケットが転送さ

れた後に割り込みが生成されますが、

μDMA はデータの転送を続けます。DMAMOD ビットがセットされている場合、

すべての

μDMA 転送が完了した場合のみ割り込みが生成されます。割り込みは、USB 割り込みベクタ上で発生

します。したがって、USB 動作に割り込みが使用され、μDMA がイネーブルの場合、USB 割り込みハンドラは

μDMA 完了割り込みを処理できるように設計する必要があります。

図 20-1. USB モジュールのブロック図
表 20-1. USB の信号 (100 LQFP)
表 20-6. ユニバーサル・シリアル・バス (USB) コントローラ・レジスタ・マップ  ( 続き )  オフセット  名称  タイプ  リセット  説明  0x090 USBTXFUNCADDR2  R/W  0x00  USB  送信機能アドレス・エンドポイント  2  0x092 USBTXHUBADDR2  R/W  0x00  USB  送信ハブ・アドレス・エンドポイント  2  0x093 USBTXHUBPORT2  R/W  0x00  USB  送信ハブ・ポート・エンドポイント  2
表 20-6. ユニバーサル・シリアル・バス (USB) コントローラ・レジスタ・マップ  ( 続き )
+5

参照

関連したドキュメント

水道水又は飲用に適する水の使用、飲用に適する水を使

現時点で最新の USB 3.0/USB 3.1 Gen 1 仕様では、Super-Speed、Hi-Speed、および Full-Speed の 3 つの速度モードが定義されてい ます。新しい SuperSpeed

納付日の指定を行った場合は、指定した日の前日までに預貯金口座の残

BC107 は、電源を入れて自動的に GPS 信号を受信します。GPS

3 当社は、当社に登録された会員 ID 及びパスワードとの同一性を確認した場合、会員に

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

管理画面へのログイン ID について 管理画面のログイン ID について、 希望の ID がある場合は備考欄にご記載下さい。アルファベット小文字、 数字お よび記号 「_ (アンダーライン)

* 本カタログのオーダーはWEB受注「2018年5月展 >> Chou Chou de maman 」 より https://tiara-order.com よりお客様専用の. ID