My modified version of pixhawk has MPU9250 on external SPI channel 4 with PE4 as CS pin
while MPU6000 is on board as internal SPI.
STM32F4 SPI1 → MPU6000
SPI4 → MPU9250
So I slightly modified the board_config.h file as followings
#define PX4_SPI_BUS_SENSORS 1
#define PX4_SPI_BUS_RAMTRON 2
#define PX4_SPI_BUS_EXT 4
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_SENSORS
/* Use these in place of the spi_dev_e enumeration to select a specific SPI device on SPI1 */
#define PX4_SPIDEV_GYRO 1
#define PX4_SPIDEV_ACCEL_MAG 2
#define PX4_SPIDEV_BARO 3
#define PX4_SPIDEV_MPU 4
#define PX4_SPIDEV_HMC 5
//#define PX4_SPIDEV_LIS 7
#define PX4_SPIDEV_BMI 8
/* External bus */
#define PX4_SPIDEV_EXT0 1
#define PX4_SPIDEV_EXT1 2
#define PX4_SPIDEV_EXT2 3
#define PX4_SPIDEV_EXT3 4
/* FMUv3 SPI on external bus */
#define PX4_SPIDEV_EXT_MPU PX4_SPIDEV_EXT0
#define PX4_SPIDEV_EXT_BARO PX4_SPIDEV_EXT2
#define PX4_SPIDEV_EXT_MAG PX4_SPIDEV_EXT3
#define PX4_SPIDEV_EXT_GYRO PX4_SPIDEV_EXT1
and I still not getting data from MPU9250
on nsh, it returns
MPU9250 on SPI bus 4 at 1 (1000 KHz)
nsh> mpu9250 -S start
WARN [mpu9250] probe failed! 254
WARN [mpu9250] SPI init failed
WARN [mpu9250] no device on bus 4
Why the device return bus number 4 rather than assigned value to PX4_SPIDEV_EXT0 which is 0 (zero)
Am I doing wrong with the config file?