S1R72U16 Application Note Rev.2.00 本資料のご使用につきましては、次の点にご留意願います。 本資料の内容については、予告無く変更することがあります。 1. 本資料の一部、または全部を弊社に無断で転載、または、複製など他の目的に使用することは堅くお断りいたします。 2. 本資料に掲載される応用回路、プログラム、使用方法等はあくまでも参考情報であり、これら起因する第三者の権利(工業所有権 を含む)侵害あるいは損害の発生に対し、弊社はいかなる保証を行うものではありません。また、本資料によって第三者または弊 社の工業所有権の実施権の許諾を行うものではありません。 3. 特性値の数値の大小は、数直線上の大小関係で表しています。 4. 本資料に掲載されている製品のうち「外国為替及び外国貿易法」に定める戦略物資に該当するものについては、輸出する場合、同 法に基づく輸出許可が必要です。 5. 本資料に掲載されている製品は、生命維持装置その他、きわめて高い信頼性が要求される用途を前提としていません。よって、弊 社は本(当該)製品をこれらの用途に用いた場合のいかなる責任についても負いかねます。 ©SEIKO EPSON CORPORATION 2008, All rights reserved. 適用範囲 本ドキュメントは、IDE デバイス-USB2.0 ホストブリッジ LSI 「S1R72U16」に適用されます。 ご注意 「S1R72U16」をご使用になる場合には、『S1R72U16 特殊条件下の使用について』、及び『S1R72U16 エラッ タ』を必ずご確認ください。 目次 1. はじめに............................................................................................................................................. 1 2. システム構成例.................................................................................................................................. 2 3. ドライバ選択について ....................................................................................................................... 2 4. CPU 16bitローカルバス(メモリバス)接続で使用する ................................................................... 3 5. データ転送中をユーザへ通知する手段 .............................................................................................. 3 6. 初期化時の動作.................................................................................................................................. 4 7. ストレージデバイスの制御 ................................................................................................................ 4 8. エラー時の処理.................................................................................................................................. 5 8.1 コマンドエラー .......................................................................................................................... 5 8.2 Busy状態から復帰しない ........................................................................................................... 6 9. CPUバス接続時のドライバ修正方法 .................................................................................................. 7 9.1 CPUバス接続時のレジスタマッピング ...................................................................................... 7 9.2 CPUバス接続におけるレジスタアクセスとエンディアン.......................................................... 7 9.3 I/Oレジスタアドレスの修正 ....................................................................................................... 8 9.4 データ転送方法の修正................................................................................................................ 8 9.5 割り込み処理の修正 ................................................................................................................... 8 10. 挿抜に対応する場合......................................................................................................................... 9 10.1 ストレージデバイスのマウント/アンマウント ........................................................................ 9 10.2 ストレージデバイスの接続/切断検出方法.............................................................................. 10 10.2.1 XCD0/XCD1 端子のみを使用する場合 ......................................................................... 10 10.2.2 XChgInt端子とXCD0/XCD1 端子を使用する場合 ......................................................... 10 10.2.3 XChgInt端子とコマンドを使用する場合 ......................................................................... 10 10.2.4 XChgInt端子の代わりにChgInt ビットを使用する場合 .................................................. 11 10.2.5 ATA/ATAPIコマンドのみを使用する場合......................................................................... 11 10.2.5.1 ATAモードの場合の確認方法 ....................................................................................... 12 10.2.5.2 ATAPIモードの場合の確認方法 .................................................................................... 12 10.2.6 XChgInt端子を割り込み信号で使用する場合の注意 ....................................................... 13 11. ダウンロード.................................................................................................................................. 14 11.1 ダウンロードコマンド.............................................................................................................. 14 11.2 TPLデータ ................................................................................................................................ 15 11.3 Updateデータ ........................................................................................................................... 15 12. インタフェースの接続検証 ............................................................................................................ 16 13. 開発サポート機能について ............................................................................................................ 16 S1R72U16 Application Note (Rev. 2.00) EPSON i 1. はじめに 1. はじめに 本 LSI は、USB のストレージデバイスを Main CPU から ATA/ATAPI - 6 規格に準拠して制御できる よう設計されていますので、USB のドライバは不要です。また、本 LSI と IDE バス接続して製品(シ ステム)として USB デバイスの挿抜を行わない場合には、ATA/ATAPI ドライバの修正は不要です。 開発フェーズと本ドキュメントの各章との対応を、表 1-1 に示します。 表 1-1 開発フェーズと章との対応 開発フェーズ 章 製品コンセプト システム検討 1 はじめに 2 システム構成例 3 ドライバ選択について 4 CPU16bit ローカルバス(メモリバス)接続で使用する システム仕様設計 5 データ転送中をユーザへ通知する手段 ソフトウェア設計 6 初期化時の動作 7 ストレージデバイスの制御 8 エラー時の処理 9 CPU バス接続時のドライバ修正方法 10 挿抜に対応する場合 11 ダウンロード 基板設計 評価 12 インタフェースの接続検証 13 開発サポート機能について 本 LSI 使用時の注意点を、以下に列記します。『S1R72U16 Technical Manual』の各項にも記述して います。 • モード設定について ¾ 2 台モードで使用する場合は、CSEL 端子を Master(=Low)に設定してください。 • デバイス制御について ¾ DATA-OUT(Write)方向の Ultra DMA 転送では、1 つのコマンドで転送できるサイズの上限 が 800000h Bytes です。 ¾ DOWNLOAD MICROCODE コマンドの処理中はスレトージデバイスを一旦切断するため、ス トレージデバイスが接続されている場合には挿抜が発生します。 • USB デバイスについて ¾ Bulk Only Transport の Mass Storage Class と Hub Class の USB デバイスをサポートします。 ※ Mass Storage Class のサブクラスが、UFI(SubClassCode 値の 04h)のデバイスは未サポートデバイス となります。 ¾ ストレージデバイスは 2 台まで、USB ハブは 3 台まで接続できます。接続台数を超えたデバ イスは認識されません。 • 挿抜について ¾ 2 台モード時に XChgInt 端子を割り込み信号として使用する場合は、Main CPU の割り込み検 出をレベル検出にしてください。 ¾ XCD0/XCD1 端子を割り込み信号として使用する場合は、Main CPU の割り込み検出を立ち 上がり/立ち下がりの両エッジ検出にしてください。 • クロック選択について ¾ 使用する水晶振動子の周波数と CLKSEL 端子の設定を一致させてください。 S1R72U16 Application Note (Rev. 2.00) EPSON 1 2. システム構成例 2. システム構成例 システムの構成例と、本 LSI の設定を図 2-1 に示します。 Main System Main System IDE Host Main System Main System IDE Host IDE Host IDE Host IDE Device IDE Device IDE Device Master IDE Device Slave IDE Device S1R72U16 S1R72U16 S1R72U16 S1R72U16 S1R72U16 USB Host USB Host USB Host USB Host USB Host USB Storage USB Storage Master (Slave) USB Storage 1台モード CSEL:Master or Slave Slave (Master) USB Storage HDD 1台モード CSEL:Slave (Master) 図 2-1 USB HUB Slave Master USB Storage USB Storage 2台モード CSEL:Master 1台モード CSEL:Master 1台モード CSEL:Slave システム構成例と設定 3. ドライバ選択について Flash メモリ、HDD 等の 1 セクタが 512Byte のストレージデバイスを制御する場合は、ATA ドライ バ/CF(TrueIDE モード)ドライバで制御できます。 ※ 本 LSI は、アトリビュートメモリを実装しておりません。このため、CF(TrueIDE モード)ドラ イバは、アトリビュートメモリを参照せずに、常に本 LSI を CF とみなして動作させる必要があ ります。お使いの CF ドライバがアトリビュートメモリにより CF の存在を調べている場合には、 常に CF が存在するように改造することで利用可能と考えます。 ATAPI ドライバは、Flash メモリ、HDD 等の制御および CD/DVD/MO 等の光ディスクデバイスを 制御可能なため、ストレージデバイスを限定しない用途には ATAPI ドライバを推奨します。 2 EPSON S1R72U16 Application Note (Rev. 2.00) 4. CPU 16bit ローカルバス(メモリバス)接続で使用する 4. CPU 16bit ローカルバス(メモリバス)接続で使用する 本 LSI は、IDE バス接続で最も高いパフォーマンスを発揮しますが、IDE バスを持たない CPU でも 使用できるように、CPU 16bit ローカルバス(以下、CPU バス)で制御するモードを具えています。 CPU バス接続で使用する場合について記述します。 本 LSI を CPU バスに接続する場合、下記ドライバを使用することができます。 • ATA/ATAPI ドライバ • CF(TrueIDE モード)ドライバ ※ 本 LSI は、アトリビュートメモリを実装しておりません。このため、CF(TrueIDE モード) ドライバは、アトリビュートメモリを参照せずに、常に本 LSI を CF とみなして動作させる必 要があります。お使いの CF ドライバがアトリビュートメモリにより CF の存在を調べている 場合には、常に CF が存在するように改造することで利用可能と考えます。 これらのドライバを入手するには、以下の方法が考えられます。 • CPU またはファイルシステムに添付されているものを使用する • ソフトウェアハウスから購入する • 弊社が提供する ATA/ATAPI(CF(TrueIDE モード))サンプルドライバを使用する ※ 弊社のソフトウェア使用許諾書に同意していただく必要があります。 これらのドライバで本 LSI を使用するためには、以下の修正が必要です。 • I/O レジスタアドレスを修正 また、以下の修正も必要になる場合があります。 • データ転送を DMA 転送で行う場合、データ転送方法を修正 • デバイスからの割り込みを使用する場合、割り込み処理を修正 これらの修正方法については、「9 CPU バス接続時のドライバ修正方法」を参照してください。 5. データ転送中をユーザへ通知する手段 システムがデータ転送中であることをユーザに通知する手段としては、DASP 信号を用いることが できます。 DASP 信号は初期化処理時に Master が Slave の存在を検出するために使用する信号ですが、初期化 終了後はコマンドの処理中(Status レジスタの BSY ビットあるいは、DRQ ビットが 1)に Low、そ れ以外で High になるよう動作します。これを利用して、データ転送中のアクセスランプ等として使 用することができます。 信号の動作については、『S1R72U16 Technical Manual』を参照してください。 S1R72U16 Application Note (Rev. 2.00) EPSON 3 6. 初期化時の動作 6. 初期化時の動作 本 LSI が電源投入後に行う初期化シーケンスを、図 6-1 に示します。 電源投入 no XRESET解除 (== High) ? yes no 正常起動 ? yes ATA task file registersのStatusレジスタBSYビットを 1へ PLL_Locked端子(PORT13)を Highへ 初期化処理 (内部&ATA/ATAPI規格上の処理) ATA task file registersのStatusレジスタBSYビットを 0へ Main CPUからのコマンド待ち状態 図 6-1 本 LSI の初期化シーケンス 本 LSI は、XRESET 信号(チップリセット)が解除された後、正常に起動すると Status レジスタの BSY ビットを 1 にし、PLL_Locked 端子(PORT13)を High にしてから初期化処理を行います。初 期化処理が終了すると BSY ビットを 0 にし、Main CPU から制御できる状態となります。 Main CPU は BSY ビットが 0 になった後、ATA/ATAPI 規格の初期化シーケンスを開始してください。 初期化で使用するコマンドの一例を、表 6-1 に示します。 表 6-1 コマンド種別 ATA コマンド Command Code 初期化で使用するコマンド ATA プロトコル Command Code/ Operation Code ATAPI プロトコル 内容 ECh IDENTIFY DEVICE A1h IDENTIFY PACKET DEVICE デバイス情報の取得 EFh SET FEATURES EFh SET FEATURES 転送モード等の設定 12h INQUIRY デバイス情報の取得 25h READ CAPACITY 記録容量の取得 ATAPI コマンド 7. ストレージデバイスの制御 ストレージデバイスは『AT Attachment with Packet Interface - 6 (ATA/ATAPI - 6)』に準拠した制御 が必要です。但し、下位互換のために『AT Attachment with Packet Interface - 4、5 (ATA/ATAPI - 4、 5)』にも対応していますので、CHS(Cylinder Header Sector)による制御も可能です。 光ディスクデバイスとしては『Multi-Media Commands - 5 (MMC - 5)』の CD/DVD コマンドに対 応しているため、CD/CD-RW/DVD/DVD±RW、MO 等の制御が可能です。 サポートする ATA/ATAPI コマンドについては、 『S1R72U16 Technical Manual』を参照してください。 4 EPSON S1R72U16 Application Note (Rev. 2.00) 8. エラー時の処理 8. エラー時の処理 エラーの内容と、その対処について記述します。 8.1 コマンドエラー Main CPU が発行した ATA/ATAPI コマンドに対して本 LSI がエラーステータスを返した時、 Main CPU はエラー内容に応じた対処を行ってください。エラーの一覧を、表 8-1 と表 8-2 に示します。 表 8-1 ATA コマンドのエラー(Status レジスタの ERR ビットが 1 の場合) エラー情報 意味 対処方法 ストレージデバイスがサポートしてい ないコマンドである 別のコマンドを発行するか、ストレージデバイ スを変更してください。 (Error レジスタのビット) ABRT=1 ストレージデバイスがエラーを返した ストレージデバイスが切断された 「10 挿抜に対応する場合」を参照して ください。 ABRT=1、IDNF=1 アクセスできない LBA/CHS が Main CPU によって指定された ストレージデバイスの情報を再取得し、アクセ ス可能な LBA/CHS を指定してコマンドを発行 してください。 ABRT=1、ICRC=1 Ultra DMA 転送で CRC エラーを検出し た IDE の信号品質に問題のある可能性があります。 配線を確認してください。 MC=1 メディア、またはストレージデバイスが 変更された 「10 挿抜に対応する場合」を参照して ください。 NM=1 メディア、またはストレージデバイスが 存在しない 「10 挿抜に対応する場合」を参照して ください。 表 8-2 ATAPI コマンドのエラー(Status レジスタの CHK ビットが 1 の場合) エラー情報 (REQUEST SENSE の値) Sense Key ASC ASCQ 04h 08h 00h 06h 02h 28h 3Ah 上記以外の場合 00h 00h 挿 抜 通 知 意味 対処方法 - USB プロトコルにおけるエラー発生 - ストレージデバイスが無応答 有 ストレージデバイスが接続された ストレージデバイスのマウント処理を してください。 無 メディアが変更された ATA/ATAPI 規格に則った処理を行ってください。 有 ストレージデバイスが切断された ストレージデバイスのアンマウント処理をして ください。 無 メディアが取り出された ATA/ATAPI 規格に則った処理を行ってください。 ストレージデバイスに問題があります。 ストレージデバイスを変更してください。 ATA/ATAPI 規格に則った処理を行ってください。 S1R72U16 Application Note (Rev. 2.00) EPSON 5 8. エラー時の処理 8.2 Busy状態から復帰しない ストレージデバイスが USB バスプロトコル上で NAK を返し続ける間は、本 LSI は Busy 状 態(Status レジスタの BSY ビットあるいは、DRQ ビットが 1)を継続します。ストレージ デバイスが何らかの原因によって NAK 応答を継続する異常状態になった可能性があります の で 、 Main CPU で タ イ ム ア ウ ト 処 理 が 必 要 と な り ま す 。 タ イ ム ア ウ ト 処 理 の 中 で ATA/ATAPI 規格の Hardware Reset を発行することにより、Busy 状態から復帰します。 任意の処理(before) no BSY==1 or DRQ==1 ? yes no タイムアウト ? yes ATA/ATAPI規格のHardware Reset実行 初期化処理 (内部&ATA/ATAPI規格上の処理) no BSY==0 and DRQ==0 ? yes 処理を継続 任意の処理(after) 図 8-1 6 タイムアウト処理例 EPSON S1R72U16 Application Note (Rev. 2.00) 9. CPU バス接続時のドライバ修正方法 9. CPU バス接続時のドライバ修正方法 9.1 CPUバス接続時のレジスタマッピング Main CPU の ATA/ATAPI ドライバは IDE バス接続の場合、IDE control register をアクセスし て ATA task file registers を制御します。CPU バス接続の場合、Main CPU のメモリマップ上 に ATA task file registers がマッピングされ、直接制御することになります。このため、CPU バス接続ではドライバの I/O レジスタアクセス部分を修正する必要があります。 IDEバス接続 CPUバス接続 Main CPU Main CPU External Memory IF IDE Host IDE control registers ATA task file registers ATA task file registers IDE Device CPUIF S1R72U16 S1R72U16 USB Host USB Host 図 9-1 9.2 制御レジスタのイメージ CPUバス接続におけるレジスタアクセスとエンディアン データバスは Little Endian の 16bit バスです。Data レジスタは 16bit ですが、その他のレジス タは下位 8bit のみ有効です。 Main CPU が Big Endian の場合は、データバスの 16bit データを swap してください。 表 9-1 OFFSET 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh CPU モード ATA task file registers マップ ATA task file registers READ WRITE OFFSET 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh Data (16bit) Error Feature Sector Count LBA Low LBA Mid LBA High Device Status Command ATA task file registers READ WRITE none none none none none none Alternate Status Device Control none ※ OFFSET は、本 LSI の I/O レジスタを割り当てたメモリ空間の先頭アドレス S1R72U16 Application Note (Rev. 2.00) EPSON 7 9. CPU バス接続時のドライバ修正方法 9.3 I/Oレジスタアドレスの修正 ドライバは、デバイスを制御するために表 9-2 に示すレジスタへアクセスします。 表 9-2 I/O レジスタ ATA task file registers(※1) 操作 READ WRITE Data Error レジスタ名 Features Sector Count LBA Low(Sector Number ※2、※3) LBA Mid(Cylinder Low ※2、※3) LBA High(Cylinder High ※2、※3) Device(Device/Head ※2)(Select Card/Head ※3) Status Command Alternate Status Device Control ※1 レジスタの総称を「ATA Task file registers/Task file registers」と呼びます。 ※2 『AT Attachment with Packet Interface – 5(ATA/ATAPI-5)』以前の規格書で定義 されているレジスタ名です。 ※3 『CompactFlash Specification』の規格書で定義されているレジスタ名です。 本 LSI を CPU バスに接続した場合、表 9-2 のレジスタは、表 9-1 に示すように Main CPU の メモリ空間にマッピングされますので、ドライバに定義されている I/O レジスタアドレスを 修正してください。 9.4 データ転送方法の修正 CPU バス接続時は、PIO 転送と DMA 転送が可能です。本 LSI の DMA 設定は、Multi Word DMA を使用してください。(Ultra DMA は使用できません) DMA 転送では DMA コントローラが必要となりますので、コントローラの制御などに関す る修正が必要です。詳細は、ご使用されている CPU のマニュアルを参照するか、CPU メー カーにご確認ください。 9.5 割り込み処理の修正 ドライバで本 LSI の割り込みを使用する場合は、ドライバの割り込みハンドラ等を XINT 信 号を用いた処理に修正してください。 8 EPSON S1R72U16 Application Note (Rev. 2.00) 10. 挿抜に対応する場合 10. 挿抜に対応する場合 製品(システム)がストレージデバイスの挿抜をサポートするためには、Main CPU のソフトウェア による対応(挿抜検出、アプリケーションソフトウェア等によるマウント/アンマウント処理)が 必要です。本 LSI は、表 10-1 に示す端子(挿抜端子)とレジスタを実装しており、Main CPU はこ れらを使用することによってストレージデバイスの接続/切断を検出できます。挿抜端子とレジス タの詳細は、『S1R72U16 Technical Manual』を参照してください。 表 10-1 挿抜端子とレジスタ 端子/レジスタ名 説明 XCD0 端子 ストレージデバイスの接続/未接続状態を通知します。 XCD1 端子 XChgInt 端子 ストレージデバイスの挿抜発生を通知します。 ChgInt ビット (ATA task file registers の Status レジスタ bit1) Main CPU に挿抜端子を接続するための空き端子がない場合は、ATA/ATAPI コマンドを発行するこ とでストレージデバイスの接続/未接続状態を取得する方法があります。詳細は、「10.2.5 ATA/ATAPI コマンドのみを使用する場合」を参照してください。 なお、CD/DVD やマルチカードリーダデバイスの場合、挿抜端子や ChgInt ビットではメディアの 挿抜を検出することはできません。メディアの状態を検出するには、コマンド発行により状態を取 得してください。 10.1 ストレージデバイスのマウント/アンマウント Main CPU が挿抜をサポートする場合の状態遷移例を、図 10-1 に示します。 ストレージデバイス 未接続状態 ストレージデバイスの 接続を検出 ストレージデバイスを マウント いずれかの ストレージデバイスに アクセスが可能な状態 ストレージデバイスの 接続を検出 ストレージデバイス の切断を検出 ストレージデバイスを アンマウント アクセス可能な ストレージデバイスが 存在する 図 10-1 全てのストレージデバイスを アンマウント 挿抜をサポートする場合の状態遷移例 S1R72U16 Application Note (Rev. 2.00) EPSON 9 10. 挿抜に対応する場合 Main CPU は、ストレージデバイスの接続を検出した時にマウント処理、切断を検出した時 にアンマウント処理を行ってください。マウント/アンマウント処理を行う場合、Main CPU は本 LSI に対して表 10-2 に示すコマンドを発行してください。Main CPU がこれらのコマン ドを発行しない場合、本 LSI が挿抜を正しく通知できなくなります。ただし、XChgInt 端子 または ChgInt ビットを使用していない場合は、表 10-2 のコマンドを発行しなくても問題あ りません。 表 10-2 ストレージデバイスのマウント/アンマウント時に必要なコマンド ATA/ATAPI モード ATA モード ATAPI モード マウント時のコマンド アンマウント時のコマンド IDENTIFY DEVICE 表 10-3 に示す ATA モードの何れかのコマンド INQUIRY 表 10-3 に示す ATAPI モードの何れかのコマンド READ CAPACITY Main CPU の挿抜検出方法については、以下で説明します。 10.2 ストレージデバイスの接続/切断検出方法 Main CPU は、以降に示す何れかの方法でストレージデバイスの接続/切断を検出し、マウ ント/アンマウント処理を行なってください。 10.2.1 XCD0/XCD1 端子のみを使用する場合 XCD0/XCD1 端子を監視してストレージデバイスの接続/切断を検出します。こ の端子は、割り込み/ポーリングのどちらでも使用できます。この端子は、 IDENTIFY DEVICE / IDENTIFY PACKET DEVICE コ マ ン ド 受 信 の 有 無 や ATA/ATAPI 規格のリセット(Hardware Reset/SRST/DEVICE RESET コマンド) に依存せず、ストレージデバイスの接続状態を通知します。 割り込み信号として使用する場合は、割り込み発生時にこの端子の状態を読み出し、 Low であればマウント処理、High であればアンマウント処理を行ってください。 ポーリングで使用する場合は、High→Low へ変化した時にマウント処理、Low→ High へ変化した時にアンマウント処理を行なってください。 10.2.2 XChgInt端子とXCD0/XCD1 端子を使用する場合 XChgInt 端子により挿抜の検出、XCD0/XCD1 端子によりストレージデバイスの 接続/未接続状態を取得します。XChgInt 端子は割り込み/ポーリングのどちらで も使用できます。XChgInt 端子を割り込み信号として使用する場合は、割り込み発 生時に XCD0/XCD1 端子の状態を読み出し、Low であればマウント処理、High であればアンマウント処理を行なってください。XChgInt 端子をポーリングで使用 する場合は、High→Low へ変化した時に XCD0/XCD1 端子の状態を読み出してく ださい。 10.2.3 XChgInt端子とコマンドを使用する場合 XChgInt 端子により挿抜の検出、コマンド発行によりストレージデバイスの接続/ 未接続状態を取得します。Main CPU は、表 10-3 に示すコマンドを発行してストレー ジデバイスの接続/未接続状態を取得し、ストレージデバイスの状態に応じてマウ ント/アンマウント処理を行ってください。XChgInt 端子の使い方は、「10.2.2 XChgInt 端子と XCD0/XCD1 端子を使用する場合」と同じです。 2 台モードの場合は、XChgInt 端子では Master と Slave のどちらのストレージデバ イスに挿抜が発生したか判断できないため、Master と Slave の両方にコマンドを発 行してください。 10 EPSON S1R72U16 Application Note (Rev. 2.00) 10. 挿抜に対応する場合 表 10-3 ATA/ATAPI モード ATAPI モード コマンド発行により取得できる接続状態 コマンド 値 状態 IDENTIFY PACKET DEVICE Word0:bit8~12 (Device Type) 1Fh 以外 1Fh 未接続 INQUIRY Byte0:bit0~4 (Device Type) 1Fh 以外 接続 1Fh 未接続 IDENTIFY DEVICE Word60~61 (Total LBA) 0000h 以外 接続 0000h 未接続 GET MEDIA STATUS ATA モード データ位置 READ/WRITE 系コマンド READ SECTOR(S) READ SECTOR(S) EXT READ DMA READ DMA EXT READ MULTIPLE READ MULTIPLE EXT READ VERIFY SECTOR(S) READ VERIFY SECTOR(S) EXT WRITE SECTOR(S) WRITE SECTOR(S) EXT WRITE DMA WRITE DMA EXT WRITE MULTIPLE WRITE MULTIPLE EXT Error Register Error Register 接続 02h と 20h 以外 接続 20h (MC:Media Change) 接続:デバイス挿入 直後 1 度だけ通知 02h (NM:No Media) 未接続 02h と 20h 以外 接続 20h (MC:Media Change) 接続:デバイス挿入 直後 1 度だけ通知 02h (NM:No Media) 未接続 ※ Media Change と No Media は、ATA task file registers の Error レジスタにあるビットです。 詳細は、ATA/ATAPI-4、5、6 規格を参照してください。 10.2.4 XChgInt端子の代わりにChgInt ビットを使用する場合 XChgInt 端子の代わりに ChgInt ビット(ATA task file registers の Status レジスタ bit1) を使用できます。このビットは、論理が反転している以外は XChgInt 端子と同じ仕 様で動作します。ChgInt ビットはポーリングでのみ使用することができます。 「10.2.2 XChgInt 端子と XCD0/XCD1 端子を使用する場合」、あるいは「10.2.3 XChgInt 端子とコマンドを使用する場合」に記述された XChgInt 端子を、ChgInt ビッ トに置きかえて使用できます。ChgInt ビットの値が 0→1 へ変化した時が挿抜の発 生になります。 10.2.5 ATA/ATAPIコマンドのみを使用する場合 Main CPU は、ATA/ATAPI コマンドを定期的に発行することで、ストレージデバイ スの接続/未接続状態を取得できます。コマンド体系設定毎の確認方法を、以下に 示します。 S1R72U16 Application Note (Rev. 2.00) EPSON 11 10. 挿抜に対応する場合 10.2.5.1 ATAモードの場合の確認方法 ATA モード時、Main CPU は GET MEDIA STATUS コマンドを定期的に 発行することで、ストレージデバイスの接続/未接続状態を取得できま す。2 台モード時は、Master と Slave の両方にコマンドを発行してくださ い。本 LSI が GET MEDIA STATUS コマンドに返す情報を、表 10-4 に示 します。 表 10-4 GET MEDIA STATUS コマンドに返す情報 データ位置 Error レジスタ 値 状態 00h (Error なし) ストレージデバイス接続 20h (MC:Media Change) ストレージデバイス接続: ストレージデバイス挿入直後に 1 度だけ通知 02h (NM:No Media) ストレージデバイス未接続 10.2.5.2 ATAPIモードの場合の確認方法 ATAPI モードの場合、Main CPU は TEST UNIT READY コマンドと REQUEST SENSE コマンドを発行することで、ストレージデバイスの接 続/未接続状態を取得できます。2 台モード時は、Master と Slave の両方 にコマンドを発行してください。 TEST UNIT READY コマンドを定期的に発行してください。TEST UNIT READY コマンドに対して本 LSI がエラーステータスを返した時、 REQUEST SENSE コマンドを発行してエラー情報を取得してください。 REQUEST SENSE コマンドで取得したエラー情報と ChgInt ビットの値 から、ストレージデバイスの接続/未接続状態を取得することができま す。REQUEST SENSE コマンドで返すエラー情報と ChgInt ビットの値 を、表 10-5 に示します。 表 10-5 REQUEST SENSE コマンドで返すエラー情報と ChgInt ビットの値 エラー情報 Sense Key ASC ASCQ 06h 28h 00h 02h 12 3Ah 00h ChgInt ビットの値 状態 1 ストレージデバイスが接続された 0 ストレージデバイスは変更なし ストレージデバイスのメディアが変更された 1 ストレージデバイスが切断された 0 ストレージデバイスは変更なし ストレージデバイスのメディアが取り出された EPSON S1R72U16 Application Note (Rev. 2.00) 10. 挿抜に対応する場合 10.2.6 XChgInt端子を割り込み信号で使用する場合の注意 XChgInt 端子ではストレージデバイスの接続/未接続状態を判断できないため、 XCD0/XCD1 端子あるいは、コマンドと組み合わせて使用する必要があります。 この端子を割り込みとして使用する場合は、検出方法に注意してください。 • 1 台モードの場合 ¾ 割り込み検出方法を、立ち下り検出あるいは、Low レベル検出にしてくださ い。 • 2 台モードの場合 ¾ 割り込み検出方法を Low レベル検出にして、Low の期間は XCD0/XCD1 端 子でストレージデバイスの状態を確認してください。 Master の接続により XChgInt 端子が Low になっている期間に、Slave の接続 が発生した場合は、図 10-2 に示す動作となります。 XChgInt Statusレジスタ bit1 (ChgIntビット) XCD0 0 1 0 XCD1 ① ② ③ ④ ① Master ストレージデバイスを接続 ② Slave ストレージデバイスを接続 XChgInt 端子は Low、ChgInt ビットは 1 のまま変化しない。 ③ Master へのコマンド受信により、XChgInt 端子が High になる条件が成立 Slave の条件が成立していないため、XChgInt 端子は Low、ChgInt ビットは 1 のまま変化しない。 ④ Slave へのコマンド受信により、XChgInt 端子が High になる条件が成立 Master と Slave 両方の条件が成立したので、XChgInt 端子が High、ChgInt ビットは 0 になる。 図 10-2 2 台モードで XChgInt 端子が Low の時に挿抜された場合の挿抜端子の動作 S1R72U16 Application Note (Rev. 2.00) EPSON 13 11. ダウンロード 11. ダウンロード 本 LSI はダウンロード機能を実装しており、ATA コマンドの DOWNLOAD MICROCODE(92h)を 使用します。ダウンロード機能および、TPL に関しては、『S1R72U16 Technical Manual』を参照し てください。 11.1 ダウンロードコマンド DOWNLOAD MICROCODE コマンドのパラメータを表 11-1 に示します。本コマンドは、PIO 転送の PIO Data Out Command です。 Sector count レジスタは、本 LSI にダウンロードするデータサイズをセクタ数(1 セクタサイ ズ=512Bytes)で設定します。したがって、ダウンロードデータのバイト数がセクタサイズ の倍数になるように、00h にてパディングしてください。 Main CPU からのコマンド発行は電源投入後、システム初期化時のタイミング(Status レジ スタの BSY ビットが 0 になってから)で実行することを推奨します。ダウンロードしたデー タは本 LSI の電源が切断されるまで有効です。ダウンロードデータを使用するためには電源 投入時に毎回ダウンロードする必要があります。2 台モードの場合、Master/Slave の何れか 一方へコマンド発行することでダウンロードデータが適用されます。複数回発行する必要は ありません。 ダウンロードデータには、TPL データと Update データの 2 種類があります。TPL データと Update データの両方を本 LSI に適用する場合には、それぞれのデータに対してコマンドを発 行してください。 表 11-1 Register DOWNLOAD MICROCODE パラメータ 7 6 Features 5 4 3 2 0 0 0 Subcommand code = 01h Sector Count Sector count (low order) LBA Low Sector count (high order) LBA Mid 00h LBA High 00h Device 1 obs na obs DEV Command 0 0 92h ※ obs(廃止されたビット)、na(設定不要ビット)は、0 設定を推奨します 14 EPSON S1R72U16 Application Note (Rev. 2.00) 11. ダウンロード 11.2 TPLデータ TPL データは、製品(システム)でサポートするストレージデバイスを、表 11-2 の要素を 用いて限定する場合に使用します。TPL データをダウンロードすると、指定したストレージ デバイスのみがサポートデバイスになります。USB ハブを未サポートデバイスにすることは できません。 TPL データで指定可能な値と本 LSI の初期値を、表 11-2 に示します。Flag で有効指定され なかった要素は、本 LSI の初期値が設定されます。 TPL データは、弊社が提供するツールで簡単に作成することができます。 TPL データを使用する場合は、データのダウンロードが完了するまで本 LSI から通知される ストレージデバイスの接続(挿抜)を無視してください。 表 11-2 要素 内容 TPL データの要素と指定可能な値 TPL データで指定可能な値 初期値 idVendor ベンダ ID 0000h~FFFFh 全ての値をサポート idProduct プロダクト ID 0000h~FFFFh 全ての値をサポート bcdDevice Device リビジョン 0000h~FFFFh 全ての値をサポート bClass クラス ID 08h 08h bSubClass サブクラス ID 01h、02h、03h、05h、06h 04h 以外をサポート bProtocol プロトコル ID 50h 50h Flag 要素の有効フラグ 0xxx0xxxb (bit7 と bit3 は 0 固定) - 11.3 Updateデータ Update データは、本 LSI の機能を更新する場合に使用します。 S1R72U16 Application Note (Rev. 2.00) EPSON 15 12. インタフェースの接続検証 12. インタフェースの接続検証 本 LSI の持つシリアルインタフェースを使用して、Main CPU と本 LSI の接続および、USB デバイ スと本 LSI の接続を検証することができます。詳細は、『S1R72U16 Development Support Manual』 を参照してください。 13. 開発サポート機能について 本 LSI には、製品(システム)の開発をサポートするために以下 2 つの機能を実装しています。 • 履歴表示機能 • USB ロゴ認証サポート機能 これらの機能は、PORT13 端子(PLL_Locked)が High になった時点から使用可能となります。 履歴表示機能は、本 LSI 内の IDE/USB の状態、検出した USB デバイス、通信履歴等を PC 上に表 示します。これを利用して、Main CPU と本 LSI の接続検証、通信履歴による簡易デバッグ等を行う ことができます。詳細は、『S1R72U16 Development Support Manual』を参照してください。 USB ロゴ認証サポート機能は、認証試験の Electrical Test で対応するテストモードへ移行するときに 使用します。詳細は、『S1R72U16 Embedded Host Compliance Guide』を参照してください。 16 EPSON S1R72U16 Application Note (Rev. 2.00) 改訂履歴 改訂履歴 改訂内容 年月日 頁 Rev. 種別 内 容 07/05/31 0.10 全頁 新規 新規作成 07/07/01 1.00 1 修正 / 追記 表 1-1 を章の修正にあわせて修正、注意点の記述にサブクラスの記述追加 2 修正 ドライバ選択について を 4 章から 3 章へ変更 3 追記 4 章を CPU バス接続で使用する場合の記述として追加 3 追記 5 章の説明中にコマンドの処理中を示す Status のビットを追加 6 追記 8.2 章の説明中に Busy 状態を示す Status のビットを追加 7、8 追記 9 章として、CPU バス接続時のドライバ修正方法を追加 9~16 修正 10 章以下、章番号を変更 13 修正 図 10-2 をテクニカルマニュアルに合わせて修正 14 追記 ダウンロードコマンドの説明と、Update データの記述を追加 15 修正 11.2 章内の文章の位置を変更 07/10/15 1.10 適用範囲 追加 2、3 08/03/28 2.00 修正 “ご注意”を追加 “CF”の記載を“CF(TrueIDE モード) ”へ変更し、CF ドライバとしての制約を追加 3、7、 修正 8 “IO”を“I/O”に修正 全頁 記載内容の不備および適切な表現に全面改訂 改訂 半導体事業部 IC 営業部 <IC 国内営業グループ> 東京 〒191-8501 東京都日野市日野 421-8 TEL(042)587-5313(直通) 大阪 〒541-0059 FAX(042)587-5116 大阪市中央区博労町 3-5-1 TEL(06)6120-6000(代表) エプソン大阪ビル 15F FAX(06)6120-6100 ドキュメントコード:411135803 2007 年 6 月 作成 2008 年 4 月 改訂