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

等時 (Isochronous)動作 1. アンダーフロー(Underflow)

ドキュメント内 mega8U2.pdf (ページ 133-137)

UPWE 1 UPWE 0 UPDRV 1 UPDRV 0 - - DPI DMI

21. USB装置動作

21.15. 等時 (Isochronous)動作 1. アンダーフロー(Underflow)

21.14.3. 失敗中止(Abort)

いくつかの状態でホストによって失敗中止(Abort)段階が生成され得ます。

・ 制御転送でIN段階中に0長データOUTパケットが受信された場合

・ 等時(Isochronous)転送に於いてINエンドポイントでのIN段階中にOUTエンドポイントでの0長データOUTパケットが受信された場合

・ その他 ...

バンク消去(KILLBK)ビットは最後に書かれたバンクを消す(無効にする)のに使用されます。この失敗中止を管理する最良の方法は次の 操作を実行することです。

図21-10. 失敗中止の流れ図

エンドポイント失敗中止(Abort)

UEIENXレジスタのTXINE=0 TXINI割り込み禁止

失敗中止(Abort)は何も送ってはならないことを 意味し、どのバンクも動作中でないという事実に 基づきます。

最後に書かれたバンクを消去(無効化)

無効化処置完了待機 UESTA0X

レジスタのNBUSYBK1,0

=00 ? YES

NO

失敗中止(Abort)実行終了

エンドポイント リセット UEINTXレジスタのKILLBK=1

UEINTXレジスタ のKILLBK=1 ?

YES NO

21.15. 等時

(Isochronous)動作

134

ATmega8U2/16U2/32U2

21.17. 装置割り込み

次図は全割り込み元を示します。

割り込みは割り込み処理(即ちこれらの発生は通常処 理の一部です)と例外(異常)の2種類です。

通常処理中割り込みは以下の時に生成されます。

・ 上方向再開(Upstream resume) (UPRSMI)

・ 再開終了 (EORSMI)

・ 起動復帰 (WAKEUPI)

・ リセット終了(速度初期化) (EORSTI)

・ フレーム開始 (SOFI, フレーム番号CRC異常(FNCERR) フラグ=0の場合)

・ 不活性の3ms後の休止(Suspend)検出 (SUSPI) 例外割り込みは以下の時に生成されます。

・ フレーム開始(SOF)のフレーム番号でのCRC異常 (SOFI, FNCERR=1の場合)

図21-11. USB装置制御器割り込み元 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装置 割り込み

非同期割り込み元 (パワーダウン動作 からの起動復帰を CPUに許します。)

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

エンドポイント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

エンドポイント 割り込み

通常処理中割り込みは以下の時に生成されます。

・ INデータ受け入れ可 (EPINTn, TXINI=1)

・ OUTデータ受信 (EPINTn, RXOUTI=1)

・ 設定(SETUP)受信 (EPINTn, RXSTPI=1) 例外割り込みは以下の時に生成されます。

・ 不能パケット (EPINTn, STALLEDI=1)

・ 等時(Isochronous)動作のOUTでのCRC異常 (EPINTn, OVERFI=1)

・ 等時動作でのオーバーフロー (EPINTn, OVERFI=1)

・ 等時動作でのアンダーフロー (EPINTn, UNDERFI=1)

・ INでの否定応答(NAK) (EPINTn, NAKINI=1)

・ OUTでの否定応答(NAK) (EPINTn, NAKOUTI=1)

21.18. USB装置一般用レジスタ

21.18.1. USB装置制御レジスタ (USB Device Control Register) UDCON

- - - RSTCPU RMWKUP DETACH

7 6 5 4 3 2 1 0

ビット

UDCON ($E0)

R/W R/W

R/W R

R R

R R

1 0

0 0

0 0

0 0

Read/Write 初期値

ビット7~3 - Res : 予約 (Reserved)

これらのビットは予約されており、常に0として読めます。

ビット2 - RSTCPU : CPUリセット (USB Reset CPU Bit)

このビットへの1書き込みはUSBバス リセット条件が検出された時にCPUのリセットをCPU制御器に許します。この形態が活性にされると、

次のUSBバス リセット事象はUSB制御器を除く全ての周辺機能とCPUのリセットを許します。この動作形態はソフトウェア リセットの実行を許しま すが、バスに接続したUSB装置を維持します。

このビットはUSB制御器が禁止された時、またはファームウェアによってこのビットに0が書かれた時にリセット(0)されます。このビットへの0書き 込みはUSBバス リセット事象と無関係にCPUシステム リセットを行います。

ビット1 - RMWKUP : 遠隔起動復帰 (Remote Waku-up Bit)

このビットへの1書き込みはUSBバス上での上方向再開(Upstream-resume)パケット生成をUSB制御器に許します。このビットはハードウェアに よって直ちに解除(0)され、1を読み戻すことは有り得ません。このビットへの0書き込みは無効です。

より多くの詳細については129頁の「遠隔起動復帰」をご覧ください。

ビット0 - DETACH : 分離 (Detach Bit)

このビットへの1書き込み(既定値)はUSB D+の内部プルアップを禁止します。これはUSBバスからUSB装置制御器を物理的に"分離(切り 離し)"します。このビットへの0書き込みはD+の内部プルアップを許可し、USB装置制御器をUSBバスへ物理的に接続します。より多くの 詳細については129頁の「分離(切り離し)」をご覧ください。

21.18.2. USB装置割り込み要求レジスタ (USB Device Interrupt Register) UDINT

- UPRSMI EORSMI WAKEUPI EORSTI SOFI - SUSPI

7 6 5 4 3 2 1 0

ビット

UDINT ($E1)

R/W R

R/W R/W

R/W R/W

R/W R

0 0

0 0

0 0

0 0

Read/Write 初期値

ビット7 - Res : 予約 (Reserved)

このビットは予約されており、常に0として読めます。

ビット6 - UPRSMI : 上方向再開割り込み要求フラグ (Upstream Resume Interrupt Flag)

このフラグはUSB制御器が成功裏に上方向再開(Upstream Resume)手順を送出した時にハードウェアによって設定(1)されます(「 ビット1 - RMWKUP : 遠隔起動復帰」の説明をご覧ください)。上方向再開割り込み許可(UPRSME)が設定(1)されているなら、UPRSMIフラグは

"USB一般割り込み"を生成することができます。このビットへの0書き込みは割り込み元の受け取りを通知します(その前にUSBクロックが 許可されていなければなりません)。このビットへの1書き込みは無効です。

ビット5 - EORSMI : 再開終了割り込み要求フラグ (End Of Resume Interrupt Flag)

このフラグはUSB制御器がホストによって開始された再開終了(End Of Resume)手順をUSB上で検知した時にハードウェアによって設定(1) されます。再開終了割り込み許可(EORSME)が設定(1)されているなら、EORSMIフラグは"USB一般割り込み"を生成することができま す。このビットへの0書き込みは割り込み元の受け取りを通知します(その前にUSBクロックが許可されていなければなりません)。このビット への1書き込みは無効です。

ビット4 - WAKEUPI : CPU起動復帰割り込み要求フラグ (Wake-up CPU Interrupt Flag)

このフラグはUSB制御器がUSB線から非アイドル信号を検知した時にハードウェアによって設定(1)されます。このWAKEUPIフラグはCPU起動 復帰割り込み許可(WAKEUPE)が設定(1)されているなら、"USB一般割り込み"を生成することができます。このビットへの0書き込みは 割り込み元の受け取りを通知します(その前にUSBクロックが許可されていなければなりません)。このビットへの1書き込みは無効です。

より多くの詳細については129頁の「休止、起動復帰と再開」をご覧ください。

ビット3 - EORSTI : リセット終了割り込み要求フラグ (End Of Reset Interrupt Flag)

このフラグはUSB制御器がUSB線上でリセット終了(End Of Reset)事象を検知した時にハードウェアによって設定(1)されます。このEORSTIフ ラグはリセット終了割り込み許可(EORSTE)が設定(1)されているなら、"USB一般割り込み"を生成することができます。このビットへの0書

136

ATmega8U2/16U2/32U2

ビット2 - SOFI : フレーム開始割り込み要求フラグ (Start Of Frame Interrupt Flag)

このフラグはUSB制御器がUSB線上でフレーム開始(SOF)PIDを検知した時にハードウェアによって設定(1)されます。このSOFIフラグはフレーム 開始割り込み許可(SOFE)が設定(1)されているなら、"USB一般割り込み"を生成することができます。このビットへの0書き込みは割り 込み元の受け取りを通知します(その前にUSBクロックが許可されていなければなりません)。このビットへの1書き込みは無効です。

ビット1 - Res : 予約 (Reserved)

このビットは予約されており、常に0として読めます。

ビット0 - SUSPI : 休止割り込み要求フラグ (Suspend Interrupt Flag)

このフラグはUSB制御器がバス上でUSB休止(Suspend) (3msより長いアイドル状態)を検知した時にハードウェアによって設定(1)されます。こ のSUSPIフラグは休止割り込み許可(SUSPE)が設定(1)されているなら、"USB一般割り込み"を生成することができます。このビットへの0 書き込みは割り込み元の受け取りを通知します(その前にUSBクロックが許可されていなければなりません)。このビットへの1書き込みは 無効です。

より多くの詳細については129頁の「休止、起動復帰と再開」をご覧ください。

これらの割り込み要求フラグは例え対応する割り込み許可ビットが設定(1)されていなくても設定(1)されます。

21.18.3. USB装置割り込み許可レジスタ (USB Device Interrupt Enable Register) UDIEN

- UPRSME EORSME WAKEUPE EORSTE SOFE - SUSPE

7 6 5 4 3 2 1 0

ビット

UDIEN ($E2)

R/W R

R/W R/W

R/W R/W

R/W R

0 0

0 0

0 0

0 0

Read/Write 初期値

ビット7 - Res : 予約 (Reserved)

このビットは予約されており、常に0として読めます。

ビット6 - UPRSME : 上方向再開割り込み許可 (Upstream Resume Enable Bit)

このビットへの1書き込みは上方向再開(Upstream Resume)割り込み(UPRSMI)フラグでの割り込みを許可します。上方向再開割り込み はUPRSMEビットが1に設定され、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてUPRSMIが設定(1)された場合に だけ生成されます。

ビット5 - EORSME : 再開終了割り込み許可 (End Of Resume Enable Bit)

このビットへの1書き込みは再開終了(End Of Resume)割り込み(EORSMI)フラグでの割り込みを許可します。上方向再開終了割り込み はEORSMEビットが1に設定され、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてEORSMIが設定(1)された場合に だけ生成されます。

ビット4 - WAKEUPE : CPU起動復帰割り込み許可 (Wake-up CPU Enable Bit)

このビットへの1書き込みはCPU起動復帰割り込み(WAKEUPI)フラグでの割り込みを許可します。起動復帰割り込みはWAKEUPEビット が1に設定され、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてWAKEUPIが設定(1)された場合にだけ生成され ます。

ビット3 - EORSTE : リセット終了割り込み許可 (End Of Reset Enable Bit)

このビットへの1書き込みはリセット終了(End Of Reset)割り込み(EORSTI)フラグでの割り込みを許可します。USBリセット割り込みはEORSTE ビットが1に設定され、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてEORSTIが設定(1)された場合にだけ生成さ れます。

ビット2 - SOFE : フレーム開始割り込み許可 (Start Of Frame Enable Bit)

このビットへの1書き込みはフレーム開始割り込み(SOFI)フラグでの割り込みを許可します。フレーム開始割り込みはSOFEビットが1に設定さ れ、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてSOFIが設定(1)された場合にだけ生成されます。

ビット1 - Res : 予約 (Reserved)

このビットは予約されており、常に0として読めます。

ビット0 - SUSPE : 休止割り込み許可 (Suspend Interrupt Enable Bit)

このビットへの1書き込みはUSB休止(Suspend)割り込み(SUSPI)フラグでの割り込みを許可します。休止割り込みはSUSPEビットが1に設 定され、ステータス レジスタ(SREG)の全割り込み許可(I)ビットが1を書かれ、そしてSUSPIが設定(1)された場合にだけ生成されます。

21.18.4. USB装置アドレス レジスタ (USB Device Address Register) UDADDR

ADDEN UADD6 UADD5 UADD4 UADD3 UADD2 UADD1 UADD0

7 6 5 4 3 2 1 0

ビット

UDADDR ($E3)

R/W R/W

R/W R/W

R/W R/W

R/W W

0 0

0 0

0 0

0 0

Read/Write 初期値

ビット7 - ADDEN : アドレス許可 (Address Enable Bit)

このビットへの1書き込みはUSB制御器に対する装置アドレスとしてUADD6~0領域を許可します。このビットが設定(1)されると、USB制御 器はUADD6~0のUSBバス アドレスを参照するUSB上の全ての要求にに応答することができます。

より多くの詳細については128頁の「アドレス設定」をご覧ください。

ビット6~0 - UADD6~0 : USB装置アドレス (USB Address Bits)

これらのビットはUSB制御器がUSBバス上で答えるべきUSB装置アドレスを含みます。このアドレスはアドレス許可(ADDEN)ビットへの1書き込 みによって許可されるべきです。

21.18.5. USB装置フレーム番号レジスタ (USB Device Frame Number Register) UDFNUMH, UDFNUML (UDFNUM)

-15 14 13 12 11 10 9 8

ビット

UDFNUMH ($E5)

R R

R R

R R

R R

0 0

0 0

0 0

0 0

Read/Write 初期値

FNUM0

7 6 5 4 3 2 1 0

ビット

UDFNUML ($E4)

R R

R R

R R

R R

0 0

0 0

0 0

0 0

Read/Write 初期値

-- FNUM10 FNUM9 FNUM8

FNUM4 FNUM3 FNUM2 FNUM1

ドキュメント内 mega8U2.pdf (ページ 133-137)