mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-02 03:49:12 +08:00
mRo ctrl zero updates
- add ICM20602 and ICM20648 data ready interrupts - enable Bosch BMI088 IMU - move HRT_TIMER to TIM3 (same timer as PPM channel)
This commit is contained in:
@@ -29,7 +29,7 @@ px4_add_board(
|
|||||||
gps
|
gps
|
||||||
#heater
|
#heater
|
||||||
#imu # all available imu drivers
|
#imu # all available imu drivers
|
||||||
#imu/bmi088
|
imu/bmi088
|
||||||
imu/mpu6000
|
imu/mpu6000
|
||||||
imu/icm20948
|
imu/icm20948
|
||||||
irlock
|
irlock
|
||||||
|
|||||||
@@ -11,8 +11,11 @@ mpu6000 -R 10 -s -T 20602 start
|
|||||||
# Internal ICM-20689
|
# Internal ICM-20689
|
||||||
#icm20689 -R 10 20689 start
|
#icm20689 -R 10 20689 start
|
||||||
|
|
||||||
# Internal BMI088
|
# Internal SPI bus BMI088 accel
|
||||||
bmi088 start
|
bmi088 -A -R 10 start
|
||||||
|
|
||||||
|
# Internal SPI bus BMI088 gyro
|
||||||
|
bmi088 -G -R 10 start
|
||||||
|
|
||||||
# Interal DPS310 (barometer)
|
# Interal DPS310 (barometer)
|
||||||
dps310 start
|
dps310 start
|
||||||
|
|||||||
@@ -215,7 +215,6 @@ CONFIG_UART4_RXDMA=y
|
|||||||
CONFIG_UART4_TXBUFSIZE=1500
|
CONFIG_UART4_TXBUFSIZE=1500
|
||||||
CONFIG_UART7_BAUD=57600
|
CONFIG_UART7_BAUD=57600
|
||||||
CONFIG_UART7_RXBUFSIZE=600
|
CONFIG_UART7_RXBUFSIZE=600
|
||||||
CONFIG_UART7_RXDMA=y
|
|
||||||
CONFIG_UART7_SERIAL_CONSOLE=y
|
CONFIG_UART7_SERIAL_CONSOLE=y
|
||||||
CONFIG_UART7_TXBUFSIZE=1500
|
CONFIG_UART7_TXBUFSIZE=1500
|
||||||
CONFIG_UART8_BAUD=57600
|
CONFIG_UART8_BAUD=57600
|
||||||
|
|||||||
@@ -81,6 +81,10 @@
|
|||||||
#define GPIO_SPI1_CS1_ICM20602 /* PC2 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN2)
|
#define GPIO_SPI1_CS1_ICM20602 /* PC2 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN2)
|
||||||
#define GPIO_SPI1_CS2_ICM20948 /* PE15 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN15)
|
#define GPIO_SPI1_CS2_ICM20948 /* PE15 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN15)
|
||||||
|
|
||||||
|
/* Define the SPI1 Data Ready interrupts */
|
||||||
|
#define GPIO_SPI1_DRDY1_ICM20602 /* PD15 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTD|GPIO_PIN15)
|
||||||
|
#define GPIO_SPI1_DRDY2_ICM20948 /* PE12 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTE|GPIO_PIN12)
|
||||||
|
|
||||||
/* SPI 2 CS */
|
/* SPI 2 CS */
|
||||||
#define GPIO_SPI2_CS1_FRAM /* PD10 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN10)
|
#define GPIO_SPI2_CS1_FRAM /* PD10 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN10)
|
||||||
#define GPIO_SPI2_CS2_BARO /* PD7 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7)
|
#define GPIO_SPI2_CS2_BARO /* PD7 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7)
|
||||||
@@ -253,7 +257,7 @@
|
|||||||
#define GPIO_OTGFS_VBUS /* PA9 */ (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_100MHz|GPIO_PORTA|GPIO_PIN9)
|
#define GPIO_OTGFS_VBUS /* PA9 */ (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_100MHz|GPIO_PORTA|GPIO_PIN9)
|
||||||
|
|
||||||
/* High-resolution timer */
|
/* High-resolution timer */
|
||||||
#define HRT_TIMER 8 /* use timer8 for the HRT */
|
#define HRT_TIMER 3 /* use timer3 for the HRT */
|
||||||
#define HRT_TIMER_CHANNEL 3 /* use capture/compare channel 3 */
|
#define HRT_TIMER_CHANNEL 3 /* use capture/compare channel 3 */
|
||||||
|
|
||||||
#define HRT_PPM_CHANNEL /* T3C2 */ 2 /* use capture/compare channel 1 */
|
#define HRT_PPM_CHANNEL /* T3C2 */ 2 /* use capture/compare channel 1 */
|
||||||
@@ -328,10 +332,6 @@
|
|||||||
GPIO_VDD_3V3_SPEKTRUM_POWER_EN, \
|
GPIO_VDD_3V3_SPEKTRUM_POWER_EN, \
|
||||||
GPIO_TONE_ALARM_IDLE, \
|
GPIO_TONE_ALARM_IDLE, \
|
||||||
GPIO_SAFETY_SWITCH_IN, \
|
GPIO_SAFETY_SWITCH_IN, \
|
||||||
GPIO_DRDY_BMI088_INT1_ACCEL, \
|
|
||||||
GPIO_DRDY_BMI088_INT2_ACCEL, \
|
|
||||||
GPIO_DRDY_BMI088_INT3_GYRO, \
|
|
||||||
GPIO_DRDY_BMI088_INT4_GYRO, \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BOARD_ENABLE_CONSOLE_BUFFER
|
#define BOARD_ENABLE_CONSOLE_BUFFER
|
||||||
|
|||||||
@@ -203,6 +203,9 @@ __EXPORT void board_spi_reset(int ms)
|
|||||||
stm32_configgpio(_PIN_OFF(GPIO_SPI1_SCK));
|
stm32_configgpio(_PIN_OFF(GPIO_SPI1_SCK));
|
||||||
stm32_configgpio(_PIN_OFF(GPIO_SPI1_MISO));
|
stm32_configgpio(_PIN_OFF(GPIO_SPI1_MISO));
|
||||||
stm32_configgpio(_PIN_OFF(GPIO_SPI1_MOSI));
|
stm32_configgpio(_PIN_OFF(GPIO_SPI1_MOSI));
|
||||||
|
stm32_configgpio(_PIN_OFF(GPIO_SPI1_DRDY1_ICM20602));
|
||||||
|
stm32_configgpio(_PIN_OFF(GPIO_SPI1_DRDY2_ICM20948));
|
||||||
|
|
||||||
|
|
||||||
// SPI5
|
// SPI5
|
||||||
for (auto cs : spi5selects_gpio) {
|
for (auto cs : spi5selects_gpio) {
|
||||||
@@ -242,6 +245,9 @@ __EXPORT void board_spi_reset(int ms)
|
|||||||
stm32_configgpio(GPIO_SPI1_SCK);
|
stm32_configgpio(GPIO_SPI1_SCK);
|
||||||
stm32_configgpio(GPIO_SPI1_MISO);
|
stm32_configgpio(GPIO_SPI1_MISO);
|
||||||
stm32_configgpio(GPIO_SPI1_MOSI);
|
stm32_configgpio(GPIO_SPI1_MOSI);
|
||||||
|
stm32_configgpio(GPIO_SPI1_DRDY1_ICM20602);
|
||||||
|
stm32_configgpio(GPIO_SPI1_DRDY2_ICM20948);
|
||||||
|
|
||||||
|
|
||||||
// SPI5
|
// SPI5
|
||||||
for (auto cs : spi5selects_gpio) {
|
for (auto cs : spi5selects_gpio) {
|
||||||
|
|||||||
@@ -90,7 +90,11 @@ start(bool external_bus, enum Rotation rotation, enum sensor_type sensor)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
#if defined(PX4_SPI_BUS_SENSORS3) && defined(PX4_SPIDEV_BMI088_ACC)
|
||||||
*g_dev_acc_ptr = new BMI088_accel(PX4_SPI_BUS_SENSORS3, path_accel, PX4_SPIDEV_BMI088_ACC, rotation);
|
*g_dev_acc_ptr = new BMI088_accel(PX4_SPI_BUS_SENSORS3, path_accel, PX4_SPIDEV_BMI088_ACC, rotation);
|
||||||
|
#elif defined(PX4_SPI_BUS_5) && defined(PX4_SPIDEV_BMI088_ACC)
|
||||||
|
*g_dev_acc_ptr = new BMI088_accel(PX4_SPI_BUS_5, path_accel, PX4_SPIDEV_BMI088_ACC, rotation);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*g_dev_acc_ptr == nullptr) {
|
if (*g_dev_acc_ptr == nullptr) {
|
||||||
@@ -120,7 +124,11 @@ start(bool external_bus, enum Rotation rotation, enum sensor_type sensor)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
#if defined(PX4_SPI_BUS_SENSORS3) && defined(PX4_SPIDEV_BMI088_GYR)
|
||||||
*g_dev_gyr_ptr = new BMI088_gyro(PX4_SPI_BUS_SENSORS3, path_gyro, PX4_SPIDEV_BMI088_GYR, rotation);
|
*g_dev_gyr_ptr = new BMI088_gyro(PX4_SPI_BUS_SENSORS3, path_gyro, PX4_SPIDEV_BMI088_GYR, rotation);
|
||||||
|
#elif defined(PX4_SPI_BUS_5) && defined(PX4_SPIDEV_BMI088_GYR)
|
||||||
|
*g_dev_gyr_ptr = new BMI088_gyro(PX4_SPI_BUS_5, path_gyro, PX4_SPIDEV_BMI088_GYR, rotation);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*g_dev_gyr_ptr == nullptr) {
|
if (*g_dev_gyr_ptr == nullptr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user