Example #1
0
void imu_mpu_spi_init(void)
{
  mpu60x0_spi_init(&imu_mpu_spi.mpu, &IMU_MPU_SPI_DEV, IMU_MPU_SPI_SLAVE_IDX);
  // change the default configuration
  imu_mpu_spi.mpu.config.smplrt_div = IMU_MPU_SMPLRT_DIV;
  imu_mpu_spi.mpu.config.dlpf_cfg = IMU_MPU_LOWPASS_FILTER;
  imu_mpu_spi.mpu.config.gyro_range = IMU_MPU_GYRO_RANGE;
  imu_mpu_spi.mpu.config.accel_range = IMU_MPU_ACCEL_RANGE;
}
Example #2
0
void imu_impl_init(void)
{
    mpu60x0_spi_init(&imu_mpu_hmc.mpu, &IMU_MPU_SPI_DEV, IMU_MPU_SPI_SLAVE_IDX);
    // change the default configuration
    imu_mpu_hmc.mpu.config.smplrt_div = IMU_MPU_SMPLRT_DIV;
    imu_mpu_hmc.mpu.config.dlpf_cfg = IMU_MPU_LOWPASS_FILTER;
    imu_mpu_hmc.mpu.config.gyro_range = IMU_MPU_GYRO_RANGE;
    imu_mpu_hmc.mpu.config.accel_range = IMU_MPU_ACCEL_RANGE;

    /* initialize mag and set default options */
    hmc58xx_init(&imu_mpu_hmc.hmc, &IMU_HMC_I2C_DEV, HMC58XX_ADDR);
}
Example #3
0
void imu_impl_init(void)
{
  /* MPU is on spi1 and CS is SLAVE2 */
  mpu60x0_spi_init(&imu_px4fmu.mpu, &spi1, SPI_SLAVE2);
  // change the default configuration
  imu_px4fmu.mpu.config.smplrt_div = PX4FMU_SMPLRT_DIV;
  imu_px4fmu.mpu.config.dlpf_cfg = PX4FMU_LOWPASS_FILTER;
  imu_px4fmu.mpu.config.gyro_range = PX4FMU_GYRO_RANGE;
  imu_px4fmu.mpu.config.accel_range = PX4FMU_ACCEL_RANGE;

  /* initialize mag on i2c2 and set default options */
  hmc58xx_init(&imu_px4fmu.hmc, &i2c2, HMC58XX_ADDR);
}
void imu_impl_init(void)
{
  imu_aspirin2.accel_valid = FALSE;
  imu_aspirin2.gyro_valid = FALSE;
  imu_aspirin2.mag_valid = FALSE;

  mpu60x0_spi_init(&imu_aspirin2.mpu, &(ASPIRIN_2_SPI_DEV), ASPIRIN_2_SPI_SLAVE_IDX);
  // change the default configuration
  imu_aspirin2.mpu.config.smplrt_div = ASPIRIN_2_SMPLRT_DIV;
  imu_aspirin2.mpu.config.dlpf_cfg = ASPIRIN_2_LOWPASS_FILTER;
  imu_aspirin2.mpu.config.gyro_range = ASPIRIN_2_GYRO_RANGE;
  imu_aspirin2.mpu.config.accel_range = ASPIRIN_2_ACCEL_RANGE;

  /* read 15 bytes for status, accel, gyro + 6 bytes for mag slave */
  imu_aspirin2.mpu.config.nb_bytes = 21;

  /* HMC5883 magnetometer as I2C slave */
  imu_aspirin2.mpu.config.nb_slaves = 1;

  /* set function to configure mag */
  imu_aspirin2.mpu.config.slaves[0].configure = &imu_aspirin2_configure_mag_slave;


  /* Set MPU I2C master clock */
  imu_aspirin2.mpu.config.i2c_mst_clk = MPU60X0_MST_CLK_400KHZ;
  /* Enable I2C slave0 delayed sample rate */
  imu_aspirin2.mpu.config.i2c_mst_delay = 1;


  /* configure spi transaction for wait_slave4 */
  imu_aspirin2.wait_slave4_trans.cpol = SPICpolIdleHigh;
  imu_aspirin2.wait_slave4_trans.cpha = SPICphaEdge2;
  imu_aspirin2.wait_slave4_trans.dss = SPIDss8bit;
  imu_aspirin2.wait_slave4_trans.bitorder = SPIMSBFirst;
  imu_aspirin2.wait_slave4_trans.cdiv = SPIDiv64;

  imu_aspirin2.wait_slave4_trans.select = SPISelectUnselect;
  imu_aspirin2.wait_slave4_trans.slave_idx = ASPIRIN_2_SPI_SLAVE_IDX;
  imu_aspirin2.wait_slave4_trans.output_length = 1;
  imu_aspirin2.wait_slave4_trans.input_length = 2;
  imu_aspirin2.wait_slave4_trans.before_cb = NULL;
  imu_aspirin2.wait_slave4_trans.after_cb = mpu_wait_slave4_ready_cb;
  imu_aspirin2.wait_slave4_trans.input_buf = &(imu_aspirin2.wait_slave4_rx_buf[0]);
  imu_aspirin2.wait_slave4_trans.output_buf = &(imu_aspirin2.wait_slave4_tx_buf[0]);

  imu_aspirin2.wait_slave4_trans.status = SPITransDone;
  imu_aspirin2.slave4_ready = FALSE;
}