STMicro製角速度センサのL3G4200Dのアドレスマップです
両方共スイッチサイエンスで買うことができます
範囲が広いので様々な用途に使えそうなセンサ
アドレスマップ メモっときます
typedef enum {
/* Reserved (do
not modify) */
LIS331HH_CTRL_REG1 = 0x20,
LIS331HH_CTRL_REG2,
LIS331HH_CTRL_REG3,
LIS331HH_CTRL_REG4,
LIS331HH_CTRL_REG5,
LIS331HH_HP_FILTER_RESET,
LIS331HH_REFERENCE,
LIS331HH_STATUS_REG,
LIS331HH_OUT_X_L,
LIS331HH_OUT_X_H,
LIS331HH_OUT_Y_L,
LIS331HH_OUT_Y_H,
LIS331HH_OUT_Z_L,
LIS331HH_OUT_Z_H,
/* 0x2E - 0x2F
Reserved (do not modify) */
LIS331HH_INT1_CFG = 0x30,
LIS331HH_INT1_SOURCE,
LIS331HH_INT1_THS,
LIS331HH_INT1_DURATION,
LIS331HH_INT2_CFG,
LIS331HH_INT2_SOURCE,
LIS331HH_INT2_THS,
LIS331HH_INT2_DURATION
/* 0x38 - 0x3F
Reserved(do not modify) */
}
LIS331HH_addrMap;
typedef enum {
/* Reserved */
L3G4200D_WHO_AM_I = 0x0F,
/* Reserved */
L3G4200D_CTRL_REG1 = 0x20,
L3G4200D_CTRL_REG2,
L3G4200D_CTRL_REG3,
L3G4200D_CTRL_REG4,
L3G4200D_CTRL_REG5,
L3G4200D_REFERENCE,
L3G4200D_OUT_TEMP,
L3G4200D_STATUS_REG,
L3G4200D_OUT_X_L,
L3G4200D_OUT_X_H,
L3G4200D_OUT_Y_L,
L3G4200D_OUT_Y_H,
L3G4200D_OUT_Z_L,
L3G4200D_OUT_Z_H,
L3G4200D_FIFO_CTRL_REG,
L3G4200D_FIFO_SRC_REG,
L3G4200D_INT1_CFG,
L3G4200D_INT1_SRC,
L3G4200D_INT1_TSH_XH,
L3G4200D_INT1_TSH_XL,
L3G4200D_INT1_TSH_YH,
L3G4200D_INT1_TSH_YL,
L3G4200D_INT1_TSH_ZH,
L3G4200D_INT1_TSH_ZL,
L3G4200D_INT1_DURATION
}
L3G4200D_addrMap;
これらのセンサを使うときに引っかかったポイント
マルチバイトのR/Wをする場合
アドレスと0x80でorを取る必要があります
普通に読み出そうとして変な値が出てきて数日悩んでましたorz
それ以外は特にヘンなところもないI2Cデバイスだと思います
mbedが楽すぎて挫けそうo...rz
0 件のコメント:
コメントを投稿