av/x-v1 support PMW3901 on SPI2 (now treated as external)

This commit is contained in:
Daniel Agar 2019-04-30 02:08:11 -04:00
parent db5dbb25b3
commit 5d7a82b8e2
4 changed files with 13 additions and 8 deletions

View File

@ -40,7 +40,7 @@ px4_add_board(
#md25
mkblctrl
pca9685
#pmw3901
pmw3901
#protocol_splitter
#pwm_input
pwm_out_sim

View File

@ -12,8 +12,12 @@ lsm303agr -R 4 start
ms4525_airspeed -T 4515 -b 3 start
# TODO: try to autostart pmw3901
# TODO: try to autostart adis16497 start
# try to autostart pmw3901 on SPI2 (external)
if ! pmw3901 start
then
# if pmw3901 failed to start, try starting the adis16497 (SPI2)
adis16497 start
fi
# Possible external compasses
ist8310 -C -b 1 start

View File

@ -55,7 +55,7 @@
#define BOARD_HAS_NBAT_I 0 // No Ibat ADC
#define PX4_SPI_BUS_SENSOR1 1
#define PX4_SPI_BUS_SENSOR2 2
#define PX4_SPI_BUS_EXTERNAL1 2
#define PX4_SPI_BUS_SENSOR4 4
#define PX4_SPI_BUS_SENSOR5 5
@ -80,6 +80,7 @@
/* Define the SPI2 Data Ready interrupts */
#define GPIO_SPI2_DRDY1_ADIS16497 /* PJ5 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTJ|GPIO_PIN5)
#define SPI2_CS1_EXTERNAL1 GPIO_SPI2_DRDY1_ADIS16497
/* Define the SPI4 Data Ready interrupts */
#define GPIO_SPI4_DRDY1_LPS22HB /* PK1 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTK|GPIO_PIN1)
@ -127,8 +128,8 @@
#define PX4_SENSOR1_BUS_CS_GPIO {GPIO_SPI1_CS1_ADIS16477}
/* SPI2 */
#define PX4_SPIDEV_ADIS16497 PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSOR2,0)
#define PX4_SENSOR2_BUS_CS_GPIO {GPIO_SPI2_CS1_ADIS16497}
#define PX4_SPIDEV_EXTERNAL1_1 PX4_MK_SPI_SEL(PX4_SPI_BUS_EXTERNAL1,0)
#define PX4_EXTERNAL1_BUS_CS_GPIO {SPI2_CS1_EXTERNAL1}
/* SPI4 */
#define PX4_SPIDEV_LPS22HB PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSOR4,0)

View File

@ -58,7 +58,7 @@
/* Define CS GPIO array */
static constexpr uint32_t spi1selects_gpio[] = PX4_SENSOR1_BUS_CS_GPIO;
static constexpr uint32_t spi2selects_gpio[] = PX4_SENSOR2_BUS_CS_GPIO;
static constexpr uint32_t spi2selects_gpio[] = PX4_EXTERNAL1_BUS_CS_GPIO;
static constexpr uint32_t spi4selects_gpio[] = PX4_SENSOR4_BUS_CS_GPIO;
static constexpr uint32_t spi5selects_gpio[] = PX4_SENSOR5_BUS_CS_GPIO;
@ -145,7 +145,7 @@ __EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, uint32_t devid)
#if defined(CONFIG_STM32F7_SPI2)
__EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
{
ASSERT(PX4_SPI_BUS_ID(devid) == PX4_SPI_BUS_SENSOR2);
ASSERT(PX4_SPI_BUS_ID(devid) == PX4_SPI_BUS_EXTERNAL1);
// Making sure the other peripherals are not selected
for (auto cs : spi2selects_gpio) {