How to enable BLSP9 for SPI usage over J7?
-
I have modified apq8096-imu-server to add another IMU, which is going to be connected to J7, using SPI (BLSP9). However, when I try and talk to this device in my code, I can see on my scope no activity. Is there something additional I need to do?
I've modified:
common/voxl_imu_server.h - updated N_IMUS, added my IMU as IMU4
server/src/imu_interface.c - Added my IMU to imu_ic_t , added it to switch statements, etc
server/src/config_file.c - added IMU4 config entriesAnd of course implemented my code as per the existing IMUs. I am passing it as bus 9, as I believe this is supposed to map to BLSP9. But I cannot see anything being clocked, chip selects changing, etc...
-
Hello @jrestifo,
apq8096-imu-server (formerly voxl-imu-server) already had support for SPI imu on J7 (SPI9). That is IMU2 (where IMU0 and IMU1 are IMUs on VOXL itself). I plugged in MPU9250 into J7 via SPI, see below output:
/ # voxl-imu-server -b -i 2 enabling basic read instead of FIFO Forcing imu2 on loading calibration file ... ... ================================================================= loading config file ================================================================= imu0_enable: 1 imu0_bus: 10 imu0_sample_rate_hz: 1000.0 imu0_lp_cutoff_freq_hz: 92.0 imu0_rotate_common_frame 1 imu0_read_every_n_samples: 10 imu1_enable: 1 imu1_bus: 1 imu1_sample_rate_hz: 1000.0 imu1_lp_cutoff_freq_hz: 92.0 imu1_rotate_common_frame 1 imu1_read_every_n_samples: 10 aux_imu2_enable: 0 aux_imu2_spi_bus: 9 aux_imu2_sample_rate_hz: 1000.0 aux_imu2_lp_cutoff_freq_hz: 92.0 aux_imu2_read_every_n_samples: 10 aux_imu2_enable: 0 aux_imu2_spi_bus: 11 aux_imu2_sample_rate_hz: 1000.0 aux_imu2_lp_cutoff_freq_hz: 92.0 aux_imu2_read_every_n_samples: 10 ================================================================= Initializing IMU0 detected ICM42688 on spi bus[id] 10 using ODR=1000.00hz which is the nearest the icm42688 can get to 1000.0 Initializing IMU1 detected ICM20948 on spi bus[id] 1 using ODR=1125.00hz which is the nearest the icm20948 can get to 1000.0 Initializing IMU2 detected MPU9250 on spi bus[id] 9 using ODR=1000.00hz which is the nearest the mpu9250 can get to 1000.0
By the way, it looks like aux_imu2_* is mentioned twice in the config file printout, it is a bug..
to print out raw imu data...
voxl-imu-server -b -i 2 -p | grep imu2
Please try it out..
-
So I have a BMI088 plugged in there, so I was adding IMU4 to not lose support for MPU as well. However, I did as you suggest as a sanity check, and yes I can see it trying to clock. I must have a problem somewhere else, thank you this was very helpful.