JAJSIB9A December 2019 – June 2020 HDC2022
PRODUCTION DATA
HDC2022 のレジスタの内容は、ポインタ・レジスタを使ったポインタ・メカニズムによってアクセスおよび変更できます。ユーザーは、ポインタ・レジスタにレジスタ・アドレスを書き込むことによって、デバイスの特定のレジスタにアクセスできます。ポインタ・レジスタの値は、スレーブ・アドレス・バイトの R/W ビットが LOW になった後、最初に転送されるバイトです (表 7-2 参照)。デバイスに対する書き込み動作のたびに、ポインタ・レジスタの値を指定する必要があります。
デバイスから読み取りを行う場合には、書き込み動作で最後にポインタ・レジスタに保存された値によって、どのレジスタを読み取るのかが決まります。読み取り動作のためにレジスタ・ポインタを変更するには、新しい値をポインタ・レジスタに書き込む必要があります。ユーザーは、R/W ビットが LOW のアドレス・バイトを発行し、その後にポインタ・レジスタ・バイトを送信して、ポインタ・レジスタの新しい値を書き込むことができます (表 7-4 参照)。追加のデータは必要ありません。その後、マスタは START 条件を生成し、R/W ビットが HIGH のスレーブ・アドレス・バイトを送信して、読み取りコマンドを開始できます。
このデバイスは、マルチバイト書き込みおよびマルチバイト読み取り動作もサポートしており、マスタが STOP (マルチバイト書き込みの場合) または NACK (マルチバイト読み取りの場合) を発行するまで、レジスタ・ポインタが自動的にインクリメントされます。
転送されるデータはすべて MSB が最初に送信されることに注意してください。デバイス ID、メーカー ID、シリアル ID などの読み取り専用レジスタへの書き込み動作は、各データ・バイトの後に NACK を返します。未使用のアドレスに対する読み取りまたは書き込み動作は、ポインタ・レジスタ・バイトの後に NACK を返します。また、誤ったデバイス・スレーブ・アドレスによる読み取りまたは書き込み動作では、デバイス・スレーブ・アドレスの後に NACK を返します。
マスタ | START | デバイス・スレーブ・アドレス (W) 100000X0 | レジスタ・ポインタ | DATA | STOP | |||
スレーブ | ACK | ACK | ACK |
マスタ | START | デバイス・スレーブ・アドレス (W) 100000X0 | レジスタ・ポインタ | DATA | DATA | ……… | STOP | ||||
スレーブ | ACK | ACK | ACK | ACK |
マスタ | START | デバイス・スレーブ・アドレス (W) 100000X0 | レジスタ・ポインタ | START | デバイス・スレーブ・アドレス (R) 100000X1 | NACK | STOP | ||||
スレーブ | ACK | ACK | ACK | DATA |
マスタ | START | デバイス・スレーブ・アドレス (W) 100000X0 | レジスタ・ポインタ | START | デバイス・スレーブ・アドレス (R) 100000X1 | ACK | ACK | …… | NACK | STOP | |||||
スレーブ | ACK | ACK | ACK | DATA | DATA |