🧠 MPU-9250 控制與數據暫存器
暫存器 | 位址 | 功能說明 | 使用範例 |
---|---|---|---|
MPU9250_ADDR | 0x68 | MPU-9250 的 I2C 裝置地址 | i2c.writeto(0x68, ...) |
PWR_MGMT_1 | 0x6B | 電源管理:喚醒、選擇時鐘來源 | writeto_mem(0x68, 0x6B, b'\x00') 退出睡眠模式 |
ACCEL_CONFIG | 0x1C | 加速度計量程設定(±2g、4g、8g、16g) | writeto_mem(0x1C, b'\x00') 設為 ±2g |
GYRO_CONFIG | 0x1B | 陀螺儀量程設定(±250、500、1000、2000 dps) | writeto_mem(0x1B, b'\x00') 設為 ±250 dps |
ACCEL_XOUT_H | 0x3B | 加速度計 X/Y/Z 的高位元起始位址 | readfrom_mem(0x3B, 6) 取 6 bytes |
GYRO_XOUT_H | 0x43 | 陀螺儀 X/Y/Z 的高位元起始位址 | readfrom_mem(0x43, 6) |
🔌 I2C Master 模式控制暫存器(用於驅動 AK8963)
暫存器 | 位址 | 功能說明 |
---|---|---|
USER_CTRL | 0x6A | 控制是否啟用 I2C Master 模式 |
INT_PIN_CFG | 0x37 | 啟用 BYPASS 模式(值設為 0x02 可讓 MCU 直接使用 AK8963) |
I2C_MST_CTRL | 0x24 | 設定 I2C master 時脈頻率 |
I2C_SLV0_ADDR | 0x25 | Slave 0 裝置地址(設為 AK8963 地址 0x0C ) |
I2C_SLV0_REG | 0x26 | 要操作的 AK8963 暫存器位址 |
I2C_SLV0_CTRL | 0x27 | 控制讀寫啟用與長度(如 0x81 表示讀 1 byte 並啟用) |
EXT_SENS_DATA_00 | 0x49 | 讀取外部感測器資料(如 AK8963) |
🧲 AK8963(磁力計)相關暫存器
暫存器 | 位址 | 功能說明 | 使用範例 |
---|---|---|---|
AK8963_ADDR | 0x0C | 磁力計的 I2C 地址 | writeto(0x0C, ...) |
AK8963_CNTL1 | 0x0A | 控制測量模式(0x16 為連續模式2,100Hz,16bit) | |
AK8963_XOUT_L | 0x03 | 磁力資料起始位址(6 bytes) | |
AK8963_ST1 | 0x02 | 狀態1:bit 0 表示資料準備完成 | |
AK8963_ST2 | 0x09 | 狀態2:bit 3 為溢位檢查 | |
AK8963_WHO_AM_I | 0x00 | 裝置 ID,應為 0x48 |
✅ 實用範例:讀取磁力計資料流程
沒有留言:
張貼留言