host api design for mm7150 motion moduleww1.microchip.com/downloads/jp/appnotes/00001873a_jp.pdfbit7...
TRANSCRIPT
-
AN1873MM7150 モーション モジュール向けホスト API 設計
注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。
はじめに
本書では、定義済み API( アプリケーション プログラミング インターフェイス ) と仮想レジスタを使って MM7150 モーション モジュールのデータにアクセスするアプリケーション ファームウェアを作成する方法を詳しく説明します。
また、この仕様と設計は Explorer 16 (PIC24FJ) 開発ボードのセンサ フュージョン サンプルコードと一緒に MM7150 で 使われています。このサンプルコードは公開されています。
対象ユーザ
本書は、組み込みコントローラのファームウェアの開発経験および HID over I2C プロトコルの基礎知識を持つ開発者を 対象としています。
参考文献
以下の文書も参照してください。製品の在庫状況については、弊社または代理店にお問い合わせください。
•『HID over I2C protocol specification』(v1.0)、Microsoft 社、2012 年 4 月 24 日 (msdn.microsoft.com で入手可能 ) •『HID Sensor Usage Tables』(Request #: HUTRR39、usb.org で入手可能 )•『MM7150 Motion Module/PICTail on Explorer 16 Development Board User’s Manual』(Rev. A)、Microchip 社•『MM7150 with Explorer 16 (PIC24) Sensor Fusion Sample Code』(v1.3.1 以降 )、Microchip 社
『MM7150 モーション モジュール向けホスト API 設計』における用語と略語このセクションでは本書で使う用語と略語を説明します。
表 1-1: 用語集用語 定義
HID Human Interface DeviceI2C Inter-Integrated Circuit
ホスト MM7150 との通信に使う組み込みシステム内のアプリケーション プロセッサ Exp 16 サンプルコードでは PIC24FJ128GA010
デバイス /EC MM7150 モーション モジュールまたは SSC7150 センサハブ デバイスVREG 仮想レジスタAcc, Mag, Gyro 加速度センサ、磁気センサ、角速度センサ ( 物理センサ )Ori, Incl, Cmp オリエンテーション、傾斜計、コンパス ( 仮想センサ )SF センサ フュージョン
Author: Tom Tse / Arjun M. DasMicrochip Technology Inc.
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.1
-
AN1873
1.0 システム概要ホスト空間は以下の 2 つに区分されます。
• ホストユーザ空間• ホスト SF ライブラリ空間
図 1-1: ホストのレイアウト
ホスト アプリケーションはホストユーザ空間に、SF 関連インフラストラクチャは SF ライブラリ空間に格納されます。 ホスト アプリケーションは仮想レジスタを読み書きしてホスト SF ライブラリを使います。仮想レジスタはユーザ アプリケーションから見えるホスト SF ライブラリの最上位層です。しかし、ユーザーアプリケーションは最終的にSF ライブラリの全階層を駆動します。
図 1-2: ホストデバイスのレイアウト
SF Lib SpaceUser Space
User Application
V R E G
VREGto
HID/I2CTranslation
HID/I2CParser
I2C/SMBusDriver
Host User Space Host SF Lib Space
MM7150 Motion Module
I2C CLK/DAT
Alert Line
Wake Up
Read/Write
DS00001873A_JP - p.2 Advance Information 2015 Microchip Technology Inc.
-
AN1873
2.0 ホスト SF ライブラリの機能このセクションでは、ホスト SF ライブラリがサポート ( またはサポートを予定 ) している全機能をまとめています。
表 2-1: ホスト SF ライブラリの機能機能 説明
リセット MM7150 モジュールの HID/I2C リセットコマンドをサポートし、仮想レジスタを初期化します。
センサハブ イネーブル センサハブを有効にします。センサハブ スリープ 有効にすると最も深い D3 スリープ状態に入ります。センサ表示 MM7150 モーション モジュールがサポートするセンサを表示します。センサ感度 センサの感度を設定します。
センサ データレート / SPS
センサのデータレート ( レポート間隔 ) を設定します。
センサイネーブル センサからのレポートを有効にします。
センサデータ 有効にしたセンサからデータを読み出します。
PID, VID, DID 各種 ID を読み出します。ベンダー コレクション MM7150 ファームウェア ID を読み出し、センサ係数を更新し、設定ファイルを更新し、
フラッシュ更新をサポートします。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.3
-
AN1873
3.0 ホスト SF ライブラリホスト SF ライブラリ空間は以下の 4 層で構成されています。
• 仮想レジスタ層• VREG - HID 変換層• HID/I2C パーサ層• I2C/SMBus ドライバ層
各層を以下に説明します。
3.1 仮想レジスタ仮想レジスタとは RAM に実装された 16 ビットのレジスタです。このレジスタにアクセスすると、MM7150 モーションモジュールの設定と読み書きを実行します。
仮想レジスタの特徴を以下に示します。
• VREG に同じ値を繰り返し書き込んでも、その値には影響しません。 • VREG の中には自動クリアビット ( 処理が完了すると自動的にクリアされるビット ) を持つものがあります。• VREG の動作はアクセスタイプに厳密に従います。• VREGの多くはステータス レジスタに対応するビットがあり、VREG書き込みが成功したかどうかを確認できます。• VREG の中には、モジュールで特定のセンサが利用可能な場合のみ有効になり、それ以外は予約済みとなります。
詳細は補遺 B:「仮想レジスタのマップ」を参照してください。
3.1.1 レジスタの説明
3.1.1.1 レジスタ 00h: センサハブ コンフィグレーション (SHC)- アクセスタイプ : R/W- POR 既定値 : 0x0001
表 3-1: 仮想レジスタで使う用語の定義用語 / 略語 定義
R 「R」はアクセスタイプの 1 つです。レジスタまたはビットが読み出し専用である事を示します。読み出し専用のビットとレジスタを読み出すと、現在値を返します。これらのビットまたはレジスタを読み書きしても、その値には影響しません。
W 「W」はアクセスタイプの 1 つです。レジスタまたはビットが書き込み専用である事を示します。書き込み専用のビットとレジスタは、書き込みのみが可能です。これらのビットまたはレジスタを読み出すと、0 を返します。
R/W 「R/W」はアクセスタイプの 1 つです。レジスタまたはビットが読み書き可能である事を示します。読み書き可能のビットとレジスタを読み出すと、現在の値を返します。値を書き込むと、レジスタまたはビットは更新されます。これらのビットまたはレジスタを読み出しても、その値には影響しません。
表 3-2: VREG - 00h BIT15 BIT14 BIT13 BIT12 BIT11 BIT10 BIT9 BIT8
RES RES Raw Gyro EN
Raw Mag EN Raw Acc EN RES RES Incl EN
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
Ori EN Cmp EN Gyro EN Acc EN MM_Reset MM_Start MM_Sleep MM_Wake
DS00001873A_JP - p.4 Advance Information 2015 Microchip Technology Inc.
-
AN1873
表 3-3: VREG - 00h ビットの説明ビット 説明
0 - MM_Wake 既定値では、このビットはセットされています。スリープビットがセットされると、このビットは自動的にクリアされます。ホストをスリープから復帰させるには、このビットをセットします。
1 - MM_Sleep このビットをセットすると、MM7150 モーション モジュールは最も深い D3 スリープ状態 に入ります。このスリープから復帰するには、ホスト SF ライブラリは MM_Wakeビット 0 をセットする事で復帰信号を発行する必要があります。このビットは自動クリアビットです。以下に示すビットの組み合わせ以外では、このレジスタをセットまたはクリアできません。
• MM_Wake = 1 かつ MM_Sleep = 0 の場合、MM7150 はアクティブになります。• MM_Wake = 0 かつ MM_Sleep = 1 の場合、MM7150 はスリープに入ります。
全てのセンサが無効な場合のみ、このビットは有効です。センサが 1 つでも有効な場合、このビットはセットできません。このビットをセットし、動作が正常に完了した場合、次の VREG 書き込みは MM_Wakeセットである必要があります。MM_Sleep の後に MM_Wake 以外の VREG 書き込みを発行しても無視されます。
2 - MM_Start センサを有効にする前にこのビットをセットする必要があります。POR の後一度だけセットできます。このビットは、ホスト SF ライブラリ初期化で必ずセットする必要があります。POR 時のみクリアされます。このビットは、センサハブの起動に必要です。このビットがセットされていないと、センサ イネーブルビットはセットできません。この ビットはユーザ アプリケーションではセットする必要はなく、ユーザ アプリケーションか らは常に「1」として読み出されます。
3 - MM_Reset このビットをセットすると、ホスト SF ライブラリは HID/I2C リセットを発行します。このリセットは SHC (MM_Start を除く )、感度、データレート、データの各仮想レジス タも POR 値にリセットします。これは自動クリアビットです。
4 - Acc EN このビットをセットすると、Acc が有効になります。そのデータは Acc データレジスタから読み出せます。
5 - Gyro EN このビットをセットすると、Gyro が有効になります。そのデータは Gyro データレジスタから読み出せます。
6 - Cmp EN このビットをセットすると、Cmp が有効になります。そのデータは Cmp データレジスタから読み出せます。
7 - Ori EN このビットをセットすると、Ori が有効になります。そのデータは Ori データレジスタから読み出せます。
8 - Incl EN このビットをセットすると、Incl が有効になります。そのデータは Incl データレジスタから読み出せます。
9, 10 - RES 予約済みビット11 - Raw Acc EN このビットをセットすると、Acc 生データレジスタから Acc の生データを読み出せます。12 - Raw Gyro EN このビットをセットすると、Gyro生データレジスタからGyroの生データを読み出せます。13 - Raw Mag EN このビットをセットすると、Mag生データレジスタからMagの生データを読み出せます。14, 15 - RES 予約済みビット
Note: 生データを使うには、対応する物理 / 仮想センサを有効にする必要があります。詳細はセクション 3.2.2.1「レジスタ 00h: センサハブ コンフィグレーション (SHC)」を参照してください。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.5
-
AN1873
3.1.1.2 レジスタ 01h: センサ表示 (SL)- アクセスタイプ : R- POR 既定値 : 0x0000
SL レジスタを使うと、センサハブ ソリューションで利用可能な全ての ( 物理および仮想 ) センサを確認できます。 例えば、BIT0 がセットされていれば、Acc センサが利用可能である事を示します。対応するビットがセットされていない場合、そのセンサが存在しない事を示します。そのセンサに関連する全てのレジスタとビットは予約済みであり、アクセスできません。
3.1.1.3 レジスタ 02h ~ 0Bh: xxxx 感度- アクセスタイプ : R/W- POR 既定値 : 0x0000
オフセット 02h ~ 0Bh のレジスタを使ってセンサ感度を設定します。例えば、ACSEN (Acc 感度 ) レジスタで Acc センサの感度を設定します。このレジスタを使ってセンサの現在の感度を読み取る事もできます。
3.1.1.4 レジスタ 0Ch ~ 15h: xxxx データレート- アクセスタイプ : R/W- POR 既定値 : 0x0000
オフセット 0Ch ~ 15h のレジスタを使って、センサのデータレートを ms 単位で設定します。最小レポート間隔は10 ms です。例えば、ACDXR レジスタは加速度センサのデータレート ( レポート間隔 ) を設定します。30 ms 間隔で サンプルを得るには、このレジスタを 0x001E に設定します。このレジスタを使ってセンサの現在のデータレート( レポート間隔 ) を読み取る事もできます。
3.1.1.5 レジスタ 16h ~ 35h: xxxx データ- アクセスタイプ : R- POR 既定値 : 0x0000
オフセット 16h ~ 35h のレジスタを使って、センサのデータを取得します。センサデータは、SHC レジスタでそのセンサが有効な場合のみ読み出せます。センサデータは、センサ既定値のレポート間隔またはユーザが設定したレポート間隔で更新されます。このレポート間隔はデータレート レジスタで設定します。ユーザ アプリケーションがセンサ データを読み出す際、レジスタ オフセットの昇順で読み出される事に注意が必要です。例えば、加速度センサは 3 つの データレジスタ (AccX, AccY, AccZ) を持ち、これらのレジスタは AccX、AccY、AccZ の順に読み出されます。センサを 無効にすると、これらのレジスタはクリアされます。
3.1.1.6 レジスタ 36h: 製品 ID- アクセスタイプ : R- POR 既定値 : 0x0000
このレジスタはデバイスの製品 ID を格納します。このレジスタは SHC レジスタの MM_Start ビットがセットされた後に書き込まれ、POR 後にのみクリアされます。
表 3-4: VREG - 01hBIT15 BIT14 BIT13 BIT12 BIT11 BIT10 BIT9 BIT8
RES RES RES RES RES RES RES RES
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
RES RES Cmp Ori Incli Gyro Mag Acc
Note: SL レジスタが書き込まれるのは SHC レジスタの MM_Start ビットがセットされた後です。
Note: Mag FluxX データ、Mag FluxY データ、Mag FluxZ データの各レジスタは、コンパスを有効にすると更新 されます。
DS00001873A_JP - p.6 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.1.1.7 レジスタ 37h: 製造者 ID- アクセスタイプ : R- POR 既定値 : 0x0000
このレジスタはデバイスの製品 ID を格納します。このレジスタは SHC レジスタの MM_Start ビットがセットされた後に書き込まれ、POR 後にのみクリアされます。
3.1.1.8 レジスタ 38h: デバイス ID- アクセスタイプ : R- POR 既定値 : 0x0000
このレジスタはデバイスの製品 ID を格納します。このレジスタは SHC レジスタの MM_Start ビットがセットされた後に書き込まれ、POR 後にのみクリアされます。
3.1.1.9 レジスタ 39 ~ 3Eh: 指数- アクセスタイプ : R- POR 既定値 : 0x0000
レジスタ 0x39 ~ 0x3B で、各センサのデータレジスタの単位の指数値を提供します。
レジスタ 0x3C ~ 0x3E で、各センサの感度レジスタの単位の指数値を提供します。
表 3-5: 指数レジスタビットの定義レジスタ ビット センサ
指数 1 (0x39) 0-3 Acc データの指数値4-7 Gyro データの指数値8-11 Cmp データの指数値12-15 Ori データの指数値
指数 2 (0x3A) 0-3 Incl データの指数値4-11 予約済み12-15 Acc 生データの指数値
指数 3 (0x3B) 0-3 Mag 生データの指数値4-7 Gyro 生データの指数値8-15 予約済み
指数 CS1 (0x3C) 0-3 Acc 感度の指数値4-7 Gyro 感度の指数値8-11 Cmp 感度の指数値12-15 Ori 感度の指数値
指数 CS2 (0x3D) 0-3 Incl 感度の指数値4-11 予約済み12-15 生の Acc 感度の指数値
指数 CS3 (0x3E) 0-3 生の Mag 感度の指数値4-7 生の Gyro 感度の指数値8-15 予約済み
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.7
-
AN1873
3.1.1.10 レジスタ 3F ~ 42h: xxxx ステータス - アクセスタイプ : R/W- POR 既定値 : 0x0000
これらのレジスタは SHC/xxxx 感度 /xxxx データレートの各レジスタがサポートする動作のステータスを示します。動作が完了したか、エラーが発生したかどうかを示します。ステータス レジスタは全部で 4 つあります。ステータス レジスタのステータスをクリアする手順は全て同じです。
3.1.1.11 レジスタ 3F: ステータス 1、レジスタ 40: ステータス 2 Bit0 ~ Bit3これらのビットは SHC レジスタのセンサ イネーブルビットのステータスを示します。各センサのイネーブルビットに 2 ビットが割り当てられています。ステータス レジスタをクリアできるのは、センサの有効化 / 無効化が失敗したと いうステータスを格納している時、またはリセット後のみです。2 ビットで以下のステータスを表します。
表 3-6: 単位の指数の符号化と意味 値 指数 10 の累乗
0x00 1x10E0 10x01 1x10E1 100x02 1x10E2 1000x03 1x10E3 1 0000x04 1x10E4 10 0000x05 1x10E5 100 0000x06 1x10E6 1 000 0000x07 1x10E7 10 000 0000x08 1x10E-8 0.00 000 0010x09 1x10E-7 0.0 000 0010x0A 1x10E-6 0.000 0010x0B 1x10E-5 0.00 0010x0C 1x10E-4 0.0 0010x0D 1x10E-3 0.0010x0E 1x10E-2 0.010x0F 1x10E-1 0.1
表 3-7: センサ有効化 / 無効化ステータスxxxx ステータス 1 xxxx ステータス 0 説明
0 0 ステータス レジスタをクリアする0 1 センサの有効化が成功した1 0 センサの無効化が成功した1 1 センサの有効化 / 無効化が失敗した
DS00001873A_JP - p.8 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.1.1.12 レジスタ 40: ステータス 2 Bit4 ~ Bit15、レジスタ 41 ~ 42: ステータス 3、4ステータス 2、3、4 の各レジスタは、センサ感度変更およびセンサ データレート VREG のステータスビットも格納 しています。各センサの感度およびデータレート レジスタに 2 ビットが割り当てられています。3 ビットで以下の ステータスを表します。
3.1.1.13 レジスタ 42: Bit 3 ~ 6ビット 3 および 4 は、SHC レジスタの MM_Start ビットのステータスを表します。下表にステータスを示します。
同様にビット5および6は、SHCレジスタのリセットビットのステータスを表します。以下の表にステータスを示します。:
3.1.1.14 レジスタ 42: Bit 7 ~ 9MM_Sleep と MM_Wake 用に 3 ビットが割り当てられています。この 3 ビットで以下のステータスを表します。
表 3-8: センサのデータレートと感度の変更ステータス xxxx CS/データ2 ( エラービット )
xxxx CS/ データ 1 ( データレート ビット )
xxxx CS/データ0 ( 感度ビット ) 説明
0 0 0 データレート ステータスビットをクリアする0 1 0 データレートの変更が成功した0 0 1 感度の変更が成功した0 1 1 データレートと感度両方の変更が成功した1 0 0 感度ステータスビットをクリアする1 1 0 データレートの変更に失敗した1 0 1 感度の変更に失敗した1 1 1 データレートと感度の変更に失敗した
表 3-9: MM_Start ビットのステータスMM_Start ステータス 1 MM_Start ステータス 0 説明
0 0 ステータス レジスタをクリアする0 1 MM_Start が成功した1 0 未使用1 1 MM_Start が失敗した
表 3-10: MM_Reset ビットのステータスMM_Reset ステータス 1 MM_Reset ステータス 0 説明
0 0 ステータス レジスタをクリアする0 1 MM_Reset が成功した1 0 未使用1 1 MM_Reset が失敗した
表 3-11: MM_Sleep および MM_Wake ビットのステータスxxxx CS/データ2 ( エラービット )
xxxx CS/データ1 (SH 復帰ビット )
xxxx CS/ データ 0 (SH スリープビット ) 説明
0 0 0 MM_Wake ステータスビットをクリアする0 1 0 MM_Wake が成功した0 0 1 MM_Sleep が成功した0 1 1 未使用1 0 0 MM_Sleep ステータスビットをクリアする1 1 0 MM_Wake が失敗した1 0 1 MM_Sleep が失敗した1 1 1 未使用
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.9
-
AN1873
3.1.2 VREG アクセスVREG マップ内の全 VREG アクセス用に2つの API を提供しています。• HOST_SF_Lib_VREG_write• HOST_SF_Lib_VREG_read
3.1.2.1 関数のプロトタイプ
UINT8 HOST_SF_LIB_VREG_read (UINT8 offset, UINT16* data)仮想レジスタの内容を読み出す関数
offset 仮想レジスタのオフセットdata* REG データを読み込むポインタreturn 成功した場合は 0 を返し、それ以外はエラーコードを返す
UINT8 HOST_SF_LIB_VREG_write (UINT8 offset, UINT16 data)仮想レジスタへの書き込み要求をキューに登録する関数
offset 仮想レジスタのオフセット ( レジスタのアドレス )data VREG に書き込む内容return 成功した場合は 0 を返し、それ以外はエラーコードを返す
3.1.2.2 VREG 書き込み機能ユーザ アプリケーションは 2 バイト値を使って VREG 書き込みを発行できます。成功すると 2 バイト値は VREG に 書き込まれます。書き込みが失敗するとエラーコードが返されます。しかし、VREG 書き込みの成功は必ずしも希望の動作が正常に実行された事を示しません。ステータス VREG のステータスビットは、VREG に関する動作のステータスを示すものです。
3.1.2.3 VREG 読み出し機能アプリケーションが VREG 読み出しを発行するたびに、ホスト SF ライブラリは直ちにレジスタの 2 バイト値を返します。データレジスタの場合、センサレジスタをオフセットの昇順に読み出す必要があります。
3.1.2.4 VREG 書き込み / 読み出しエラーコード
Note: VREG_write と VREG_read は両方ともノンブロッキング コールです。
表 3-12: VREG エラーコードエラーコード 説明
0x00 成功0x01 アクセスタイプのエラー0x02 認識できない VREG オフセット
DS00001873A_JP - p.10 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.1.3 VREG の初期化 ( ホスト SF ライブラリの初期化 )SF ライブラリの初期化中に以下の動作シーケンスを実行する必要があります。
• I2C CLK およびデータラインを設定する。 • GPIO 割り込み監視ラインを設定する。• GPIO ウェイクアップ ラインを設定する。• 全ての仮想レジスタを初期化する。• SHCレジスタのMM_Startビットをセットする (このビットはホストSFライブラリ初期化で必ずセットされる )。
3.2 VREG から HID への変換各仮想レジスタの設定は、ほとんどの場合変換後、直接的または間接的に HID/I2C パケットに納める必要があります。本セクションでは仮想レジスタへのアクセスを説明します。また、VREG マップに示すビット / レジスタの HID 変換に関する情報も説明します。
3.2.1 仮想レジスタの HID/I2C プロトコルへの変換仮想レジスタの内容の HID/I2C プロトコル変換は以下のようにして実行します。仮想レジスタは HID/I2C バックエンドサポートに基づいて以下の 2 つに区分されます。
• コマンド要求ベース • デバイスデータ読み出しベース
3.2.2 コマンド要求ベースこの区分に含まれる仮想レジスタは、クラス特有の要求 (HID/I2C 仕様による ) に基づいています。以下のレジスタがあります。
• センサハブ コンフィグレーション レジスタ• センサ感度レジスタ• センサ データレート レジスタ
3.2.2.1 レジスタ 00h: センサハブ コンフィグレーション (SHC)
Note: HID/I2C仕様ではデバイスのHID/I2Cのリセットに最大5 sを要するため、初期化プロセスには約5 s必要です。
表 3-13: センサハブ コンフィグレーションの動作 ビット HID/I2C 要求シーケンス HID 要求の前後に実行される動作
MM_Wake このビットがセットされると、ホスト SFライブラリは復帰信号を発行し、11 ms 待機 してから以下の HID/I2C 要求シーケンスを送ります。
1. SET POWER (ON)
Note: 次のコマンドをモーションモジュールに送る前に30 ms待機 します。
以下の動作が実行されます。
1. 正常に復帰した後、このレジスタのビット 1(MM_Sleep ビット ) がクリアされる。
MM_Sleep このビットがセットされると、ホスト SFライブラリは以下のHID/I2C要求を送ります。1. SET POWER (SLEEP)
Note: スリープコマンド発行後、復帰信号を発行する前に 70 ms待機 します。
このビットが有効なのは全センサが無効の場合のみです。有効なセンサが 1 つでもあるとこのビットは効力を持たず、このビットをセットしようとする動作を中止させます。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.11
-
AN1873
MM_Start HID/I2C 要求シーケンス :1. HID ディスクリプタを取得2. SET POWER (ON)3. RESET4. レポート ディスクリプタを取得5. 利用可能な全センサの機能レポート
を取得
手順 1、3、4 が失敗した場合、エラーを発行して処理を中止します。
以下の動作が実行されます。
1. HID ディスクリプタを解析• 最大入力レポート長を取得する• レポート ディスクリプタ、要求レジスタ、データ
レジスタのレジスタアドレスを取得する
• レポート ディスクリプタ長を取得する2. レポート ディスクリプタを解析• 利用可能なセンサを取得し、結果をセンサ表示
(VREG) に書き込む• 各種センサのレポート ID を識別する• 全ての機能レポートのサイズを取得する• 入力レポートのセンサ データフィールドのオフ セットを識別する
• 機能レポートの既定値の感度とデータレートのオフセットを識別する
3. 機能レポートを解析• 全センサの既定値の感度とデータレートを取得し、取得した値をセンサのデータレートおよび感度仮想レジスタに書き込む
• 全センサの指数値を取得し、センサ指数仮想レジスタに書き込む
MM_Reset このビットがセットされると、ホスト SFライブラリは以下のHID/I2C要求を送ります。1. RESET手順 1 が失敗した場合、エラーを発行し処理を中止します。
以下の動作が実行されます。
1. リセットが正常に完了すると、このビットをクリア
2. 感度、データレート、ステータスの各仮想レジスタは、MM_Start ステータスビットを除き、POR 値にリセット
3. 全センサはリセットで無効となるため、MM_Start ビットを除く SHC の全ビットをクリア
表 3-13: センサハブ コンフィグレーションの動作 ( 続き )ビット HID/I2C 要求シーケンス HID 要求の前後に実行される動作
DS00001873A_JP - p.12 Advance Information 2015 Microchip Technology Inc.
-
AN1873
上記の表に加えて、生のセンサを有効にするには対応するセンサも有効にする必要があります。
複数のビットがセットされている場合、下表の優先度に従います。MM_Reset ビットがセットされた場合、デバイスと他の全レジスタの全ビットをリセットします。MM_Wake と MM_Sleep は常に相補的であるため、両者に同じ値を書き込もうとすると両方とも変更されません。MM_Sleep をせっとできるのは、その他の全ビット (MM_Start を除く )がクリアされている場合のみです。
Acc ENGyro ENCmp ENOri ENIncl ENRaw Acc ENRaw Gyro ENRaw Mag EN
これらのビットのうちいずれかがセットされると、ホスト SF ライブラリは以下のHID/I2C 要求を送ります。1. GET FEATURE REPORT2. SET FEATURE REPORT• センサのパワーステートを
HID_USAGE_SENSOR_PROPERTY_POWER_S
TATE_D0_FULL_POWER_ENUM に設定する
• センサレポート ステートをHID_USAGE_SENSOR_PROPERTY_REPORTIN
G_STATE_ALL_EVENTS_ENUM に設定する
3. SET FEATURE REPORT手順 1、2、3 のいずれかが失敗した場合、エラーを発行し動作は中止します。手順 2で設定する機能レポートは手順 3 で受けたものと同じである必要があります。異なる場合、手順 2 および 3 を最大 3 回繰り返す必要があります。それでもコマンド シーケ ンスが失敗する場合、エラーを発行し最初に戻ります。このビットがクリアされると上記と同じ動作を実行します。ただし手順 2 でセンサ電源ステートを HID_USAGE_SENSOR_PROPERTY_POWER_STATE
_D1_LOW_POWER_ENUM に設定します。
以下の動作が実行されます。
1. 選択したセンサに応じた適切なレポート IDを添えて機能レポート取得コマンドを発行
2. 機能レポート長もレポート ディスクリプタ から取得
3. センサデータ仮想レジスタを読み出せるのは、このビットがセットされている場合のみ
RES 予約済みビット
Note: 生のセンサで希望のデータレートを得るには、2 つの感度レジスタ ( 生のセンサと対応するセンサ ) を両方ともゼロに設定する事を推奨します。生のセンサと対応するセンサのどちらかの感度がゼロでない場合、データレート レジスタで設定した生のセンサのデータレートは ( 特にレポート間隔 ( データレート ) が 60 ms を超える場合 ) 保証されません。
表 3-14: センサハブ コンフィグレーションの優先度 ビット 優先度
MM_Wake -MM_Sleep -MM_Start -MM_Reset 高Acc EN 中Gyro EN 中Cmp EN 中Ori EN 中Incl EN 中Raw Acc EN 中Raw Gyro EN 中Raw Mag EN 中
表 3-13: センサハブ コンフィグレーションの動作 ( 続き )ビット HID/I2C 要求シーケンス HID 要求の前後に実行される動作
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.13
-
AN1873
3.2.2.2 レジスタ 02h ~ 0Bh: xxxx 感度このレジスタを書き込むと、以下の HID/I2C 要求が発行されます。1. GET FEATURE REPORT2. SET FEATURE REPORT3. GET FEATURE REPORT
以下の動作が実行されます。
1. SET FEATURE REPORT を発行する。このとき、感度以外のフィールドは現状と同じ値が使われる。2. SET FEATURE REPORT の結果を GET FEATURE REPORT で検証し、感度が変更されていない場合、
SET FEATURE REPORT を再発行する。このシーケンスは 3 回繰り返す。それでも感度が設定されない場合、 エラーを発行し最初に戻る。
3.2.2.3 レジスタ 0Ch ~ 15h: xxxx データレートこのレジスタを書き込むと、以下の HID/I2C 要求が発行されます。1. GET FEATURE REPORT2. SET FEATURE REPORT3. GET FEATURE REPORT
以下の動作が実行されます。
1. 全フィールド ( 今回値が更新されたレポート間隔フィールドを除く ) が等しい機能レポート設定コマンド (SETFEATURE REPORT) を発行する。
2. SET FEATURE REPORT の結果を GET FEATURE REPORT で検証し、レポート間隔が変更されていない場合は、 SET FEATURE REPORT を再発行する。このシーケンスは 3 回繰り返す。それでもレポート間隔が設定され ない場合、エラーを発行し最初に戻る。
3.2.3 デバイスデータ読み出しベースこの区分に含まれる仮想レジスタは、MM7150 から読み出したデータに基づいています。
• センサデータ レジスタ
3.2.3.1 レジスタ 16h ~ 35h: xxxx データMM7150 がアラートラインを Low に駆動すると、ホストから最新データを読み出せます。入力レポートを読み出すと、以下の動作が実行されます。
1. 入力レポートを読み出すと、レポート ID を識別するために解析されます。レポート ID に対応するセンサの識別後、データを解析し適切なセンサレジスタに書き込みます。
2. センサ有効時、ユーザはデータレジスタを常時読み出す事ができます。センサデータ レジスタが更新中 ( または ロック中 ) にデータを読み出そうとすると、旧データが読み出されます。
センサが無効の場合、そのセンサのデータレジスタは 0x0000 として読み出されます。
Note: 他のセンサを有効にする前に、加速度センサを有効にする事を推奨します。これにより、デバイスの動きを検出し適切なデータレートを得る事ができます。
Note: 感度をゼロに設定すると、動きの影響を除いた正しいデータレートを得る事ができます。
DS00001873A_JP - p.14 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.2.4 その他のレジスタとその機能
3.2.4.1 レジスタ 01h: センサ表示 (SL)このレジスタは HID/I2C とは直接関係しません。このレジスタは、ハードウェア上で利用可能なセンサのデータを保持します。このレジスタは、SHC の MM_Start ビットをセットすると書き込まれます。このレジスタは 1 度だけ書き込まれ、POR でクリアされます。
3.2.4.2 PID、VID、DID レジスタこれらのレジスタは、SHC の MM_Start ビットをセットすると書き込まれます。これらのレジスタは 1 度だけ書き込まれ、POR でクリアされます。
3.2.4.3 レジスタ 39 ~ 3Eh: 指数レジスタこれらのレジスタは、SHC の MM_Start ビットをセットすると書き込まれます。これらのレジスタは 1 度だけ書き込まれ、POR でクリアされます。
3.2.4.4 ステータス レジスタレジスタの書き込み可能ビットは全て、ステータス レジスタ内に対応するビットを持っています。これらのステータス ビットは、特定の VREG での VREG 書き込みの成功 / 失敗に基づいて書き込まれます。
3.2.5 VREG 実装の概要各 VREG ビットにはそれぞれ対応する動作があります。VREG ビットに基づいて VREG から HID への変換が実行され、ステータス レジスタが該当するステータスに更新されます。VREG ビットに基づいた動作を再発行する場合、対応する ステータスビットをクリアする必要があります。ホスト SF ライブラリは、以下の条件に従って VREG - HID 変換を 開始します。
• VREG でビットがセットされているかどうかを確認する。• 対応するステータスビットがクリアされているかを確認する。
3.3 HID/I2C パーサHID/I2C パーサは HID API を提供する層です。このセクションでは HID I2C プロトコルについて説明します。ホスト SF ライブラリの要求制御フローからの I2C 要求は、以下の 2 つの部分に分けられます。
• ディスクリプタ要求シーケンス• デバイスコマンド要求シーケンス
3.3.1 ディスクリプタ要求シーケンス
3.3.1.1 HID ディスクリプタホスト SF ライブラリは、デバイス ディスクリプタの読み出しシーケンスの I2C 組み合わせ読み出しを実行し、0x1E バイトを読み出します。
図 3-1: デバイス ディスクリプタの読み出し例
Note: この例では、デバイス ディスクリプタのアドレスは 0x0001 です。デバイス ディスクリプタ レジスタは フラッシュ内の特定の位置に配置され、利用可能である事が必要です。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.15
-
AN1873
3.3.1.2 レポート ディスクリプタホスト SF ライブラリは、デバイス ディスクリプタ読み出しが成功するとレポート ディスクリプタを要求します。また、 ホスト SF ライブラリはデバイス ディスクリプタで指定したレポートアドレスを発行し、レポート ディスクリプタを 読み出します。この読み出しシーケンスに I2C 組み合わせ読み書きを使います。
3.3.2 デバイスコマンド要求シーケンスホスト SF ライブラリで注意する必要がある各種コマンドを以下に示します。• RESET• GET REPORT• SET REPORT• SET POWER
3.3.2.1 RESETリセットコマンドは、ホスト SF ライブラリがデバイスに対して常時発行できる要求です。
3.3.2.1.1 RESET 要求RESET 要求のタイプを以下に示します。
3.3.2.1.2 Reset 応答ホスト SF ライブラリが RESET コマンドをコマンドレジスタに発行すると、デバイスは自身をリセットし初期状態に戻ります。また、リセットが完了するとデバイスは 2 バイトの 0 を入力レジスタに書き込み、割り込みをアサートして初期化が完了した事を示します。ホスト SF ライブラリは、リセット時に必ず入力レジスタを読み出し、値が書き込まれている場合デバイスがリセットを完了したと判断します。
図 3-2: レポート ディスクリプタの読み出し例
Note: この例では、レポート ディスクリプタのアドレスは 0x0002 です。
表 3-15: RESET 要求のタイプデータ 値 備考
上位バイト
予約済み 0000b この値は予約済みであり、必ず 0000b に設定されています。オペコード 0001b この値は RESET コマンド用に予約済みです。
下位バイト
予約済み 00b この値は予約済みであり、必ず 00b に設定されています。レポートタイプ 00b ホスト SF ライブラリが常にこの値を特定の値に設定します。
デバイスはこの値を無視し、ゼロとして扱います。
レポート ID 0000b ホスト SF ライブラリが常にこの値を特定の値に設定します。デバイスはこの値を無視し、ゼロとして扱います。
Note: デバイスはこの要求に対して 5 秒以内に応答する必要があります。そうでないと、ホスト SF ライブラリはそのデバイスを動作不能として認識します。
DS00001873A_JP - p.16 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.3.2.1.3 RESET コマンドのシーケンス この要求に関するホスト SF ライブラリ側とデバイス側の動作シーケンスを以下に示します。
3.3.2.2 GET REPORTGET REPORT コマンドは、ホスト SF ライブラリがデバイスに対して発行できる ( 入力または機能レポートの ) 要求 です。このコマンドを使うと、初期化後は常時デバイスからレポートを取得できます。
3.3.2.2.1 GET REPORT 要求GET REPORT 要求のタイプを以下に示します。
3.3.2.2.2 GET REPORT 応答ホスト SF ライブラリが GET_REPORT コマンドをコマンドレジスタに発行すると、デバイスはデータレジスタにレポートを書き込みます。デバイスはクロックを伸長し、反復スタートで次のホスト SF ライブラリを読み出す事もできます。このデータは以下のようにパッケージ化されます。
• レポート長 (2 バイト )• レポート ID 付きレポート
表 3-16: RESET コマンドの動作ホスト SF ライブラリ側 デバイス (MM7150) 側
手順 1 ホストSFライブラリがRESETをコマンドレジスタに送る。
手順 2 デバイスが自身の初期化を完了した後、入力レジスタのデータ長フィールドを 0x0000 で更新し、割り込みをトリガする。
図 3-3: RESET コマンド例
表 3-17: GET REPORT 要求のタイプデータ 値 備考
上位バイト
予約済み 0000b この値は予約済みであり、必ず 0000b に設定されています。オペコード 0001b この値は GET_REPORT コマンド用に予約済みです。
下位バイト
予約済み 00b この値は予約済みであり、必ず 00b に設定されています。レポートタイプ { 入力 (01) |
機能 (11)}ホスト SF ライブラリは、常にこれをホスト SF ライブラリが取得しようとしているレポートタイプに基づいた特定の値に設定します。デバイスはこの値を受け取り、レポート ディスクリプタでサポート される場合のみデータを返します。
レポート ID xxxxb ホスト SF ライブラリは、常にこれをホスト SF ライブラリが取得しようとしている TLC 特有のレポートに基づいた特定の値に設定します。デバイスは、以下の Note の規則に従ってこの値を受け取ります。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.17
-
AN1873
このコマンドが完了しデータがホスト SF ライブラリに返されるまで、ホスト SF ライブラリがデバイスに対して新規コマンド (RESET コマンドを除く ) を発行する事はありません。ホスト SF ライブラリが定義した時間 ( 通常は5 秒以上 ) 内にデバイスが応答しない場合、ホスト SF ライブラリはデバイスをリセットできます。
3.3.2.2.3 GET REPORT のコマンド シーケンス この特有の要求に関するホスト SF ライブラリ側とデバイス側の動作シーケンスを以下に示します。
3.3.2.3 SET REPORTSET REPORT コマンドは、ホスト SF ライブラリがデバイスに対して発行できる要求です。このコマンドを使って 初期化後いつでもデバイスにレポートを設定できます。
3.3.2.3.1 SET REPORT 要求ホスト SF ライブラリはこの要求をコマンドレジスタに発行し、デバイスへ送るレポートをデータレジスタに書き込みます。このデータは以下のようにパッケージ化されます。
• レポート長 (2 バイト )• レポート ID 付きレポート
表 3-18: GET REPORT のコマンド動作ホスト SF ライブラリ側 デバイス (MM7150) 側
手順 1 ホスト SF ライブラリが GET_REPORT をコマンドレジスタに送る。
手順 2 デバイスはデータレジスタにレポートとデータの長さを書き込み、ホスト SF ライブラリにレポートを返す。
手順 3 ホストSFライブラリはデータレジスタの先頭2バイトを読み出してレポート長を識別し、データレジスタから( 指定された長さの ) 残りのデータを読み出す。
図 3-4: GET REPORT コマンド例
表 3-19: SET REPORT 要求のタイプ データ 値 備考
上位バイト
予約済み 0000b この値は予約済みであり、必ず 0000b に設定されています。オペコード 0011b この値は SET_REPORT コマンド用に予約済みです。
下位バイト
予約済み 00b この値は予約済みであり、必ず 00b に設定されています。
DS00001873A_JP - p.18 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.3.2.3.2 SET REPORT 応答デバイスのレジスタにデータを受信した後、デバイスは応答する必要はありません。
3.3.2.3.3 SET REPORT のコマンド シーケンス この要求に関するホスト SF ライブラリ側とデバイス側の動作シーケンスを以下に示します。
3.3.2.4 SET POWERSET POWER コマンドは、ホスト SF ライブラリがデバイスに対して発行する要求です。このコマンドを使って デバイスが移行する電力ステートを設定します。
3.3.2.4.1 SET POWER 要求SET_POWER 要求の場合、下位バイトは特別なフォーマットを使います。下位バイトには電力ステートが含まれます。
定義されている電力ステートの値を以下に示します。 00 = ON
01 = スリープ
1x = 予約済み
レポートタイプ { 出力 (10) | 機能 (11)}
ホスト SF ライブラリは、常にこれをホスト SF ライブラリが設定しようとしているレポートタイプに基づいた値に設定します。デバイスは、特定の TLC のレポート ディスクリプタでレポートタイプ がサポートされている場合、このレポートを受け入れます。
レポート ID xxxxb ホスト SF ライブラリは、常にこれをホスト SF ライブラリが設定しようとしている TLC 特有のレポートに基づいた値に設定します。デバイスは、以下の Note の規則に従ってこの値を受け取ります。
表 3-20: SET REPORT のコマンド動作ホスト SF ライブラリ側 デバイス (MM7150) 側
手順 1 ホスト SF ライブラリが SET_REPORT をコマンドレジスタに送る。
手順 2 ホスト SF ライブラリは、レポートとデータの長さをデバイスのデータレジスタに書き込む。
手順 3 デバイスはコマンドを解釈し必要な動作を実行する。デバイスはホスト SF ライブラリに応答する必要はない。
図 3-5: SET REPORT コマンド例
表 3-19: SET REPORT 要求のタイプ ( 続き )データ 値 備考
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.19
-
AN1873
3.3.2.4.2 SET POWER 応答デバイスはコマンドを受け取っても応答しません。デバイスは直ちにその電力ステートに入ります。
3.3.2.4.3 SET POWER シーケンスこの要求に関するホスト SF ライブラリ側とデバイス側の動作シーケンスを以下に示します。
表 3-21: SET POWER 要求のタイプ データ 値 備考
上位バイト
予約済み 0000b この値は予約済みであり、必ず 0000b に設定されています。オペコード 1000b この値は SET_POWER コマンド用に予約済みです。
下位バイト
予約済み 000000b この値は予約済みであり、必ず 000000b に設定されています。電力状態 {ON (00) |
スリープ (01)}ホスト SF ライブラリは、常にこれをデバイスが移行する電力ステートに設定します。
表 3-22: SET POWER のコマンド動作ホスト SF ライブラリ側 デバイス (MM7150) 側
手順 1 ホスト SF ライブラリが SET_POWER をコマンドレジスタに送る。
手順 2 デバイスはそのコマンドを解釈し、適切な電力ステートに移行する。デバイスはホスト SF ライブラリに応答する必要はない。
図 3-6: デバイスを ON にする SET POWER コマンド
図 3-7: デバイスをスリープにする SET POWER コマンド
DS00001873A_JP - p.20 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.3.3 関数のプロトタイプ :
3.3.3.1 HID/I2C ディスクリプタ ハンドラVOID hid_i2c_descriptor_handler (UINT8 cmd_req);
ここで、
cmd_reg ホスト SF ライブラリからのコマンド要求 Return 成功 / エラーコードを返す
ホスト SF ライブラリの各種コマンド要求を下記に示します。GET_HID_DESC 01GET_RPT_DESC 02
関数の擬似コードを下記に示します。
UINT8 hid_i2c_descriptor_handler (UINT8 cmd_req) {
UINT8 status;Switch (cmd_req) {
Case GET_HID_DESC:Issue the Get HID descriptor requestRead the HID descriptor and store it.status = success/error code break;
Case GET_RPT_DESC:Issue the Get Report descriptor requestRead the Report descriptor and store it.status = success/error code break;
}Return status
}
3.3.3.2 HID/I2C コマンドハンドラUINT8 hid_i2c_cmd_process (UINT8 * buffer, UINT8 cmd_req, UINT8 report_id);
ここで、
*Buffer 入力 / 出力パケット制御用データバッファ ポインタcmd_reg ホスト SF ライブラリからのコマンド要求 report_id ホスト SF ライブラリからのコマンド要求のレポート ID( 該当する場合 )Return 成功 / エラーコードを返す
ホスト SF ライブラリの各種コマンド要求を下記に示します。RESET 01POWER_ON 02SLEEP 03HID_GET_RPT_INPT 04HID_GET_RPT_FEAT 05HID_SET_RPT_OUTP 06HID_SET_RPT_FEAT 07
関数の擬似コードを下記に示します。
UINT8 hid_i2c_cmd_process (UINT8 * buffer, UINT8 cmd_req, UINT8 report_id) {
UINT8 status;Switch (cmd_req) {
Case RESET:Issue the Reset command
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.21
-
AN1873
Read input register to verify if device has been reset status = success/error code break;
Case POWER_ON:Issue the wake signal and wait for 11msIssue the Power On commandstatus = success/error code break;
Case SLEEP:Issue the Sleep commandstatus = success/error code break;
Case HID_GET_RPT_INPT:Issue command for HID get report input for the particular report_idFill in the * buffer with the data packet that is read backstatus = success/error code break;
Case HID_GET_RPT_FEAT:Issue command for HID get report feature for the particular report_id Fill in the buffer with the Feature report data that is read backstatus = success/error code break;
Case HID_SET_RPT_OUTP:Issue command for HID set report output for the particular report_idSet the output report data into the buffer for transferstatus = success/error code break;
Case HID_SET_RPT_FEAT:Issue command for HID set report Feature for the particular report_idSet the feature report data in the buffer that needs to be sendstatus = success/error code break;
default:status = error codebreak;
} return status;
}
3.3.3.3 エラーコードHID/I2C パーサ層のステータスとして、以下のエラーコードが返されます。
表 3-23: HID/I2C パーサ層のエラーコードエラーコード 説明
00 成功01 HID ディスクリプタの読み出し失敗 : デバイスから応答がありません。HID ディスクリプタの
レジスタアドレスが間違っています。
02 HID ディスクリプタの読み出し失敗 : VID、PID がゼロです。03 レポート ディスクリプタの読み出し失敗 : デバイスから応答がありません。レポート ディス
クリプタのレジスタアドレスが間違っています。
04 レポート ディスクリプタの読み出し失敗 : 受信したレポート ディスクリプタが不完全でした。 HID ディスクリプタで与えられたレポート ディスクリプタ長にエラーがあります。
05 レポート ディスクリプタの読み出し失敗 : レポート ディスクリプタが無効です。コレクションの 終わりが見つかりません。
06 GET FEATURE REPORT 失敗 : レポート ID フィールドがゼロです。07 SET FEATURE REPORT 失敗 08 RESET が失敗しました。入力レジスタの値が 00 00 ではありません。
DS00001873A_JP - p.22 Advance Information 2015 Microchip Technology Inc.
-
AN1873
3.4 I2C/SMBus ドライバ層MM7150 モーション モジュールと直接相互作用する物理層です。この物理層は、MM7150 ホスト SoC のハードウェア サポートに基づいた I2C スタックまたは SMBus スタックです。この層の機能は主に 3 つの部分に分けられます。• マスタ読み出し• マスタ書き込み• アラートラインの操作
読み書きのサポートの他に、この層はアラートラインの処理をサポートする必要があります。
3.4.1 アラートラインの処理アラートピンとは、HID/I2C アラートピン仕様に従って設定されたホスト SF ライブラリの GPIO ピンです。GPIO 割り込みも有効にしておく必要があります。アラートラインを Low に駆動すると、ホスト SF ライブラリは最大入力レポート長のバイトの I2C 読み出しを発行します。
3.4.1.1 データ読み出しシーケンス以下の動作シーケンスで入力レポートの読み出しプロセスを説明します。
表 3-24: 入力レポートの動作シーケンス ホスト SF ライブラリ側 デバイス (MM7150) 側
手順 1 デバイスが割り込みをアサートし、ホスト SFライブラリへ送る入力レポートを持っている事を示す。
手順 2 ホストSFライブラリは割り込みを受け取ると I2Cプロトコルで READ 要求を発行する。
手順 3 デバイスは入力レポートの長さ (2 バイト ) と入力レポート全体を返す。
手順 4 送るべき入力レポートがなくなるとデバイスは割り込みラインをネゲートする。
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.23
-
AN1873
3.5 ベンダー コレクションホスト SF ライブラリは VREG によるセンサ コレクションをサポートします。ベンダー コレクションをサポートする ために、ホスト SF ライブラリはホスト SF ライブラリ内での HID/I2C 層への直接アクセスを可能にしているため、HID の GET REPORT および SET REPORT コマンドを発行できます。
3.5.1 ユーザ APIベンダー コレクションに基づいてアプリケーションを実装するために 2 つの API が利用できます。• HOST_SF_Lib_HID_Get_Feature• HOST_SF_Lib_HID_Set_Feature
3.5.1.1 関数のプロトタイプ
UINT8 HOST_SF_LIB_HID_Get_Report (UINT8 type, VOID* ReportBuffer, UINT8 size )
仮想レジスタの内容を読み出す関数
type 機能レポートまたは入力レポートを示す ( タイプ = 3 – 機能レポート、1 - 入力レポート )ReportBuffer * 機能レポートを読み込むポインタsize レポートバッファのサイズをバイトで指定する return 成功した場合は 0 を返し、それ以外はエラーコードを返す
UINT8 HOST_SF_LIB_HID_Set_Feature (UINT8 type, VOID* ReportBuffer, UINT8 size)
仮想レジスタへの書き込み要求をキューに登録する関数
type 機能レポートまたは出力レポートを示す ( タイプ = 3 – 機能レポート、2 - 出力レポート )ReportBuffer* デバイスに送る必要があるポインタデータsize レポートバッファのサイズをバイトで指定する return 成功した場合は 0 を返し、それ以外はエラーコードを返す
3.5.1.2 HOST_SF_LIB_HID_Get_Report の機能全てのユーザ アプリケーションは GET_REPORT 要求を発行できます。このコマンドは、ホスト SF ライブラリの HID/I2C 層に直接作用し必要なレポートを読み出す事ができます。ユーザ アプリケーションは処理が完了するまで 待機する必要があります ( ブロッキング コール )。
3.5.1.3 HOST_SF_LIB_HID_Set_Report の機能全てのユーザ アプリケーションは SET_REPORT 要求を発行できます。このコマンドは、ホスト SF ライブラリの HID/I2C 層に直接作用し必要なレポートを送る事ができます。ユーザ アプリケーションは、処理が完了するまで待機 する必要があります ( ブロッキング コール )。
3.5.1.4 エラーコードAPI が返すエラーコードは HID I2C パーサ層が返すエラーコードと同じです ( セクション 3.3「HID/I2C パーサ」参照 )。
Note: 呼び出し元は、ReportBuffer パラメータの先頭バイトをゼロ以外のレポート ID に設定する必要があります。
Note: ベンダー コレクションを使うアプリケーションは全て、これらの API を使って作成する必要があります。
DS00001873A_JP - p.24 Advance Information 2015 Microchip Technology Inc.
-
AN1873
4.0 加速度センサのフローチャート例
PO R
H ost SF L ibIn itia lization
Acc En(in SH C)
M otion M oduleW ake
C hangeSensor
C onfigure
Acc C onfigura tion: C hange sensitiv ity or report in terva l
R ead Acc D ata from AC C XD , AC C YD ,
AC C ZD
R ead D ata aga in
D isab le Acc
S leep
ID LE
N o
Yes
Yes
N o
Yes
N o
N o
Yes
2015 Microchip Technology Inc. Advance Information DS00001873A_JP - p.25
-
AN1873
補遺 A: 加速度センサのサンプルコードホスト SF ライブラリを使って加速度センサを有効にして使用するアプリケーションのサンプルコード/*App init task: the Applications initialization function.*/void App init task (void) {
return code = VREG_write (SHC, 0xYY)//Enable accelerometer return code = VREG_write (Accel_Sensitivity,02)//set sensitivity return code = VREG_write (Accel_data_rate, 10)//set data rate}//Note:VREG writes fail if a read-only register offset is given or an unsupported offset is given
/*App main task: the Application’s main function.*/void App main task (void) {
while (1) {return = VREG_read (status register, status) //Check if acc enable has been successfulif (status == operation completed) {
VREG_read (accel data)/*Do the required processing */VREG_write (Accel_data_rate, 20) //change report interval based on some statereturn = VREG_read(status register, status)if (status == operation completed){
/*Do the desired operations*/}else {
if (status!= error)/*Do the task with current report interval, wait for the change report interval in next iteration*/else/*If error is detected and Change report interval failed, then do error handling*/
}}else {
if (status == error)//Issue Accel enable again or exit with accel enable failed
}}
}
DS00001873A_JP - p.26 Advance Information 2015 Microchip Technology Inc.
-
2015 M
icrochip Technology Inc.A
dvance Information
DS
00001873A_JP
- p.27
AN
1873
補
Vア
(セ
BIT4
BIT3
BIT2
BIT1
BIT0 POR
cc EN MM_Reset
MM_Start
MM_Sleep
MM_Wake
0x01
ncl Ori Cmp Gyro Acc 0x00CSE4
ACSEN3
ACSEN2
ACSEN1
ACSEN0
0x00
YSE4
GYSEN3
GYSEN2
GYSEN1
GYSEN0
0x00
MSE4
CMSEN3
CMSEN2
CMSEN1
CMSEN0
0x00
RSE4
ORSEN3
ORSEN2
ORSEN1
ORSEN0
0x00
NSEN INSEN3
INSEN2
INSEN1
INSEN0
0x00
ES RES RES RES RES 0x00ES RES RES RES RES 0x00ACSN4
RACSEN3
RACSEN2
RACSEN1
RACSEN0
0x00
MGSN4
RMGSEN3
RMGSEN2
RMGSEN1
RMGSEN0
0x00
GYSN4
RGYSEN3
RGYSEN2
RGYSEN1
RGYSEN0
0x00
CDX4
ACDXR3
ACDXR2
ACDXR1
ACDXR0
0x00
YDR GYDR3
GYDR2
GYDR1
GYDR0
0x00
MDR CMDR3
CMDR2
CMDR1
CMDR0
0x00
遺 B: 仮想レジスタのマップ REGドレスオフット )
レジスタのアクセスタイプ
レジスタ名 略称BIT15
BIT14
BIT13
BIT12
BIT11
BIT10
BIT9
BIT8
BIT7
BIT6
BIT5
00 R/W Sensor Hub Configure
SHC RES RES Raw Gyro EN
Raw Mag EN
Raw Acc EN
RES RES Incl EN Ori EN Cmp EN
Gyro EN
A
01 R Sensor List SL RES RES RES RES RES RES RES RES RES RES RES I
02 R/W Acc Sensitivity
ACSEN ACSEN15
ACSEN14
ACSEN13
ACSEN12
ACSEN11
ACSEN10
ACSEN9
ACSEN8
ACSEN7
ACSEN6
ACSEN5
AN
03 R/W Gyro Sensitivity
GYSEN GYSEN15
GYSEN14
GYSEN13
GYSEN12
GYSEN11
GYSEN10
GYSEN9
GYSEN8
GYSEN7
GYSEN6
GYSEN5
GN
04 R/W Cmp Sensitivity
CMSEN CMSEN15
CMSEN14
CMSEN13
CMSEN12
CMSEN11
CMSEN10
CMSEN9
CMSEN8
CMSEN7
CMSEN6
CMSEN5
CN
05 R/W Ori Sensitivity
ORSEN ORSEN15
ORSEN14
ORSEN13
ORSEN12
ORSEN11
ORSEN10
ORSEN9
ORSEN8
ORSEN7
ORSEN6
ORSEN5
ON
06 R/W Incl Sensitivity
INSEN INSEN15
INSEN14
INSEN13
INSEN12
INSEN11
INSEN10
INSEN9
INSEN8
INSEN7
INSEN6
INSEN5
I4
07 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES R
08 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES R
09 R/W Raw Acc Sensitivity
RACSEN RACSEN15
RACSEN14
RACSEN13
RACSEN12
RACSEN11
RACSEN10
RACSEN9
RACSEN8
RACSEN7
RACSEN6
RACSEN5
RE
0A R/W Raw Mag Sensitivity
RMGSEN RMGSEN15
RMGSEN14
RMGSEN13
RMGSEN12
RMGSEN11
RMGSEN10
RMGSEN9
RMGSEN8
RMGSEN7
RMGSEN6
RMGSEN5
RE
0B R/W Raw Gyro Sensitivity
RGYSEN RGYSEN15
RGYSEN14
RGYSEN13
RGYSEN12
RGYSEN11
RGYSEN10
RGYSEN9
RGYSEN8
RGYSEN7
RGYSEN6
RGYSEN5
RE
0C R/W Acc Data Rate
ACDXR ACDXR15
ACDXR14
ACDXR13
ACDXR12
ACDXR11
ACDXR10
ACDXR9
ACDXR8
ACDXR7
ACDXR6
ACDXR5
AR
0D R/W Gyro Data Rate
GYDR GYDR15
GYDR14
GYDR13
GYDR12
GYDR11
GYDR10
GYDR9
GYDR8
GYDR7
GYDR6
GYDR5
G4
0E R/W Cmp Data Rate
CMDR CMDR15
CMDR14
CMDR13
CMDR12
CMDR11
CMDR10
CMDR9
CMDR8
CMDR7
CMDR6
CMDR5
C4
-
AN
1873
DS
00001873A_JP
- p. 28A
dvance Information
2015 M
icrochip Technology Inc.
R ORDR4
ORDR3
ORDR2
ORDR1
ORDR0
0x00
R5 INDR4 INDR3 INDR2 INDR1 INDR0 0x00
RES RES RES RES RES 0x00RES RES RES RES RES 0x00
D RACDR4
RACDR3
RACDR2
RACDR1
RACDR0
0x00
D RMGDR4
RMGDR3
RMGDR2
RMGDR1
RMGDR0
0x00
D RGYDR4
RGYDR3
RGYDR2
RGYDR1
RGYDR0
0x00
D5 ACXD4 ACXD3 ACXD2 ACXD1 ACXD0 0x00
D5 ACYD4 ACYD3 ACYD2 ACYD1 ACYD0 0x00
D5 ACZD4 ACZD3 ACZD2 ACZD1 ACZD0 0x00
D5 ACXD4 ACXD3 ACXD2 ACXD1 ACXD0 0x00
D5 ACYD4 ACYD3 ACYD2 ACYD1 ACYD0 0x00
D5 ACZD4 ACZD3 ACZD2 ACZD1 ACZD0 0x00
D GYXD4
GYXD3
GYXD2
GYXD1
GYXD0
0x00
D GYYD4
GYYD3
GYYD2
GYYD1
GYYD0
0x00
D5 GYZD4 GYZD3 GYZD2 GYZD1 GYZD0 0x00
T BIT4
BIT3
BIT2
BIT1
BIT0 POR
0F R/W Ori Data Rate
ORDR ORDR15
ORDR14
ORDR13
ORDR12
ORDR11
ORDR10
ORDR9
ORDR8
ORDR7
ORDR6
ORD5
10 R/W Incl Data Rate
INDR INDR15
INDR14+F32
INDR13
INDR12
INDR11
INDR10
INDR9 INDR8 INDR7 INDR6 IND
11 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
12 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
13 R/W Raw Acc Data Rate
RACDR RACDR15
RACDR14
RACDR13
RACDR12
RACDR11
RACDR10
RACDR9
RACDR8
RACDR7
RACDR6
RACR5
14 R/W Raw Mag Data Rate
RMGDR RMGDR15
RMGDR14
RMGDR13
RMGDR12
RMGDR11
RMGDR10
RMGDR9
RMGDR8
RMGDR7
RMGDR6
RMGR5
15 R/W Raw Gyro Data Rate
RGYDR RGYDR15
RGYDR14
RGYDR13
RGYDR12
RGYDR11
RGYDR10
RGYDR9
RGYDR8
RGYDR7
RGYDR6
RGYR5
16 R/W AccX Data ACXD ACXD15ACXD14
ACXD13
ACXD12
ACXD11
ACXD10
ACXD9 ACXD8 ACXD7 ACXD6 ACX
17 R/W AccY Data ACYD ACYD15ACYD14
ACYD13
ACYD12
ACYD11
ACYD10
ACYD9 ACYD8 ACYD7 ACYD6 ACY
18 R/W AccZ Data ACZD ACZD15ACZD14
ACZD13
ACZD12
ACZD11
ACZD10
ACZD9 ACZD8 ACZD7 ACZD6 ACZ
19 R/W Raw AccX Data
RACXD ACXD15ACXD14
ACXD13
ACXD12
ACXD11
ACXD10
ACXD9 ACXD8 ACXD7 ACXD6 ACX
1A R/W Raw AccY Data
RACYD ACYD15ACYD14
ACYD13
ACYD12
ACYD11
ACYD10
ACYD9 ACYD8 ACYD7 ACYD6 ACY
1B R/W Raw AccZ Data
RACZD ACZD15ACZD14
ACZD13
ACZD12
ACZD11
ACZD10
ACZD9 ACZD8 ACZD7 ACZD6 ACZ
1C R/W GyroX Data GYXD GYXD15
GYXD14
GYXD13
GYXD12
GYXD11
GYXD10
GYXD9
GYXD8
GYXD7
GYXD6
GYX5
1D R/W GyroY Data GYYD GYYD15
GYYD14
GYYD13
GYYD12
GYYD11
GYYD10
GYYD9
GYYD8
GYYD7
GYYD6
GYY5
1E R/W GyroZ Data GYZD GYZD15GYZD14
GYZD13
GYZD12
GYZD11
GYZD10
GYZD9 GYZD8 GYZD7 GYZD6 GYZ
VREGアドレス
( オフセット )
レジスタのアクセスタイプ
レジスタ名 略称BIT15
BIT14
BIT13
BIT12
BIT11
BIT10
BIT9
BIT8
BIT7
BIT6
BI5
-
2015 M
icrochip Technology Inc.A
dvance Information
DS
00001873A_JP
- p.29
AN
1873
GYX4
RGYXD3
RGYXD2
RGYXD1
RGYXD0
0x00
GYY4
RGYYD3
RGYYD2
RGYYD1
RGYYD0
0x00
GYZ4
RGYZD3
RGYZD2
RGYZD1
RGYZD0
0x00
MD4 CMD3 CMD2 CMD1 CMD0 0x00
GFX4
MGFXD3
MGFXD2
MGFXD1
MGFXD0
0x00
GFY4
MGFYD3
MGFYD2
MGFYD1
MGFYD0
0x00
GFZ4
MGFZD3
MGFZD2
MGFZD1
MGFZD0
0x00
MGX4
RMGXD3
RMGXD2
RMGXD1
RMGXD0
0x00
MGY4
RMGYD3
RMGYD2
RMGYD1
RMGYD0
0x00
MGZ4
RMGZD3
RMGZD2
RMGZD1
RMGZD0
0x00
RXD ORXD3
ORXD2
ORXD1
ORXD0
0x00
RYD ORYD3
ORYD2
ORYD1
ORYD0
0x00
RZD ORZD3
ORZD2
ORZD1
ORZD0
0x00
RWD ORWD3
ORWD2
ORWD1
ORWD0
0x00
NXD4 INXD3 INXD2 INXD1 INXD0 0x00
NYD4 INYD3 INYD2 INYD1 INYD0 0x00
Vア
(セ
BIT4
BIT3
BIT2
BIT1
BIT0 POR
1F R/W Raw GyroX Data
RGYXD RGYXD15
RGYXD14
RGYXD13
RGYXD12
RGYXD11
RGYXD10
RGYXD9
RGYXD8
RGYXD7
RGYXD6
RGYXD5
RD
20 R/W Raw GyroY Data
RGYYD RGYYD15
RGYYD14
RGYYD13
RGYYD12
RGYYD11
RGYYD10
RGYYD9
RGYYD8
RGYYD7
RGYYD6
RGYYD5
RD
21 R/W Raw GyroZ Data
RGYZD RGYZD15
RGYZD14
RGYZD13
RGYZD12
RGYZD11
RGYZD10
RGYZD9
RGYZD8
RGYZD7
RGYZD6
RGYZD5
RD
22 R/W Cmp Data CMD CMD15
CMD14
CMD13
CMD12
CMD11
CMD10
CMD9 CMD8 CMD7 CMD6 CMD5 C
23 R/W Mag FluxX Data
MGFXD MGFXD15
MGFXD14
MGFXD13
MGFXD12
MGFXD11
MGFXD10
MGFXD9
MGFXD8
MGFXD7
MGFXD6
MGFXD5
MD
24 R/W Mag FluxY Data
MGFYD MGFYD15
MGFYD14
MGFYD13
MGFYD12
MGFYD11
MGFYD10
MGFYD9
MGFYD8
MGFYD7
MGFYD6
MGFYD5
MD
25 R/W ag FluxZ Data
MGFZD MGFZD15
MGFZD14
MGFZD13
MGFZD12
MGFZD11
MGFZD10
MGFZD9
MGFZD8
MGFZD7
MGFZD6
MGFZD5
MD
26 R/W Raw MagX Data
RMGXD RMGXD15
RMGXD14
RMGXD13
RMGXD12
RMGXD11
RMGXD10
RMGXD9
RMGXD8
RMGXD7
RMGXD6
RMGXD5
RD
27 R/W Raw MagY Data
RMGYD RMGYD15
RMGYD14
RMGYD13
RMGYD12
RMGYD11
RMGYD10
RMGYD9
RMGYD8
RMGYD7
RMGYD6
RMGYD5
RD
28 R/W Raw MagZ Data
RMGZD RMGZD15
RMGZD14
RMGZD13
RMGZD12
RMGZD11
RMGZD10
RMGZD9
RMGZD8
RMGZD7
RMGZD6
RMGZD5
RD
29 R/W OriX Data ORXD ORXD15
ORXD14
ORXD13
ORXD12
ORXD11
ORXD10
ORXD9
ORXD8
ORXD7
ORXD6
ORXD5
O4
2A R/W OriY Data ORYD ORYD15
ORYD14
ORYD13
ORYD12
ORYD11
ORYD10
ORYD9
ORYD8
ORYD7
ORYD6
ORYD5
O4
2B R/W OriZ Data ORZD ORZD15
ORZD14
ORZD13
ORZD12
ORZD11
ORZD10
ORZD9
ORZD8
ORZD7
ORZD6
ORZD5
O4
2C R/W OriW Data ORWD ORWD15
ORWD14
ORWD13
ORWD12
ORWD11
ORWD10
ORWD9
ORWD8
ORWD7
ORWD6
ORWD5
O4
2D R/W InclX Data INXD INXD15INXD14
INXD13
INXD12
INXD11
INXD10
INXD9 INXD8 INXD7 INXD6 INXD5 I
2E R/W InclY Data INYD INYD15INYD14
INYD13
INYD12
INYD11
INYD10
INYD9 INYD8 INYD7 INYD6 INYD5 I
REGドレスオフット )
レジスタのアクセスタイプ
レジスタ名 略称BIT15
BIT14
BIT13
BIT12
BIT11
BIT10
BIT9
BIT8
BIT7
BIT6
BIT5
-
AN
1873
DS
00001873A_JP
- p. 30A
dvance Information
2015 M
icrochip Technology Inc.
D5 INZD4 INZD3 INZD2 INZD1 INZD0 0x00
RES RES RES RES RES 0x00RES RES RES RES RES 0x00RES RES RES RES RES 0x00RES RES RES RES RES 0x00RES RES RES RES RES 0x00RES RES RES RES RES 0x00
5 PID4 PID3 PID2 PID1 PID0 0x005 VID4 VID3 VID2 VID1 VID0 0x005 DID4 DID3 DID2 DID1 DID0 0x00G1 expG0 expA3 expA2 expA1 expA0 0x00
RES expIn3 expIn2 expIn1 expIn0 0x00
RG expRG0
expRM3
expRM2
expRM1
expRM0
0x00
CS expCSG0
expCSA3
expCSA2
expCSA1
expCSA0
0x00
RES expCSIn3
expCSIn2
expCSIn1
expCSIn0
0x00
CS expCSRG0
expCSRM3
expCSRM2
expCSRM1
expCSRM0
0x00
us1
Cmp status0
GyroStatus1
GyroStatus0
AccStatus1
AccStatus0
0x00
1
Acc CS/data0
Raw gyro Status 1
Raw gyro Status 0
Raw Mag Status 1
Raw Mag Status 0
0x00
T BIT4
BIT3
BIT2
BIT1
BIT0 POR
2F R/W InclZ Data INZD INZD15INZD14
INZD13
INZD12
INZD11
INZD10
INZD9 INZD8 INZD7 INZD6 INZ
30 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
31 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
32 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
33 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
34 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
35 R/W Reserved - RES RES RES RES RES RES RES RES RES RES RES
36 R Product ID PID PID15 PID14 PID13 PID12 PID11 PID10 PID9 PID8 PID7 PID6 PID
37 R Vendor ID VID VID15 VID14 VID13 VID12 VID11 VID10 VID9 VID8 VID7 VID6 VID
38 R Device ID DID DID15 DID14 DID13 DID12 DID11 DID10 DID9 DID8 DID7 DID6 DID
39 R Exponent1 exp1 expO expO expO expO expC3 expC2 expC1 expC0 expG3 expG2 exp
3A R Exponent2 exp2 expRA3
expRA2
expRA1
expRA0
RES RES RES RES RES RES RES
3B R Exponent3 exp3 Res Res Res Res Res Res Res Res expRG3
expRG2
exp1
3C R ExponentCS1
expCSs1 expCSsO
expCSO
expCSO
expCSO
expCSC3
expCSC2
expCSC1
expCSC0
expCSG3
expCSG2
expG1
3D R ExponentCS2
expCS2 expCSRA3
expCSRA2
expCSRA1
expCSRA0
RES RES RES RES RES RES RES
3E R ExponentCS3
expCS3 Res Res Res Res Res Res Res Res expCSRG3
expCSRG2
expRG1
3F R/W Status 1 stat1 Raw Acc status 1
Raw Acc status 0
RES RES RES RES Inc status1
Inc status0
Ori status1
Ori status0
Cmpstat
40 R/W Status 2 stat2 Ori CS/data2
Ori CS/data1
Ori CS/data0
Cmp CS/data2
Cmp CS/data1
Cmp CS/data0
Gyro CS/data2
Gyro CS/data1
Gyro CS/data0
Acc CS/data2
AccCS/data
VREGアドレス
( オフセット )
レジスタのアクセスタイプ
レジスタ名 略称BIT15
BIT14
BIT13
BIT12
BIT11
BIT10
BIT9
BIT8
BIT7
BIT6
BI5
-
2015 M
icrochip Technology Inc.A
dvance Information
DS
00001873A_JP
- p.31
AN
1873
ES RES Incl CS/data2
Incl CS/data1
Incl CS/data0
0x00
M tart tatus1
MMStart status0
Raw Mag CS/data2
Raw Mag CS/data1
Raw Mag CS/data0
0x00
Vア
(セ
BIT4
BIT3
BIT2
BIT1
BIT0 POR
41 R/W Status 3 stat3 RES Raw Mag CS/data2
Raw Mag CS/data1
Raw Mag CS/data0
Raw Acc CS/data2
Raw Acc CS/data1
Raw Acc CS/data0
RES RES RES RES R
42 R/W Status 4 stat4 RES RES RES RES RES RES MM sleep /wake status2
MM sleep /wake status1
MM sleep /wake status0
MM Reset status1
MM Reset status0
MSs
REGドレスオフット )
レジスタのアクセスタイプ
レジスタ名 略称BIT15
BIT14
BIT13
BIT12
BIT11
BIT10
BIT9
BIT8
BIT7
BIT6
BIT5
-
AN1873
補遺 C: アプリケーション ノート改訂履歴
表 C-1: 改訂履歴
リビジョンレベル / 日付 セクション / 図 / 項目 改訂内容
DS00001873A_JP (2014 年 12 月 22 日 ) 本書は初版です。
DS00001873A_JP - p.32 Advance Information 2015 Microchip Technology Inc.
-
Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください。• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。
• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流通している同種製品の中でも最も高度であると考えています。
• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます。
• Microchip 社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。
• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。
コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作 物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。
本書に記載されているデバイス アプリケーション等に関する 情報は、ユーザの便宜のためにのみ提供されているものであ
り、更新によって無効とされる事があります。お客様のアプ
リケーションが仕様を満たす事を保証する責任は、お客様に
あります。Microchip 社は、明示的、暗黙的、書面、口頭、法定のいずれであるかを問わず、本書に記載されている情報に
関して、状態、品質、性能、商品性、特定目的への適合性を
はじめとする、いかなる類の表明も保証も行いません。
Microchip 社は、本書の情報およびその使用に起因する一切の責任を否認します。生命維持装置あるいは生命安全用途に
Microchip 社の製品を使用する事は全て購入者のリスクとし、また購入者はこれによって発生したあらゆる損害、クレーム、
訴訟、費用に関して、Microchip 社は擁護され、免責され、損害を受けない事に同意するものとします。暗黙的あるいは明
示的を問わず、Microchip 社が知的財産権を保有しているライセンスは一切譲渡されません。
2015 Microchip Technology Inc. Advance Info
QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV
== ISO/TS 16949 ==
商標
Microchip 社の名称とロゴ、Microchipロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、米国およびその他の国におけるMicrochip Technology Incorporated の登録商標です。
FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、 MTP、SEEVAL、Embedded Control Solutions Company は、 米国におけるMicrochip Technology Incorporatedの登録商標 です。
Silicon Storage Technology は、他の国における Microchip Technology Inc. の登録商標です。
Analog-for-the-Digital Age、Application Maestro、BodyCom、 chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、 Mindi、MiWi、MPASM、MPF、MPLAB Certified ロゴ、MPLIB、 MPLINK、mTouch、Omniscient Code Generation、PICC、 PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、 rfLAB、Select Mode、SQl、Serial Quad I/O、Total Endurance、 TSHARC、UniWinDriver、WiperLock、ZENA および Z-Scaleは、米国およびその他の Microchip Technology Incorporated の商標です。
SQTP は、米国における Microchip Technology Incorporated のサービスマークです。
GestIC および ULPP は、Microchip Technology Inc. の子会社 である Microchip Technology Germany II GmbH & Co. & KG 社 の他の国における登録商標です。
その他本書に記載されている商標は各社に帰属します。
© 2015, Microchip Technology Incorporated, All Rights Reserved.
ISBN: 978-1-63277-300-5
rmation DS00001873A_JP - p.33
Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。
-
DS00001873A_JP - p.34 Advance Information 2015 Microchip Technology Inc.
北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.comアトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455オースティン、TXTel: 512-257-3370 ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075クリーブランドIndependence, OHTel: 216-447-0464Fax: 216-447-0643ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924デトロイトNovi, MI Tel: 248-848-4000ヒューストン、TXTel: 281-894-5983インディアナポリスNoblesville, INTel: 317-773-8323Fax: 317-773-5453ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608ニューヨーク、NY Tel: 631-435-6000サンノゼ、CATel: 408-735-9110カナダ - トロントTel: 905-673-0699 Fax: 905-673-6509
アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2943-5100Fax: 852-2401-3431オーストラリア - シドニーTel: 61-2-9868-6733Fax: 61-2-9868-6755中国 - 北京Tel: 86-10-8569-7000Fax: 86-10-8528-2104中国 - 成都Tel: 86-28-8665-5511Fax: 86-28-8665-7889中国 - 重慶Tel: 86-23-8980-9588Fax: 86-23-8980-9500中国 - 杭州Tel: 86-571-8792-8115Fax: 86-571-8792-8116中国 - 香港 SARTel: 852-2943-5100 Fax: 852-2401-3431中国 - 南京Tel: 86-25-8473-2460Fax: 86-25-8473-2470中国 - 青島Tel: 86-532-8502-7355Fax: 86-532-8502-7205中国 - 上海Tel: 86-21-5407-5533Fax: 86-21-5407-5066中国 - 瀋陽Tel: 86-24-2334-2829Fax: 86-24-2334-2393中国 - 深圳Tel: 86-755-8864-2200 Fax: 86-755-8203-1760中国 - 武漢Tel: 86-27-5980-5300Fax: 86-27-5980-5118中国 - 西安Tel: 86-29-8833-7252Fax: 86-29-8833-7256中国 - 厦門Tel: 86-592-2388138 Fax: 86-592-2388130中国 - 珠海Tel: 86-756-3210040 Fax: 86-756-3210049
アジア / 太平洋インド - バンガロールTel: 91-80-3090-4444 Fax: 91-80-3090-4123インド - ニューデリーTel: 91-11-4160-8631Fax: 91-11-4160-8632インド - プネTel: 91-20-3019-1500日本 - 大阪Tel: 81-6-6152-7160Fax: 81-6-6152-9310日本 - 東京Tel: 81-3-6880-3770 Fax: 81-3-6880-3771韓国 - 大邱Tel: 82-53-744-4301Fax: 82-53-744-4302韓国 - ソウルTel: 82-2-554-7200Fax: 82-2-558-5932 または82-2-558-5934マレーシア - クアラルンプールTel: 60-3-6201-9857Fax: 60-3-6201-9859マレーシア - ペナンTel: 60-4-227-8870Fax: 60-4-227-4068フィリピン - マニラTel: 63-2-634-9065Fax: 63-2-634-9069シンガポールTel: 65-6334-8870Fax: 65-6334-8850台湾 - 新竹Tel: 886-3-5778-366Fax: 886-3-5770-955台湾 - 高雄Tel: 886-7-213-7830台湾 - 台北Tel: 886-2-2508-8600 Fax: 886-2-2508-0102タイ - バンコクTel: 66-2-694-1351Fax: 66-2-694-1350
ヨーロッパオーストリア - ヴェルスTel: 43-7242-2244-39Fax: 43-7242-2244-393デンマーク - コペンハーゲンTel: 45-4450-2828 Fax: 45-4485-2829フランス - パリTel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79ドイツ - デュッセルドルフTel: 49-2129-3766400 ドイツ - ミュンヘンTel: 49-89-627-144-0 Fax: 49-89-627-144-44ドイツ - プフォルツハイムTel: 49-7231-424750 イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781イタリア - ヴェニスTel: 39-049-7625286 オランダ - ドリューネンTel: 31-416-690399 Fax: 31-416-690340ポーランド - ワルシャワTel: 48-22-3325737 スペイン - マドリッドTel: 34-91-708-08-90Fax: 34-91-708-08-91スウェーデン - ストックホルムTel: 46-8-5090-4654イギリス - ウォーキンガムTel: 44-118-921-5800Fax: 44-118-921-5820
各国の営業所とサービス
03/25/14
http://www.microchip.com/supporthttp://www.microchip.com
MM7150モーション モジュール向けホストAPI設計各国の営業所とサービス