Cente USB2.0 Host MassStorage for M66596
最新更新日/2011.10.14 : Ver1.08
製品概要
- 組込み機器上で「USBホスト機能」を実現可能
- 市販USBメモリの使用でUSBファイルシステムを実現可(要CenteFileSystem)
- 通信方式:コントロール転送,バルク転送,インターラプト転送をサポート
- USBケーブルの挿抜検出イベントに対応
- クラスドライバ開発のためのAPIを公開
- ファイルシステムに対してセクタリード、セクタライトのAPIを提供
- ファイルリード/ライトサンプルアプリケーションを標準付属
以下のデバイスクラスコードをサポート
クラスコード
Ox08(MSC:MassStorageClass)
サブクラスコード
Ox06(SCSI transparent command set)
Ox04(UFI)
Ox05(SFF-8070i)
プロトコルコード
Ox50(BOT:Bulk Only Transport)
Ox00(Control Bulk Interrupt Transport)
対応コントローラ
製品はコントローラー毎に異なります。
for M66596
対応コントローラ
M66596、R8A66597、SH7203、SH7263等
BSP
価格
価格:168万円/プロジェクト限定ライセンス
※製品はコントローラー毎に異なります。
- 表記の価格は、1プロジェクトライセンス、税込みの定価となります。
- 他のライセンス形態につきましては、お問い合わせください。
注意事項
USBインターフェースは、USBコントローラの機能や通信回路の特性などによって、品質や性能のバラツキが生じやすく、安定した動作を確保するまでに多くの開発工数を要する場合があります。
また、市販のUSB接続機器(USBメモリ含む)にはメーカー独自仕様の製品も多く存在しており、USBミドルウェアを使用した組込み機器を開発される際には充分な事前調査が必要です。
CenteミドルウェアシリーズでのUSBミドルウェアの使用条件、動作条件等(最新情報含む)につきましては、製品技術資料等でご案内させていただきます。
HUBクラス、Audioクラス、HIDクラス(いずれもHost)の開発を予定しております。これらのクラスドライバをご検討の際には別途Web、メール等でお問い合わせ下さい。
障害情報
改版履歴
2011.10.14 : Ver1.08
・RX62Nに対応
対応コントローラに RX62N を追加した。
・配列の範囲外参照が発生する可能性がある不具合を修正
定義した配列の要素数を超えたアドレスにアクセスする可能性があるコードとなっていたので、修正した。なお、実運用上はそのようなアクセスが発生することはない。
2009.2.27 : Ver1.07
・SH7673 に対応。
対応コントローラに SH7673 を追加した。
・VBUS のロジックを選択できるように修正。
R8A66597 では VBUS 電源回路をコントローラから制御できるが、回路に応じてアクティブロー、アクティブハイを選択できるようにした。
・DMA 時バッファアラインメントの仕様を変更。
今までは MSC クラスドライバにて DMA アラインメントを行っていたが、バッファ削減のため、コントローラドライバ内部で行うように変更。
・カスタマイズパラメータ削除。
実質的には変更できない USBH_DEVINFO_NUM、USBH_IFACE_NUM、USBH_EPINFO_NUM などのユーザパラメータは非公開とした。
・ゼロレングスパケット検出エラーを修正。
コントローラドライバにてゼロレングスパケットが検出できない不具合を修正。
・無応答時リトライを追加。
USB デバイスが応答を返さなかったとき、3回リトライするように修正。これにより、READ/WRITE の通信エラーの頻度が低下する。
・通信タイムアウトをユーザカスタマイズパラメータ化。
USB デバイスが NAK を応答し続ける場合、転送関数がタイムアウトする時間をユーザカスタマイズ部で指定できるようにした。
・MSC TEST UNIT READY コマンド長の誤りを修正
MSC クラスドライバにて TEST UNIT READY コマンド長が誤っており、通信不可な USB デバイスが存在した。コマンド長を修正した。
2008.2.8:Ver1.06
MSCにFD/CD機能を追加。
MSCにFD/CD機能を追加した。これに伴いMSCのAPIが変更になった。詳細は「バージョンアップにおける注意事項」を参照のこと。
R8A66597に対応。
ルネサスUSBコントローラR8A66597に対応した。
ユーザカスタマイズ項目の追加。
M66596クロックの選択、出力端子駆動電流制御の選択、DMAxピンコンフィグレーションレジスタDMAxCFGレジスタ設定の指定をユーザカスタマイズ部に追加した。
バッファアラインメント時にctmallocを未使用。
MSCにてバッファアラインメントを行う機能でctmallocは使用せず、staticな領域を使用することにした。
SH7203、SH7263で割込みステータスをリードできないケースがあるのを修正。
SH7203、SH7263で割込みステータスをリードできないケースがあった。ルネサスのマニュアルにステータスを3回リードしないと正しく読めないという記述が追加されたので修正した。
SETUPリクエストエラー後、同じパケットが出つづける不具合を修正。
SETUPリクエストエラー後は、SETUPデータをクリアするように修正。
複数のUSBホストコントローラで動作できるよう修正。
複数USBコントローラでエラーする箇所を修正した。
MSCでデータを不要に分割しているのを修正。
OHCIの仕様に合うようにMSCでデータを分割している箇所があったが、これは本来コントローラドライバの役割。MSCクラスでの分割機能を削除した。
2007.8.31: Ver1.05
バッファアラインメント処理を追加。
アラインメントされていないバッファの読み書きがエラーしてしまう。クラスドライバにてアラインメント処理を実行する機能を追加した。
書き込み中にデバイスが抜かれた時に0番地アクセスが発生する現象を修正。
Version 1.04 に追加して、書き込み中にデバイスが抜かれた時に発生する 0 番地アクセスを修正した。
デバイスが指定したサイズ以上のデータを送ってきた場合にメモリが壊れる不具合を修正。
指定したサイズ以上のデータを送ってくるデバイスが存在するが、このとき送られた分だけデータを読み込んでしまうためメモリが壊れる不具合を修正した。
レジスタアクセス後、ウェイトが足りない箇所があるのを修正。
FIFO 選択レジスタアクセス後に規定時間ウェイトしていない箇所があり、転送処理が異常になることがある不具合を修正した。
コントロール転送に排他制御を追加。
複数タスクからコントロール転送を実行できるように排他制御を追加した。MSC には特に影響しない。
IN 転送エラー後に FIFO を停止する処理を追加。
IN 転送関数がエラーで返った後は FIFO を停止するように修正した。
2007.3.30: Ver1.04
usbcommonを削除。
各パッケージの共通定義部を削除。パッケージ毎のヴァージョンアップ対応に弱い構成なので共通部は削除し、各パッケージ毎に定義を持つ方針とした。
バッファが4バイト境界にないときの不具合修正。
送受信バッファが4バイト境界にないときに、INトランザクションを正しく読めなかった不具合を修正した。
コントロール転送リトライ。
コントロール転送が失敗したときにリトライを行うよう修正した。
コントロール転送はバッファアラインメントを気にせず転送。
コントロール転送はDMA転送しないのでバッファアラインメントに関係なく転送を実行するように修正した。
デバイスを抜いた時に0番地アクセスの可能性を修正。
デバイスを抜いた時に0番地アクセスする可能性があったがこれを修正した。
2006.12.08: Ver1.03
FAT16X(LBA),FAT32X(LBA)に対応
FAT16X(LBA),FAT32X(LBA)フォーマットのメモリを認識できるように修正した。
サンプル関数でのメモリ壊し修正
サンプルの ctusbh_msc_fs.c にてメモリを壊す箇所があり修正した。
write protected 状態に対応
USBメモリが write protected の状態にて write_sector 関数が無限ループに入る不具合を修正。
USBデバイス,USBホストのインクルードファイル共通化
USBデバイス,USBホストのインクルードファイル共通化に伴いファイル構成、構造体と定義の名称を変更した。
2006.07.04: Ver1.02
バルクIN/OUTに同一エンドポイントを指定するデバイスと通信できない。
デバイスから受信したエンドポイントデスクリプタ情報をドライバに格納する方法を修正し、動作可能とした。
バルク転送のタイムアウトが長いとこれにあわせて接続確認パケットがいつまでも送出できない。
Ver1.01ではコントロール転送とバルク転送は排他されている。無限にINを待つような使い方のクラスドライバと組み合わせると接続確認のコントロール転送パケットが送信できないため、排他制御を削除した。
接続確認パケット送信とバルク転送の排他がされない可能性がある。
接続確認パケット送信とバルク転送の排他されるよう修正した。新たに排他制御のOSリソースを追加した。
usbh_abort_transfer()で、vdis_psw()を使っている。
usbh_abort_transfer()で、誤ってvdis_psw()を使っていたため修正。
USBリクエスト定義のdefine箇所が適切なファイルにない。
USBリクエスト定義のdefineをctusbh_m66596_sys.hからctusbh_100.hに移動した。
CLEAR_FEATURE発行時でなくともパイプをリセットする可能性がある。
usbh_issue_ctrl()でエンドポイントへのCLEAR_FEATUREを発行したとき、コントローラドライバにてusbh_m66596_reset_pipe()している。このとき、「CLEAR_FEATURE判定」の条件が間違っていたので修正した。
登録可能ドライバ数デフォルト値ががやや少ない。
USBH_DRIVER_NUMを16とした。
エンディアン変更の関数名の内部関数が一般的な名前なので他のモジュールが提供するAPIとかぶる可能性がある。
lit2big2()/lit2big4()はusbh_lit2big2()/usbh_lit2big4()に変更。
2006.06.06: Ver1.01
HiSpeedで通信できないUSBメモリが存在する。
PINGに応答しないデバイスが存在する。ルネサスからの情報提供によりコントロールOUTにはパイプ5を使用し、インタラプトすることで対応。
HiSpeed時のデバイス接続確認に突然応答できないUSBメモリが存在する。
対象となるUSBデバイスはタイミングによってコントロール転送に応答できなくなるので一定期間通信を禁止した。コントローラドライバにおいては接続確認を有効・無効にするAPIを新規追加。停止するタイミングはクラスドライバにて制御することとした。また、データ通信が成功している間は接続確認パケットは送信しないこととした。
負荷をかけると突然通信が不能になりリクエストに対してNAKを返しつづけるUSBデバイスがいる。
エラー後、ホストがreset_pipeパケットを送出することでデバイスは復帰できる。ホスト側のエラー処理、及び、リトライ処理を修正。
割込み禁止後、dly_tsk()している箇所がある。
ディレイさせる前に割込みを有効とするよう修正。また、割込み禁止/有効にはNORTiのvdis_psw()/vset_psw()は禁止とした。
2006.03.31 : Ver1.00
新規作成
USBドライバシリーズ【マスストレージクラス】
- Cente USB2.0 Host MassStorage for M66596
- Cente USB2.0 Host MassStorage for EPSON
- Cente USB2.0 Host MassStorage for ML675050 OKI
- Cente USB2.0 Host MassStorage for SuperH
- Cente USB2.0 Host MassStorage for μPD720150
- Cente USB2.0 Device MassStorage for M66596
- Cente USB2.0 Device MassStorage for μPD720150
- Cente USB1.1 Device MassStorage for V850
- Cente USB1.1 Device Mass Storage for Super-H/H8
製品マニュアルのお問い合わせ
以下のフォームに必要事項を入力し、「内容確認へ」ボタンを押してください。
※印の項目は入力必須です。
- μITRONはMicro Industrial The Realtime Operating System Nucleusの略称です。
- Centeはデータテクノロジー株式会社の商標登録です。
- ESPTはビー・ユー・ジー社製のネットワーク通信機能付き小型CPU基板です。
- その他の製品名・ブランド名は各社の商標または登録商標です。
- 記載の仕様・価格・概観等については、予告なく変更する場合があります。



