S1R72U16 Application Note

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 月 改訂