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

USB制御器

ドキュメント内 mega16U4.pdf (ページ 166-176)

TWAM 0 TWA0

21. USB制御器

21.1. 特徴

全速(Full-speed)と低速(Low-speed)の装置動作を支援

USB Ver2.0仕様適合

交互動作(2バンク)支援

832バイトの2ポートRAM(DPRAM)

最大64バイトの1つのエンドポイント (既定制御エンドポイント)

最大256バイトの1つのエンドポイント (1または2バンク)

最大64バイトの5つのエンドポイント (1または2バンク)

低速(Low-speed)動作でのクリスタルなし動作

21.2. 構成図

USB制御器は2ポート メモリ(DPRAM)に格納されたデータの流れへUSB接続をインターフェースするハードウェアを提供します。

(全速動作に関して)USB制御器は内部PLL出力の48MHz

±0.25%の基準クロックを必要とします。このチップ上のPLLは USBインターフェース用に内部高周波数(48MHz)クロックを生成し ます。PLL入力は外部クリスタル用低電力発振器、外部クロック 入力、または内蔵RC発振器を用いるように形態設定する ことができます(168頁の「クリスタルなし動作」項をご覧くださ い)。

48MHzクロックは受信したUSB差動データからの12MHz全速 (Full-speed)または1.5MHz低速(Low-speed)のビット クロック 生成と、全速または低速USB装置許容誤差に従ったデータ 送信に使用されます。クロック再生はUSBバスのジッタ仕様に 適合したデジタル位相固定化閉路(DPLL)部によって行わ れます。

USB電気的仕様に従うため、USB緩衝部(D+とD-)は3.0~

3.6V範囲内で給電されるべきです。ATmega16U4/32U4は 5.5Vまで給電できるので、内蔵電圧調整器がUSB緩衝部 給電を提供します。

21.3. 代表的な応用実装

対象応用電源に応じて、ATmega16U4/32U4は異なる代表 的ハードウェア実装を必要とします。

図21-2. 動作種別 対 周波数と電源

内蔵電圧調整器 あり、USB適合

内蔵電圧調整器 不要、USB適合 USB動作不可

16MHz 5.5

4.5

3.4 3.0 2.7 最低VCC

8MHz

2MHz 0

VCC (V) 最大動作周波数 (MHz)

3.6

0 図21-1. USB制御器概要構成図

PLL (×n÷2)

USBインターフェース

PLLクロック 前置分周器

USB用 内蔵DPRAM DPLL CPU

クロック再生 USB 電圧調整器

clk 48MHz UVCC

UCAP

AVCC

clk 8MHz

XTAL1

D-D+

VBUS

クロック多重器 校正付き

内蔵RC発振器

図21-3. 5V入出力での代表的バス給電応用

UVCC AVCC VCC UCAP

VBUS D-D+

UGND 1μF

VBUS D-D+

GND

XTAL1 XTAL2 GND

RS=22Ω

RS=22Ω

図21-4. 3V入出力での代表的バス給電応用

UVCC AVCC VCC UCAP

VBUS D-D+

UGND 1μF

VBUS D-D+

GND

XTAL1 XTAL2 GND

外部3V 電圧調整器

RS=22Ω

RS=22Ω

21.3.2. 自己給電装置 図21-5. 3.4~5.5V入出力での代表的自己給電応用

UVCC AVCC VCC UCAP

VBUS D-D+

UGND 1μF

VBUS D-D+

GND

XTAL1 XTAL2 GND

外部 3.4~5.5V

電源 RS=22Ω

RS=22Ω 21.3.1. バス給電装置

図21-6. 3.0~3.6V入出力での代表的自己給電応用

UVCC AVCC VCC UCAP

VBUS D-D+

UGND 1μF

VBUS D-D+

GND

XTAL1 XTAL2 GND

外部 3.0~3.6V

電源 RS=22Ω

RS=22Ω

21.4. クリスタルなし動作

外部部品点数と部品費用を減らするため、USB部署は低速(Low-speed)動作に於いてPLL用の入力クロック元として内蔵RC発振器で 動作するように形態設定することができます。内蔵RC発振器は0~40℃の温度範囲内でUSB低速周波数精度を満足するように工場 校正されています。

USB全速(Full-speed)については外部クリスタル用発振器または外部クロック入力だけが使用できます。

21.5. 設計の指針

USBデータ線の直列抵抗器は値が22Ω(±5%)であるべきです。

USB入力コネクタ(またはケーブル付き装置の場合、ケーブル接続)からUSBマイクロ コントローラへの配線は可能な限り短く、差動配線規則(斜 めの累積を避け、可能な限り近く、同じ長さ)に従うべきです。

外部の妨害によるUSBパッドの損傷を防ぐために、電圧瞬間変動/ESD消去器も使用され得ます。

UCAPコンデンサは正しい動作のために値が1μF(±10%)であるべきです。

VBUS線上には10μFコンデンサが強く推奨されます。

21.6. 一般的な動作 21.6.1. 序説

USB制御器は以下によって生成されたハードウェア リセット後にリセットされ、禁止されます。

電源ONリセット

外部リセット

ウォッチドッグ リセット

低電圧検出(BODリセット

JTAGリセット

しかし、別に利用可能な任意のリセット元は以下です。

USBリセット終了(EOR: End Of Reset)

この場合、USB制御器はリセットされますが、禁止されません(故に装置は接続を保ちます)。

21.6.2. 電源ONとリセット

次の構成図は電源ONでのUSB制御器主状態を説明します。

ハードウェア リセット後のUSB制御器状態は「リセット」です。この状態は以下です。

USB制御(USBCON)レジスタのUSB全体許可(USBE)は設定(1)されませ ん。(=解除(0))

電力消費を最小とするためにUSB制御器クロックは停止されます(USBCO NレジスタのUSBクロック停止(FRZCLK)=1)。

USB制御器は禁止されます。

USBパッドは休止(Suspend)動作です。

装置のUSB制御器内部状態はリセットです。

USBE設定(=1)後、USB制御器は装置状態へ移行します。制御器は'アイドル' です。

USB制御器はUSBEの解除(0)によって何時でも「停止」にできます。実際に はUSBEの解除(0)がUSB制御器上でハードウェア リセットとして働きます。

図21-7. リセット後のUSB制御器状態

リセット

装置

その他 の状態

USBE=1 USBE=0

USBE=0

ハードウェア リセット (除くEORから)

USBE=0 クロック停止

FRZCLK=1 マクロOFF

EORからの ハードウェア リセット

21.6.3. 割り込み

2つの割り込みベクタがUSBインターフェースに割り当てられます。

USB制御器は各エンドポイントへの関係データ転送に関連するUSBエンドポイント 事象との違いでUSB一般事象を区別します。

図21-8. USB割り込み概要 USB一般割り込み USB装置割り込み エンドポイント割り込み

USB一般 割り込みベクタ エンドポイント 割り込みベクタ 図21-9. USB一般割り込みベクタ割り込み元

VBUSTI (USBINT.0)

VBUSTE (USBCON.0) UPRSMI (UDINT.6)

UPRSME (UDIEN.6) EORSMI (UDINT.5)

EORSME (UDIEN.5) WAKEUPI (UDINT.4)

WAKEUPE (UDIEN.4) EORSTI (UDINT.3)

EORSTE (UDIEN.3) SOFI (UDINT.2)

SOFE (UDIEN.2) SUSPI (UDINT.0)

SUSPE (UDIEN.0)

USB一般割り込み

USB装置割り込み USB一般 割り込みベクタ

非同期割り込み元

(パワーダウン動作からの起動復帰を CPUに許します。)

以下を除き、これら割り込みの殆ど全てはUSBクロックが許可される(FRZCLK=0)場合にだけ検出される時間相対事象です。

VBUS挿抜検出(挿入、取り外し)

データ線上で状態変化が検出されるといつも起動されるWAKEUP割り込み

このWAKEUP非同期割り込みは一般的にUSBが休止(Suspend)状態へ移行された後に、パワーダウン動作でのデバイスの起動復帰を許 します。

図21-10. USBエンドポイント割り込みベクタ割り込み元

エンドポイント6 エンドポイント5 エンドポイント4 エンドポイント3 エンドポイント2 エンドポイント1 OVERFI (UESTA0X.6)

UNDERFI (UESTA0X.5)

FLERRE (UEIENX.7) NAKINI (UEINTX.6)

NAKINE (UEIENX.6) NAKOUTI (UEINTX.4)

NAKOUTE (UEIENX.4) RXSTPI (UEINTX.3)

RXSTPE (UEIENX.3) RXOUTI (UEINTX.2)

RXOUTE (UEIENX.2) STALLEDI (UEINTX.1)

STALLEDE (UEIENX.1) TXINI (UEINTX.0)

TXINE (UEIENX.0)

EPINT (UEINT.n) エンドポイント0

エンドポイント割り込みベクタ

各エンドポイントはフラグに関して8つの割り込み元を持ち、各源は対応するエンドポイント割り込み起動を許可または不許可にすることがで きます。エンドポイントに対して最低1つの(割り込み)元が割り込み起動を許可されるなら、対応する事象はプログラムをUSBエンドポイント割り 込みベクタへ分岐させます。使用者はエンドポイント割り込み要求(UEINT)レジスタを読むことで割り込みの元(エンドポイント)を判定し、そして 様々なフラグのポーリングによって検知される事象を扱います。

21.7. 電力動作種別

21.7.1. アイドル動作

この動作ではCPUコアが停止されます(CPUクロック停止)。アイドル動作はUSB制御器が走行中、非走行中のどちらでも使用されます。

CPUは何れかのUSB割り込みで起動復帰します。

21.7.2. パワーダウン動作

この動作では発振器が停止され、全てのクロック(CPUと周辺機能部)が停止します。USB制御器は以下の時に起動復帰します。

CPU起動復帰割り込み(WAKEUPI)起動

VBUS遷移割り込み(VBUSTI)起動

21.7.3. USBクロック停止

ファームウェアはUSB制御器のクロックを停止するUSBCONレジスタのUSBクロック停止(FRZCLK)ビットの設定(1)によって電力消費を低減するこ とができます。FRZCLKが設定(1)されている時は次のレジスタが未だアクセス可能です。

USBCON, USBSTA, USBINT

UDCON (分離(DETACH), ...)

UDINT

UDIEN

更にFRZCLKが設定(1)されている時は次の割り込みだけが起動され得ます。

21.8. 速度制御

速度選択(全速(Full-speed)または低速(Low-speed)) はD+/D-のプルアップに依存します。

USB装置制御(UDCON)レジスタの低速/全速装置動作 (LSM)ビットはD-(低速動作)またはD+(全速動作)データ 線上の内部プルアップ選択を許します。

図21-11. 装置動作速度選択 UCAP

D-D+

USB電圧調整器 DETACH (UDCON.0)

LSM (UDCON.2) RPU RPU

21.9. メモリ管理

本制御器は以下のメモリ割り当て管理だけを支援します。

エンドポイントの予約は(エンドポイント0から最終エンドポイントへ)順に増やす場合にだけ行えます。従ってファームウェアはこれと同じ順で設定す べきです。

エンドポイント"ki"の予約はそれ(エンドポイントX形成1(UECFG1X)レジスタ)のエンドポイント メモリ割り当て(ALLOC)ビットが設定(1)される時に行 われます。そしてハードウェアがメモリを割り当て、それをエンドポイント"ki-1"と"ki+1"間に挿入します。エンドポイント"ki+1"のメモリは上へ移動し てそのデータは失われます。"ki+2"とそれよりも上のエンドポイントのメモリが移動しないことに注意してください。

エンドポイント許可(EPEN)の解除(0)はそれの設定(EPSIZE, EPBK)やALLOCビットのどちらも解除(0)しません。メモリを開放するために ファームウェアはALLOCビットを解除(0)すべきです。するとエンドポイント"ki+1"のメモリは自動的に下へ移動します。"ki+2"とそれよりも上のエン ドポイントのメモリが移動しないことに注意してください。

下図は代表例でのUSBメモリの割り当てと認識を図示します。

図21-12. USBメモリの割り当てと認識の流れ

0 5 空きメモリ

4 3 2 1

0 5 空きメモリ

4

EPEN=0,ALLOC=1 2

1

0 5 空きメモリ (4の内容消失)

4 2 1

0 5 空きメモリ

4

3 (元より大容量) 2 1

衝突 (重複) EPEN=1,

ALLOC=1

エンドポイント 活動設定

エンドポイント 禁止

禁止メモリ開放 (ALLOC=0)

エンドポイント 活動再設定

最初にエンドポイント0~5は昇順で設定されます。各メモリはDPRAM内に予約されます。

そしてエンドポイント3が禁止(EPEN=0)されますが、メモリの予約は制御器によって内部的に保持されます。

ALLOCビットが解除(0)され、エンドポイント4が下へ移動しますが、エンドポイント5は移動しません。

最後はファームウェアがより大きな容量でエンドポイント3の再設定を選ぶ場合です。制御器はエンドポイント2の後にメモリを予約し、エンドポイン ト4を自動的に移動します。エンドポイント5は動かず、エンドポイント4と5の共通の領域を使用することで衝突(重複)が出現します。これら のエンドポイントのデータは潜在的に失われます。

以下に注意してください。

エンドポイント0のデータは、より高位のエンドポイントの活動設定または非活動設定でも決して失われません。このデータはそれが非活性 設定にされた場合に失われます。

同じ設定での同一エンドポイントの非活動設定と再活動設定は、より高位のエンドポイントの移動を引き起こしません。これらのエンドポイン トに対してデータは保護されます。

エンドポイントX状態0(UESTA0X)レジスタのエンドポイント形成状態(CFGOK)フラグはメモリ割り当てで衝突(重複)した場合でもハードウェアに よって設定(1)されます。

21.10. パッド休止

次図はパッドの動きを図示します。

アイドル動作でパッドは低電力消費動作に置かれます。

活動動作でパッドは動作します。

休止状態を示すUSB装置割り込み要求(UDINT)レジスタの休止(Sunspend)割り込み要求(SUSPI)フラグはUSBバス上で検出されます。こ のフラグは自動的にUSBパッドをアイドルにします。非アイドル事象の検出はUDINTレジスタのCPU起動復帰割り込み要求(WAKEUPI)フラグ を設定(1)し、USBパッドを起動復帰します。

更にパッドはUSB装置制御(UDCON)レジスタの分離(DETACH)ビットが設定(1)されている場合にも アイ ドル動作にして置けます。これはDETACHビットが解除(0)されると、活動動作に復帰します。

図21-13. パッドの動き アイドル動作

活動動作 USBE=0

| DETACH=1

| 休止

USBE=1

&DETACH=0

&非休止 図21-14. パッドの状態遷移

活動 低電力(パワーダウン) 活動

休止検出=USBパッド低電力(パワーダウン) 再開=USBパッド起動復帰 SUSPI

WAKEUPI パッド状態

ソフトウェアによる休止解除 ソフトウェアによる再開解除

21.11. プラグ接続検出

USB接続は以下の構成でVBUSパッドによって検出されます。

図21-15. プラグ接続検出入力構成図

VBUS VBUS

(USBSTA.0) RPU

RPD VDD パッド論理回路

VBus_pulsing Session_valid

Vbus_valid

VBus_discharge

論理回路 VBUSTI

(USBINT.0)

VBUSパッドの制御回路はVBUS電圧レベルに関する信号を出力します。

Session_valid信号はVBUSパッド上の電圧が1.4V以上の時にHigh活性です。1.4Vより低いなら、信号は非活性です。

VBUS状態ビットはSession_valid信号が活性(VBUS>1.4V)の時に設定(1)されます。

USB割り込み要求(USBINT)レジスタのVBUS遷移割り込み(VBUSTI)フラグはVBUS状態変化毎に設定(1)されます。

USB周辺機能はVBUSビットが設定(1)されていない間、バスへ接続することができません。

ドキュメント内 mega16U4.pdf (ページ 166-176)