diff --git a/nuttx-configs/mindpx-v2/include/board.h b/nuttx-configs/mindpx-v2/include/board.h index eb4ca97bf3..26c846517e 100644 --- a/nuttx-configs/mindpx-v2/include/board.h +++ b/nuttx-configs/mindpx-v2/include/board.h @@ -258,7 +258,7 @@ * There are sensors on SPI1, and SPI2 is connected to the FRAM. */ #define GPIO_SPI1_MISO (GPIO_SPI1_MISO_1|GPIO_SPEED_50MHz) -#define GPIO_SPI1_MOSI (GPIO_SPI1_MOSI_1|GPIO_SPEED_50MHz) +#define GPIO_SPI1_MOSI (GPIO_SPI1_MOSI_2|GPIO_SPEED_50MHz) #define GPIO_SPI1_SCK (GPIO_SPI1_SCK_1|GPIO_SPEED_50MHz) #define GPIO_SPI2_MISO (GPIO_SPI2_MISO_1|GPIO_SPEED_50MHz) diff --git a/src/drivers/boards/mindpx-v2/board_config.h b/src/drivers/boards/mindpx-v2/board_config.h index 51324c808a..1b5003622a 100644 --- a/src/drivers/boards/mindpx-v2/board_config.h +++ b/src/drivers/boards/mindpx-v2/board_config.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2015, 2016 Airmind Development Team. All rights reserved. + * Copyright (c) 2015, 2016 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -12,7 +12,7 @@ * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. - * 3. Neither the name Airmind nor the names of its contributors may be + * 3. Neither the name PX4 nor the names of its contributors may be * used to endorse or promote products derived from this software * without specific prior written permission. * @@ -66,92 +66,70 @@ #define GPIO_EXTI_GYRO_DRDY (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTE|GPIO_PIN4) #define GPIO_EXTI_MAG_DRDY (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN14) #define GPIO_EXTI_ACCEL_DRDY (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN13) -#define GPIO_EXTI_MPU_DRDY (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN0) +#define GPIO_EXTI_MPU_DRDY (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTE|GPIO_PIN10) /* Data ready pins off */ #define GPIO_GYRO_DRDY_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTE|GPIO_PIN14) #define GPIO_MAG_DRDY_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTC|GPIO_PIN14) #define GPIO_ACCEL_DRDY_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTC|GPIO_PIN13) -#define GPIO_EXTI_MPU_DRDY_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTC|GPIO_PIN0) - +#define GPIO_EXTI_MPU_DRDY_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTE|GPIO_PIN10) /* SPI1 off */ #define GPIO_SPI1_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN5) #define GPIO_SPI1_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN6) -#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTA|GPIO_PIN7) +#define GPIO_SPI1_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN5) /*SPI1 chip selects off */ -#define GPIO_SPI_CS_FRAM_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTC|GPIO_PIN2) +#define GPIO_SPI_CS_FRAM_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTE|GPIO_PIN12) /* SPI1 chip selects */ -#define GPIO_SPI_CS_FRAM (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN2) - +#define GPIO_SPI_CS_FRAM (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN12) /* SPI4 off */ -#define GPIO_SPI4_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN2) -#define GPIO_SPI4_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN5) -#define GPIO_SPI4_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN6) +#define GPIO_SPI4_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN2) +#define GPIO_SPI4_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN5) +#define GPIO_SPI4_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTE|GPIO_PIN6) /* SPI4 chip selects off */ -#define GPIO_SPI_CS_GYRO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTD|GPIO_PIN12) +#define GPIO_SPI_CS_GYRO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTB|GPIO_PIN2) #define GPIO_SPI_CS_ACCEL_MAG_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTD|GPIO_PIN11) #define GPIO_SPI_CS_BARO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTC|GPIO_PIN15) -#define GPIO_SPI_CS_MPU_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTE|GPIO_PIN3) +#define GPIO_SPI_CS_MPU_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTE|GPIO_PIN3) /* SPI4 chip selects */ -#define GPIO_SPI_CS_GYRO (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN12) -#define GPIO_SPI_CS_ACCEL_MAG (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN11) -#define GPIO_SPI_CS_BARO (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN15) -#define GPIO_SPI_CS_MPU (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN3) - - - +#define GPIO_SPI_CS_GYRO (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN2) +#define GPIO_SPI_CS_ACCEL_MAG (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN11) +#define GPIO_SPI_CS_BARO (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN15) +#define GPIO_SPI_CS_MPU (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN3) /* SPI2 off */ -#define GPIO_SPI2_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN13) -#define GPIO_SPI2_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN14) -#define GPIO_SPI2_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN15) +#define GPIO_SPI2_SCK_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN13) +#define GPIO_SPI2_MISO_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN14) +#define GPIO_SPI2_MOSI_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_PORTB|GPIO_PIN15) /* SPI2 chip selects off */ -#define GPIO_SPI_CS_EXT0_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTB|GPIO_PIN7) -#define GPIO_SPI_CS_EXT1_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTB|GPIO_PIN5) -#define GPIO_SPI_CS_EXT2_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTB|GPIO_PIN3) -#define GPIO_SPI_CS_EXT3_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTD|GPIO_PIN7) +#define GPIO_SPI_CS_EXT0_OFF (GPIO_INPUT|GPIO_PULLDOWN|GPIO_SPEED_25MHz|GPIO_PORTD|GPIO_PIN7) + /* SPI2 chip selects */ -#define GPIO_SPI_CS_EXT0 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN7) -#define GPIO_SPI_CS_EXT1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN5) -#define GPIO_SPI_CS_EXT2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN3) -#define GPIO_SPI_CS_EXT3 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7) +#define GPIO_SPI_CS_EXT0 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_25MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7) #define PX4_SPI_BUS_SENSORS 4 #define PX4_SPI_BUS_RAMTRON 1 #define PX4_SPI_BUS_EXT 2 #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 */ +/* Use these in place of the spi_dev_e enumeration to select a specific SPI device on SPI4 */ #define PX4_SPIDEV_GYRO 1 #define PX4_SPIDEV_ACCEL_MAG 2 #define PX4_SPIDEV_BARO 3 #define PX4_SPIDEV_MPU 4 - -#define PX4_SPIDEV_FLASH 5 - - /* 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_EXT1 -//#define PX4_SPIDEV_EXT_ACCEL_MAG PX4_SPIDEV_EXT2 -//#define PX4_SPIDEV_EXT_GYRO PX4_SPIDEV_EXT3 /* I2C busses */ #define PX4_I2C_BUS_ONBOARD 1 @@ -286,8 +264,7 @@ * * PA9 OTG_FS_VBUS VBUS sensing */ -//#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) -#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_PORTA|GPIO_PIN9) +#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) diff --git a/src/drivers/boards/mindpx-v2/mindpx2_init.c b/src/drivers/boards/mindpx-v2/mindpx2_init.c index 68d95ace9a..a39288bd2d 100644 --- a/src/drivers/boards/mindpx-v2/mindpx2_init.c +++ b/src/drivers/boards/mindpx-v2/mindpx2_init.c @@ -281,9 +281,7 @@ __EXPORT int nsh_archinitialize(void) SPI_SETBITS(spi2, 8); SPI_SETMODE(spi2, SPIDEV_MODE3); SPI_SELECT(spi2, PX4_SPIDEV_EXT0, false); - SPI_SELECT(spi2, PX4_SPIDEV_EXT1, false); - SPI_SELECT(spi2, PX4_SPIDEV_EXT2, false); - SPI_SELECT(spi2, PX4_SPIDEV_EXT3, false); + #ifdef CONFIG_MMCSD /* First, get an instance of the SDIO interface */ diff --git a/src/drivers/boards/mindpx-v2/mindpx_spi.c b/src/drivers/boards/mindpx-v2/mindpx_spi.c index b25797d095..dcd59a537b 100644 --- a/src/drivers/boards/mindpx-v2/mindpx_spi.c +++ b/src/drivers/boards/mindpx-v2/mindpx_spi.c @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2015, 2016 Airmind Development Team. All rights reserved. + * Copyright (c) 2015, 2016 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -12,7 +12,7 @@ * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. - * 3. Neither the name Airmind nor the names of its contributors may be + * 3. Neither the name PX4 nor the names of its contributors may be * used to endorse or promote products derived from this software * without specific prior written permission. * @@ -74,7 +74,6 @@ __EXPORT void weak_function stm32_spiinitialize(void) px4_arch_configgpio(GPIO_SPI_CS_GYRO); px4_arch_configgpio(GPIO_SPI_CS_ACCEL_MAG); px4_arch_configgpio(GPIO_SPI_CS_BARO); -// px4_arch_configgpio(GPIO_SPI_CS_FRAM); px4_arch_configgpio(GPIO_SPI_CS_MPU); /* De-activate all peripherals, @@ -84,7 +83,6 @@ __EXPORT void weak_function stm32_spiinitialize(void) px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1); px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL_MAG, 1); px4_arch_gpiowrite(GPIO_SPI_CS_BARO, 1); -// px4_arch_gpiowrite(GPIO_SPI_CS_FRAM,1); px4_arch_gpiowrite(GPIO_SPI_CS_MPU, 1); px4_arch_configgpio(GPIO_EXTI_GYRO_DRDY); @@ -100,13 +98,7 @@ __EXPORT void weak_function stm32_spiinitialize(void) #ifdef CONFIG_STM32_SPI2 px4_arch_configgpio(GPIO_SPI_CS_EXT0); - px4_arch_configgpio(GPIO_SPI_CS_EXT1); - px4_arch_configgpio(GPIO_SPI_CS_EXT2); - px4_arch_configgpio(GPIO_SPI_CS_EXT3); px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT1, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT2, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT3, 1); #endif } @@ -136,15 +128,9 @@ __EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1); px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL_MAG, 1); px4_arch_gpiowrite(GPIO_SPI_CS_BARO, !selected); -// px4_arch_gpiowrite(GPIO_SPI_CS_FRAM,1); px4_arch_gpiowrite(GPIO_SPI_CS_MPU, 1); break; -// case PX4_SPIDEV_FLASH: -// px4_arch_gpiowrite(GPIO_SPI_CS_BARO,1); -// px4_arch_gpiowrite(GPIO_SPI_CS_FRAM,!selected); -// break; - case PX4_SPIDEV_MPU: /* Making sure the other peripherals are not selected */ px4_arch_gpiowrite(GPIO_SPI_CS_GYRO, 1); @@ -163,8 +149,6 @@ __EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devi return SPI_STATUS_PRESENT; } - -#ifdef CONFIG_STM32_SPI1 __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { /* there can only be one device on this bus, so always select it */ @@ -176,55 +160,18 @@ __EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devi /* FRAM is always present */ return SPI_STATUS_PRESENT; } -#endif +#ifdef CONFIG_STM32_SPI2 __EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected) { - /* SPI select is active low, so write !selected to select the device */ - - switch (devid) { - case PX4_SPIDEV_EXT0: - /* Making sure the other peripherals are not selected */ - px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, !selected); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT1, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT2, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT3, 1); - break; - - case PX4_SPIDEV_EXT1: - /* Making sure the other peripherals are not selected */ - px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT1, !selected); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT2, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT3, 1); - break; - - case PX4_SPIDEV_EXT2: - /* Making sure the other peripherals are not selected */ - px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT1, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT2, !selected); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT3, 1); - break; - - case PX4_SPIDEV_EXT3: - /* Making sure the other peripherals are not selected */ - px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT1, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT2, 1); - px4_arch_gpiowrite(GPIO_SPI_CS_EXT3, !selected); - break; - - default: - break; - - } + px4_arch_gpiowrite(GPIO_SPI_CS_EXT0, !selected); } __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid) { return SPI_STATUS_PRESENT; } +#endif __EXPORT void board_spi_reset(int ms) { @@ -232,13 +179,11 @@ __EXPORT void board_spi_reset(int ms) px4_arch_configgpio(GPIO_SPI_CS_GYRO_OFF); px4_arch_configgpio(GPIO_SPI_CS_ACCEL_MAG_OFF); px4_arch_configgpio(GPIO_SPI_CS_BARO_OFF); - // px4_arch_configgpio(GPIO_SPI_CS_FRAM_OFF); px4_arch_configgpio(GPIO_SPI_CS_MPU_OFF); px4_arch_gpiowrite(GPIO_SPI_CS_GYRO_OFF, 0); px4_arch_gpiowrite(GPIO_SPI_CS_ACCEL_MAG_OFF, 0); px4_arch_gpiowrite(GPIO_SPI_CS_BARO_OFF, 0); - // px4_arch_gpiowrite(GPIO_SPI_CS_FRAM_OFF,0); px4_arch_gpiowrite(GPIO_SPI_CS_MPU_OFF, 0); px4_arch_configgpio(GPIO_SPI4_SCK_OFF); @@ -280,7 +225,6 @@ __EXPORT void board_spi_reset(int ms) px4_arch_configgpio(GPIO_SPI_CS_GYRO); px4_arch_configgpio(GPIO_SPI_CS_ACCEL_MAG); px4_arch_configgpio(GPIO_SPI_CS_BARO); - // px4_arch_configgpio(GPIO_SPI_CS_FRAM); px4_arch_configgpio(GPIO_SPI_CS_MPU); /* De-activate all peripherals, @@ -297,7 +241,7 @@ __EXPORT void board_spi_reset(int ms) px4_arch_configgpio(GPIO_SPI4_MISO); px4_arch_configgpio(GPIO_SPI4_MOSI); - // // XXX bring up the EXTI pins again + // XXX bring up the EXTI pins again // px4_arch_configgpio(GPIO_GYRO_DRDY); // px4_arch_configgpio(GPIO_MAG_DRDY); // px4_arch_configgpio(GPIO_ACCEL_DRDY);