mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-22 01:12:31 +00:00
px4_fmu-v4: add runtime external SPI4 detection to support pmw3901 (#11301)
* The build is built with SPI4. At run time the signal GPIO_8266_GPIO2 it tested. If it is low the SPI4 is configured. If it is high SPI4 is not configured. * board_common: Add Notion of Board has bus manifest
This commit is contained in:
committed by
Daniel Agar
parent
53a127beb9
commit
6f9a9b3d2c
@@ -32,6 +32,7 @@ px4_add_board(
|
|||||||
magnetometer # all available magnetometer drivers
|
magnetometer # all available magnetometer drivers
|
||||||
mkblctrl
|
mkblctrl
|
||||||
pca9685
|
pca9685
|
||||||
|
pmw3901
|
||||||
pwm_input
|
pwm_input
|
||||||
pwm_out_sim
|
pwm_out_sim
|
||||||
px4flow
|
px4flow
|
||||||
|
|||||||
@@ -64,3 +64,5 @@ then
|
|||||||
# BMI160 internal SPI bus
|
# BMI160 internal SPI bus
|
||||||
bmi160 start
|
bmi160 start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
pmw3901 start
|
||||||
|
|||||||
@@ -269,11 +269,16 @@
|
|||||||
#define GPIO_SPI1_MOSI (GPIO_SPI1_MOSI_1|GPIO_SPEED_50MHz)
|
#define GPIO_SPI1_MOSI (GPIO_SPI1_MOSI_1|GPIO_SPEED_50MHz)
|
||||||
#define GPIO_SPI1_SCK (GPIO_SPI1_SCK_1|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)
|
#define GPIO_SPI2_MISO (GPIO_SPI2_MISO_1|GPIO_SPEED_50MHz)
|
||||||
#define GPIO_SPI2_MOSI (GPIO_SPI2_MOSI_1|GPIO_SPEED_50MHz)
|
#define GPIO_SPI2_MOSI (GPIO_SPI2_MOSI_1|GPIO_SPEED_50MHz)
|
||||||
#define GPIO_SPI2_SCK (GPIO_SPI2_SCK_1|GPIO_SPEED_50MHz)
|
#define GPIO_SPI2_SCK (GPIO_SPI2_SCK_1|GPIO_SPEED_50MHz)
|
||||||
|
|
||||||
|
#if defined(CONFIG_STM32_SPI4)
|
||||||
|
# define GPIO_SPI4_MISO (GPIO_SPI4_MISO_1|GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_SPI4_MOSI (GPIO_SPI4_MOSI_1|GPIO_SPEED_50MHz)
|
||||||
|
# define GPIO_SPI4_SCK (GPIO_SPI4_SCK_1|GPIO_SPEED_50MHz)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Board provides GPIO or other Hardware for signaling to timing analyzer */
|
/* Board provides GPIO or other Hardware for signaling to timing analyzer */
|
||||||
|
|
||||||
#if defined(CONFIG_BOARD_USE_PROBES)
|
#if defined(CONFIG_BOARD_USE_PROBES)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ CONFIG_ARCH="arm"
|
|||||||
# ARM Options
|
# ARM Options
|
||||||
#
|
#
|
||||||
# CONFIG_ARCH_CHIP_A1X is not set
|
# CONFIG_ARCH_CHIP_A1X is not set
|
||||||
# CONFIG_ARCH_CHIP_BCM2708 is not set
|
# CONFIG_ARCH_CHIP_AM335X is not set
|
||||||
# CONFIG_ARCH_CHIP_C5471 is not set
|
# CONFIG_ARCH_CHIP_C5471 is not set
|
||||||
# CONFIG_ARCH_CHIP_DM320 is not set
|
# CONFIG_ARCH_CHIP_DM320 is not set
|
||||||
# CONFIG_ARCH_CHIP_EFM32 is not set
|
# CONFIG_ARCH_CHIP_EFM32 is not set
|
||||||
@@ -445,7 +445,7 @@ CONFIG_STM32_HAVE_CAN2=y
|
|||||||
# CONFIG_STM32_HAVE_COMP6 is not set
|
# CONFIG_STM32_HAVE_COMP6 is not set
|
||||||
# CONFIG_STM32_HAVE_COMP7 is not set
|
# CONFIG_STM32_HAVE_COMP7 is not set
|
||||||
CONFIG_STM32_HAVE_DAC1=y
|
CONFIG_STM32_HAVE_DAC1=y
|
||||||
CONFIG_STM32_HAVE_DAC2=y
|
# CONFIG_STM32_HAVE_DAC2 is not set
|
||||||
CONFIG_STM32_HAVE_RNG=y
|
CONFIG_STM32_HAVE_RNG=y
|
||||||
CONFIG_STM32_HAVE_ETHMAC=y
|
CONFIG_STM32_HAVE_ETHMAC=y
|
||||||
CONFIG_STM32_HAVE_I2C2=y
|
CONFIG_STM32_HAVE_I2C2=y
|
||||||
@@ -482,7 +482,6 @@ CONFIG_STM32_CCMDATARAM=y
|
|||||||
CONFIG_STM32_DMA1=y
|
CONFIG_STM32_DMA1=y
|
||||||
CONFIG_STM32_DMA2=y
|
CONFIG_STM32_DMA2=y
|
||||||
# CONFIG_STM32_DAC1 is not set
|
# CONFIG_STM32_DAC1 is not set
|
||||||
# CONFIG_STM32_DAC2 is not set
|
|
||||||
# CONFIG_STM32_DCMI is not set
|
# CONFIG_STM32_DCMI is not set
|
||||||
# CONFIG_STM32_ETHMAC is not set
|
# CONFIG_STM32_ETHMAC is not set
|
||||||
# CONFIG_STM32_FSMC is not set
|
# CONFIG_STM32_FSMC is not set
|
||||||
@@ -501,7 +500,7 @@ CONFIG_STM32_SPI1=y
|
|||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
# CONFIG_STM32_SPI3 is not set
|
# CONFIG_STM32_SPI3 is not set
|
||||||
# CONFIG_STM32_I2S3 is not set
|
# CONFIG_STM32_I2S3 is not set
|
||||||
# CONFIG_STM32_SPI4 is not set
|
CONFIG_STM32_SPI4=y
|
||||||
# CONFIG_STM32_SPI5 is not set
|
# CONFIG_STM32_SPI5 is not set
|
||||||
# CONFIG_STM32_SPI6 is not set
|
# CONFIG_STM32_SPI6 is not set
|
||||||
CONFIG_STM32_SYSCFG=y
|
CONFIG_STM32_SYSCFG=y
|
||||||
@@ -1028,8 +1027,17 @@ CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0"
|
|||||||
# LCD Driver Support
|
# LCD Driver Support
|
||||||
#
|
#
|
||||||
# CONFIG_LCD is not set
|
# CONFIG_LCD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Character/Segment LCD Devices
|
||||||
|
#
|
||||||
# CONFIG_SLCD is not set
|
# CONFIG_SLCD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other LCD-related Devices
|
||||||
|
#
|
||||||
|
# CONFIG_LCD_OTHER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# LED Support
|
# LED Support
|
||||||
#
|
#
|
||||||
@@ -1608,6 +1616,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
|
|||||||
#
|
#
|
||||||
# CONFIG_EXAMPLES_ADXL372_TEST is not set
|
# CONFIG_EXAMPLES_ADXL372_TEST is not set
|
||||||
# CONFIG_EXAMPLES_APA102 is not set
|
# CONFIG_EXAMPLES_APA102 is not set
|
||||||
|
# CONFIG_EXAMPLES_BATTERY is not set
|
||||||
# CONFIG_EXAMPLES_CALIB_UDELAY is not set
|
# CONFIG_EXAMPLES_CALIB_UDELAY is not set
|
||||||
# CONFIG_EXAMPLES_CCTYPE is not set
|
# CONFIG_EXAMPLES_CCTYPE is not set
|
||||||
# CONFIG_EXAMPLES_CHAT is not set
|
# CONFIG_EXAMPLES_CHAT is not set
|
||||||
@@ -1660,7 +1669,6 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
|
|||||||
# CONFIG_EXAMPLES_SLCD is not set
|
# CONFIG_EXAMPLES_SLCD is not set
|
||||||
# CONFIG_EXAMPLES_SMART is not set
|
# CONFIG_EXAMPLES_SMART is not set
|
||||||
# CONFIG_EXAMPLES_SMART_TEST is not set
|
# CONFIG_EXAMPLES_SMART_TEST is not set
|
||||||
# CONFIG_EXAMPLES_SMP is not set
|
|
||||||
# CONFIG_EXAMPLES_SMPS is not set
|
# CONFIG_EXAMPLES_SMPS is not set
|
||||||
# CONFIG_EXAMPLES_STAT is not set
|
# CONFIG_EXAMPLES_STAT is not set
|
||||||
# CONFIG_EXAMPLES_TCPECHO is not set
|
# CONFIG_EXAMPLES_TCPECHO is not set
|
||||||
@@ -1892,6 +1900,7 @@ CONFIG_READLINE_ECHO=y
|
|||||||
# CONFIG_SYSTEM_SUDOKU is not set
|
# CONFIG_SYSTEM_SUDOKU is not set
|
||||||
# CONFIG_SYSTEM_SYSTEM is not set
|
# CONFIG_SYSTEM_SYSTEM is not set
|
||||||
# CONFIG_SYSTEM_TEE is not set
|
# CONFIG_SYSTEM_TEE is not set
|
||||||
|
# CONFIG_SYSTEM_TERMCURSES is not set
|
||||||
# CONFIG_SYSTEM_UBLOXMODEM is not set
|
# CONFIG_SYSTEM_UBLOXMODEM is not set
|
||||||
# CONFIG_SYSTEM_VI is not set
|
# CONFIG_SYSTEM_VI is not set
|
||||||
# CONFIG_SYSTEM_ZMODEM is not set
|
# CONFIG_SYSTEM_ZMODEM is not set
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ CONFIG_ARCH="arm"
|
|||||||
# ARM Options
|
# ARM Options
|
||||||
#
|
#
|
||||||
# CONFIG_ARCH_CHIP_A1X is not set
|
# CONFIG_ARCH_CHIP_A1X is not set
|
||||||
# CONFIG_ARCH_CHIP_BCM2708 is not set
|
# CONFIG_ARCH_CHIP_AM335X is not set
|
||||||
# CONFIG_ARCH_CHIP_C5471 is not set
|
# CONFIG_ARCH_CHIP_C5471 is not set
|
||||||
# CONFIG_ARCH_CHIP_DM320 is not set
|
# CONFIG_ARCH_CHIP_DM320 is not set
|
||||||
# CONFIG_ARCH_CHIP_EFM32 is not set
|
# CONFIG_ARCH_CHIP_EFM32 is not set
|
||||||
@@ -109,6 +109,7 @@ CONFIG_ARCH="arm"
|
|||||||
# CONFIG_ARCH_CHIP_SAMV7 is not set
|
# CONFIG_ARCH_CHIP_SAMV7 is not set
|
||||||
CONFIG_ARCH_CHIP_STM32=y
|
CONFIG_ARCH_CHIP_STM32=y
|
||||||
# CONFIG_ARCH_CHIP_STM32F0 is not set
|
# CONFIG_ARCH_CHIP_STM32F0 is not set
|
||||||
|
# CONFIG_ARCH_CHIP_STM32L0 is not set
|
||||||
# CONFIG_ARCH_CHIP_STM32F7 is not set
|
# CONFIG_ARCH_CHIP_STM32F7 is not set
|
||||||
# CONFIG_ARCH_CHIP_STM32H7 is not set
|
# CONFIG_ARCH_CHIP_STM32H7 is not set
|
||||||
# CONFIG_ARCH_CHIP_STM32L4 is not set
|
# CONFIG_ARCH_CHIP_STM32L4 is not set
|
||||||
@@ -349,6 +350,7 @@ CONFIG_ARCH_CHIP_STM32F427V=y
|
|||||||
# CONFIG_STM32_FLASH_CONFIG_6 is not set
|
# CONFIG_STM32_FLASH_CONFIG_6 is not set
|
||||||
# CONFIG_STM32_FLASH_CONFIG_8 is not set
|
# CONFIG_STM32_FLASH_CONFIG_8 is not set
|
||||||
# CONFIG_STM32_FLASH_CONFIG_B is not set
|
# CONFIG_STM32_FLASH_CONFIG_B is not set
|
||||||
|
# CONFIG_STM32_FLASH_CONFIG_Z is not set
|
||||||
# CONFIG_STM32_FLASH_CONFIG_C is not set
|
# CONFIG_STM32_FLASH_CONFIG_C is not set
|
||||||
# CONFIG_STM32_FLASH_CONFIG_D is not set
|
# CONFIG_STM32_FLASH_CONFIG_D is not set
|
||||||
# CONFIG_STM32_FLASH_CONFIG_E is not set
|
# CONFIG_STM32_FLASH_CONFIG_E is not set
|
||||||
@@ -443,7 +445,7 @@ CONFIG_STM32_HAVE_CAN2=y
|
|||||||
# CONFIG_STM32_HAVE_COMP6 is not set
|
# CONFIG_STM32_HAVE_COMP6 is not set
|
||||||
# CONFIG_STM32_HAVE_COMP7 is not set
|
# CONFIG_STM32_HAVE_COMP7 is not set
|
||||||
CONFIG_STM32_HAVE_DAC1=y
|
CONFIG_STM32_HAVE_DAC1=y
|
||||||
CONFIG_STM32_HAVE_DAC2=y
|
# CONFIG_STM32_HAVE_DAC2 is not set
|
||||||
CONFIG_STM32_HAVE_RNG=y
|
CONFIG_STM32_HAVE_RNG=y
|
||||||
CONFIG_STM32_HAVE_ETHMAC=y
|
CONFIG_STM32_HAVE_ETHMAC=y
|
||||||
CONFIG_STM32_HAVE_I2C2=y
|
CONFIG_STM32_HAVE_I2C2=y
|
||||||
@@ -480,7 +482,6 @@ CONFIG_STM32_CCMDATARAM=y
|
|||||||
CONFIG_STM32_DMA1=y
|
CONFIG_STM32_DMA1=y
|
||||||
CONFIG_STM32_DMA2=y
|
CONFIG_STM32_DMA2=y
|
||||||
# CONFIG_STM32_DAC1 is not set
|
# CONFIG_STM32_DAC1 is not set
|
||||||
# CONFIG_STM32_DAC2 is not set
|
|
||||||
# CONFIG_STM32_DCMI is not set
|
# CONFIG_STM32_DCMI is not set
|
||||||
# CONFIG_STM32_ETHMAC is not set
|
# CONFIG_STM32_ETHMAC is not set
|
||||||
# CONFIG_STM32_FSMC is not set
|
# CONFIG_STM32_FSMC is not set
|
||||||
@@ -490,7 +491,6 @@ CONFIG_STM32_I2C1=y
|
|||||||
# CONFIG_STM32_I2C2 is not set
|
# CONFIG_STM32_I2C2 is not set
|
||||||
# CONFIG_STM32_I2C3 is not set
|
# CONFIG_STM32_I2C3 is not set
|
||||||
CONFIG_STM32_RTC=y
|
CONFIG_STM32_RTC=y
|
||||||
# CONFIG_STM32_USBHOST is not sety
|
|
||||||
CONFIG_STM32_OTGFS=y
|
CONFIG_STM32_OTGFS=y
|
||||||
# CONFIG_STM32_OTGHS is not set
|
# CONFIG_STM32_OTGHS is not set
|
||||||
CONFIG_STM32_PWR=y
|
CONFIG_STM32_PWR=y
|
||||||
@@ -500,7 +500,7 @@ CONFIG_STM32_SPI1=y
|
|||||||
CONFIG_STM32_SPI2=y
|
CONFIG_STM32_SPI2=y
|
||||||
# CONFIG_STM32_SPI3 is not set
|
# CONFIG_STM32_SPI3 is not set
|
||||||
# CONFIG_STM32_I2S3 is not set
|
# CONFIG_STM32_I2S3 is not set
|
||||||
# CONFIG_STM32_SPI4 is not set
|
CONFIG_STM32_SPI4=y
|
||||||
# CONFIG_STM32_SPI5 is not set
|
# CONFIG_STM32_SPI5 is not set
|
||||||
# CONFIG_STM32_SPI6 is not set
|
# CONFIG_STM32_SPI6 is not set
|
||||||
CONFIG_STM32_SYSCFG=y
|
CONFIG_STM32_SYSCFG=y
|
||||||
@@ -687,20 +687,7 @@ CONFIG_STM32_RTC_MAGIC_TIME_SET=0xfacefeef
|
|||||||
# CONFIG_STM32_RTC_LSECLOCK is not set
|
# CONFIG_STM32_RTC_LSECLOCK is not set
|
||||||
# CONFIG_STM32_RTC_LSICLOCK is not set
|
# CONFIG_STM32_RTC_LSICLOCK is not set
|
||||||
CONFIG_STM32_RTC_HSECLOCK=y
|
CONFIG_STM32_RTC_HSECLOCK=y
|
||||||
|
# CONFIG_STM32_USBHOST is not set
|
||||||
#
|
|
||||||
# USB FS Host Configuration
|
|
||||||
#
|
|
||||||
CONFIG_STM32_OTGFS_RXFIFO_SIZE=128
|
|
||||||
CONFIG_STM32_OTGFS_NPTXFIFO_SIZE=96
|
|
||||||
CONFIG_STM32_OTGFS_PTXFIFO_SIZE=128
|
|
||||||
CONFIG_STM32_OTGFS_DESCSIZE=128
|
|
||||||
# CONFIG_STM32_OTGFS_SOFINTR is not set
|
|
||||||
CONFIG_STM32_OTGFS_VBUS_CONTROL=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# USB Host Debug Configuration
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# USB Device Configuration
|
# USB Device Configuration
|
||||||
@@ -838,6 +825,7 @@ CONFIG_PREALLOC_TIMERS=50
|
|||||||
CONFIG_INIT_ENTRYPOINT=y
|
CONFIG_INIT_ENTRYPOINT=y
|
||||||
# CONFIG_INIT_FILEPATH is not set
|
# CONFIG_INIT_FILEPATH is not set
|
||||||
CONFIG_USER_ENTRYPOINT="nsh_main"
|
CONFIG_USER_ENTRYPOINT="nsh_main"
|
||||||
|
CONFIG_USERMAIN_PRIORITY=100
|
||||||
CONFIG_RR_INTERVAL=0
|
CONFIG_RR_INTERVAL=0
|
||||||
# CONFIG_SCHED_SPORADIC is not set
|
# CONFIG_SCHED_SPORADIC is not set
|
||||||
CONFIG_TASK_NAME_SIZE=24
|
CONFIG_TASK_NAME_SIZE=24
|
||||||
@@ -1039,8 +1027,17 @@ CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0"
|
|||||||
# LCD Driver Support
|
# LCD Driver Support
|
||||||
#
|
#
|
||||||
# CONFIG_LCD is not set
|
# CONFIG_LCD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Character/Segment LCD Devices
|
||||||
|
#
|
||||||
# CONFIG_SLCD is not set
|
# CONFIG_SLCD is not set
|
||||||
|
|
||||||
|
#
|
||||||
|
# Other LCD-related Devices
|
||||||
|
#
|
||||||
|
# CONFIG_LCD_OTHER is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# LED Support
|
# LED Support
|
||||||
#
|
#
|
||||||
@@ -1619,6 +1616,7 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
|
|||||||
#
|
#
|
||||||
# CONFIG_EXAMPLES_ADXL372_TEST is not set
|
# CONFIG_EXAMPLES_ADXL372_TEST is not set
|
||||||
# CONFIG_EXAMPLES_APA102 is not set
|
# CONFIG_EXAMPLES_APA102 is not set
|
||||||
|
# CONFIG_EXAMPLES_BATTERY is not set
|
||||||
# CONFIG_EXAMPLES_CALIB_UDELAY is not set
|
# CONFIG_EXAMPLES_CALIB_UDELAY is not set
|
||||||
# CONFIG_EXAMPLES_CCTYPE is not set
|
# CONFIG_EXAMPLES_CCTYPE is not set
|
||||||
# CONFIG_EXAMPLES_CHAT is not set
|
# CONFIG_EXAMPLES_CHAT is not set
|
||||||
@@ -1654,11 +1652,9 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
|
|||||||
# CONFIG_EXAMPLES_NXDEMO is not set
|
# CONFIG_EXAMPLES_NXDEMO is not set
|
||||||
# CONFIG_EXAMPLES_NXFFS is not set
|
# CONFIG_EXAMPLES_NXFFS is not set
|
||||||
# CONFIG_EXAMPLES_OBD2 is not set
|
# CONFIG_EXAMPLES_OBD2 is not set
|
||||||
# CONFIG_EXAMPLES_OSTEST is not set
|
|
||||||
# CONFIG_EXAMPLES_PCA9635 is not set
|
# CONFIG_EXAMPLES_PCA9635 is not set
|
||||||
# CONFIG_EXAMPLES_PDCURSES is not set
|
# CONFIG_EXAMPLES_PDCURSES is not set
|
||||||
# CONFIG_EXAMPLES_PIPE is not set
|
# CONFIG_EXAMPLES_PIPE is not set
|
||||||
# CONFIG_EXAMPLES_POPEN is not set
|
|
||||||
# CONFIG_EXAMPLES_POSIXSPAWN is not set
|
# CONFIG_EXAMPLES_POSIXSPAWN is not set
|
||||||
# CONFIG_EXAMPLES_POWERLED is not set
|
# CONFIG_EXAMPLES_POWERLED is not set
|
||||||
# CONFIG_EXAMPLES_POWERMONITOR is not set
|
# CONFIG_EXAMPLES_POWERMONITOR is not set
|
||||||
@@ -1673,7 +1669,6 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
|
|||||||
# CONFIG_EXAMPLES_SLCD is not set
|
# CONFIG_EXAMPLES_SLCD is not set
|
||||||
# CONFIG_EXAMPLES_SMART is not set
|
# CONFIG_EXAMPLES_SMART is not set
|
||||||
# CONFIG_EXAMPLES_SMART_TEST is not set
|
# CONFIG_EXAMPLES_SMART_TEST is not set
|
||||||
# CONFIG_EXAMPLES_SMP is not set
|
|
||||||
# CONFIG_EXAMPLES_SMPS is not set
|
# CONFIG_EXAMPLES_SMPS is not set
|
||||||
# CONFIG_EXAMPLES_STAT is not set
|
# CONFIG_EXAMPLES_STAT is not set
|
||||||
# CONFIG_EXAMPLES_TCPECHO is not set
|
# CONFIG_EXAMPLES_TCPECHO is not set
|
||||||
@@ -1834,9 +1829,7 @@ CONFIG_NSH_MMCSDSLOTNO=0
|
|||||||
# Configure Command Options
|
# Configure Command Options
|
||||||
#
|
#
|
||||||
CONFIG_NSH_VARS=y
|
CONFIG_NSH_VARS=y
|
||||||
# CONFIG_NSH_CMDOPT_DD_STATS is not set
|
|
||||||
CONFIG_NSH_CODECS_BUFSIZE=128
|
CONFIG_NSH_CODECS_BUFSIZE=128
|
||||||
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
|
|
||||||
CONFIG_NSH_PROC_MOUNTPOINT="/proc"
|
CONFIG_NSH_PROC_MOUNTPOINT="/proc"
|
||||||
CONFIG_NSH_FILEIOSIZE=512
|
CONFIG_NSH_FILEIOSIZE=512
|
||||||
CONFIG_NSH_STRERROR=y
|
CONFIG_NSH_STRERROR=y
|
||||||
@@ -1907,6 +1900,7 @@ CONFIG_READLINE_ECHO=y
|
|||||||
# CONFIG_SYSTEM_SUDOKU is not set
|
# CONFIG_SYSTEM_SUDOKU is not set
|
||||||
# CONFIG_SYSTEM_SYSTEM is not set
|
# CONFIG_SYSTEM_SYSTEM is not set
|
||||||
# CONFIG_SYSTEM_TEE is not set
|
# CONFIG_SYSTEM_TEE is not set
|
||||||
|
# CONFIG_SYSTEM_TERMCURSES is not set
|
||||||
# CONFIG_SYSTEM_UBLOXMODEM is not set
|
# CONFIG_SYSTEM_UBLOXMODEM is not set
|
||||||
# CONFIG_SYSTEM_VI is not set
|
# CONFIG_SYSTEM_VI is not set
|
||||||
# CONFIG_SYSTEM_ZMODEM is not set
|
# CONFIG_SYSTEM_ZMODEM is not set
|
||||||
@@ -1914,6 +1908,7 @@ CONFIG_READLINE_ECHO=y
|
|||||||
#
|
#
|
||||||
# Testing
|
# Testing
|
||||||
#
|
#
|
||||||
|
# CONFIG_TESTING_OSTEST is not set
|
||||||
# CONFIG_TESTING_UNITY is not set
|
# CONFIG_TESTING_UNITY is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -105,8 +105,12 @@
|
|||||||
#define GPIO_SPI2_CS_MS5611 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7)
|
#define GPIO_SPI2_CS_MS5611 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN7)
|
||||||
#define GPIO_SPI2_CS_FRAM (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN10)
|
#define GPIO_SPI2_CS_FRAM (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN10)
|
||||||
|
|
||||||
/* There are no DRDY on SPI 2. */
|
/* Define the Chip Selects for SPI4. */
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
# define BOARD_HAS_BUS_MANIFEST 1 // We support a bus manifest because spi 4 is optional
|
||||||
|
# define GPIO_SPI4_CS_1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN8) //ESP_RTS_PIN
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
/**
|
/**
|
||||||
* Define the ability to shut off off the sensor signals
|
* Define the ability to shut off off the sensor signals
|
||||||
* by changing the signals to inputs.
|
* by changing the signals to inputs.
|
||||||
@@ -128,14 +132,34 @@
|
|||||||
#define GPIO_DRDY_OFF_PORTC_PIN14 _PIN_OFF(GPIO_DRDY_PORTC_PIN14)
|
#define GPIO_DRDY_OFF_PORTC_PIN14 _PIN_OFF(GPIO_DRDY_PORTC_PIN14)
|
||||||
#define GPIO_DRDY_OFF_PORTE_PIN12 _PIN_OFF(GPIO_DRDY_PORTE_PIN12)
|
#define GPIO_DRDY_OFF_PORTE_PIN12 _PIN_OFF(GPIO_DRDY_PORTE_PIN12)
|
||||||
|
|
||||||
|
/* SPI 4 bus off. */
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
# define GPIO_SPI4_SCK_OFF _PIN_OFF(GPIO_SPI4_SCK)
|
||||||
|
# define GPIO_SPI4_MISO_OFF _PIN_OFF(GPIO_SPI4_MISO)
|
||||||
|
# define GPIO_SPI4_MOSI_OFF _PIN_OFF(GPIO_SPI4_MOSI)
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* N.B we do not have control over the SPI 2 buss powered devices
|
* N.B we do not have control over the SPI 2 buss powered devices
|
||||||
* so the the ms5611 is not resetable.
|
* so the the ms5611 is not resetable.
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PX4_SPI_BUS_SENSORS 1
|
#define PX4_SPI_BUS_SENSORS 1
|
||||||
#define PX4_SPI_BUS_RAMTRON 2
|
#define PX4_SPI_BUS_RAMTRON 2
|
||||||
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_RAMTRON
|
#define PX4_SPI_BUS_BARO PX4_SPI_BUS_RAMTRON
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
# define PX4_SPI_BUS_EXTERNAL 4
|
||||||
|
/* The mask passes to init the SPI bus pins
|
||||||
|
* N.B This works ONLY with buss numbers that are powers of 2
|
||||||
|
* Adding SPI3 would break this!
|
||||||
|
*/
|
||||||
|
# define SPI_BUS_INIT_MASK_EXT PX4_SPI_BUS_EXTERNAL
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
|
#define SPI_BUS_INIT_MASK (PX4_SPI_BUS_RAMTRON | PX4_SPI_BUS_SENSORS)
|
||||||
|
|
||||||
/* Use these in place of the uint32_t enumeration to select a specific SPI device on SPI1 */
|
/* Use these in place of the uint32_t enumeration to select a specific SPI device on SPI1 */
|
||||||
#define PX4_SPIDEV_GYRO PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 1)
|
#define PX4_SPIDEV_GYRO PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 1)
|
||||||
#define PX4_SPIDEV_ACCEL_MAG PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 2)
|
#define PX4_SPIDEV_ACCEL_MAG PX4_MK_SPI_SEL(PX4_SPI_BUS_SENSORS, 2)
|
||||||
@@ -158,6 +182,10 @@
|
|||||||
*/
|
*/
|
||||||
#define PX4_SPIDEV_BARO PX4_MK_SPI_SEL(PX4_SPI_BUS_BARO, 3)
|
#define PX4_SPIDEV_BARO PX4_MK_SPI_SEL(PX4_SPI_BUS_BARO, 3)
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
# define PX4_SPIDEV_EXTERNAL PX4_MK_SPI_SEL(PX4_SPI_BUS_EXTERNAL, 1)
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
/* I2C busses. */
|
/* I2C busses. */
|
||||||
#define PX4_I2C_BUS_EXPANSION 1
|
#define PX4_I2C_BUS_EXPANSION 1
|
||||||
#define PX4_I2C_BUS_LED PX4_I2C_BUS_EXPANSION
|
#define PX4_I2C_BUS_LED PX4_I2C_BUS_EXPANSION
|
||||||
@@ -281,6 +309,7 @@
|
|||||||
#define GPIO_SPEKTRUM_PWR_EN (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN4)
|
#define GPIO_SPEKTRUM_PWR_EN (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN4)
|
||||||
|
|
||||||
#define GPIO_8266_GPIO0 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN2)
|
#define GPIO_8266_GPIO0 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTE|GPIO_PIN2)
|
||||||
|
#define GPIO_8266_GPIO2 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN4)
|
||||||
#define GPIO_8266_PD (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN5)
|
#define GPIO_8266_PD (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN5)
|
||||||
#define GPIO_8266_RST (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN6)
|
#define GPIO_8266_RST (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN6)
|
||||||
|
|
||||||
|
|||||||
@@ -201,17 +201,35 @@ stm32_boardinitialize(void)
|
|||||||
stm32_configgpio(GPIO_SBUS_INV);
|
stm32_configgpio(GPIO_SBUS_INV);
|
||||||
stm32_configgpio(GPIO_SPEKTRUM_PWR_EN);
|
stm32_configgpio(GPIO_SPEKTRUM_PWR_EN);
|
||||||
|
|
||||||
|
stm32_configgpio(GPIO_8266_GPIO2);
|
||||||
stm32_configgpio(GPIO_8266_GPIO0);
|
stm32_configgpio(GPIO_8266_GPIO0);
|
||||||
stm32_configgpio(GPIO_8266_PD);
|
|
||||||
stm32_configgpio(GPIO_8266_RST);
|
|
||||||
|
|
||||||
// Safety - led on in led driver.
|
// Safety - led on in led driver.
|
||||||
stm32_configgpio(GPIO_BTN_SAFETY);
|
stm32_configgpio(GPIO_BTN_SAFETY);
|
||||||
stm32_configgpio(GPIO_RSSI_IN);
|
stm32_configgpio(GPIO_RSSI_IN);
|
||||||
stm32_configgpio(GPIO_PPM_IN);
|
stm32_configgpio(GPIO_PPM_IN);
|
||||||
|
|
||||||
|
int spi_init_mask = SPI_BUS_INIT_MASK;
|
||||||
|
|
||||||
|
#if defined(CONFIG_STM32_SPI4)
|
||||||
|
|
||||||
|
/* We have SPI4 is GPIO_8266_GPIO2 PB4 pin 3 Low */
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
spi_init_mask |= SPI_BUS_INIT_MASK_EXT;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
|
stm32_configgpio(GPIO_8266_PD);
|
||||||
|
stm32_configgpio(GPIO_8266_RST);
|
||||||
|
|
||||||
|
#if defined(CONFIG_STM32_SPI4)
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
// Configure SPI all interfaces GPIO.
|
// Configure SPI all interfaces GPIO.
|
||||||
stm32_spiinitialize(PX4_SPI_BUS_RAMTRON | PX4_SPI_BUS_SENSORS);
|
stm32_spiinitialize(spi_init_mask);
|
||||||
|
|
||||||
// Configure heater GPIO.
|
// Configure heater GPIO.
|
||||||
stm32_configgpio(GPIO_HEATER_INPUT);
|
stm32_configgpio(GPIO_HEATER_INPUT);
|
||||||
@@ -246,6 +264,9 @@ stm32_boardinitialize(void)
|
|||||||
static struct spi_dev_s *spi1;
|
static struct spi_dev_s *spi1;
|
||||||
static struct spi_dev_s *spi2;
|
static struct spi_dev_s *spi2;
|
||||||
static struct sdio_dev_s *sdio;
|
static struct sdio_dev_s *sdio;
|
||||||
|
#if defined(CONFIG_STM32_SPI4)
|
||||||
|
static struct spi_dev_s *spi4;
|
||||||
|
#endif
|
||||||
|
|
||||||
__EXPORT int board_app_initialize(uintptr_t arg)
|
__EXPORT int board_app_initialize(uintptr_t arg)
|
||||||
{
|
{
|
||||||
@@ -329,6 +350,29 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
|||||||
SPI_SELECT(spi2, SPIDEV_FLASH(0), false);
|
SPI_SELECT(spi2, SPIDEV_FLASH(0), false);
|
||||||
SPI_SELECT(spi2, PX4_SPIDEV_BARO, false);
|
SPI_SELECT(spi2, PX4_SPIDEV_BARO, false);
|
||||||
|
|
||||||
|
#if defined(CONFIG_STM32_SPI4)
|
||||||
|
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
syslog(LOG_INFO, "[boot] 8266_GPIO2 - Low Initialize SPI port 4 \n");
|
||||||
|
|
||||||
|
// Configure SPI-based devices.
|
||||||
|
spi4 = stm32_spibus_initialize(4);
|
||||||
|
|
||||||
|
if (!spi4) {
|
||||||
|
syslog(LOG_ERR, "[boot] FAILED to initialize SPI port 4\n");
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// Default SPI4 to 20 MHz and de-assert the known chip selects.
|
||||||
|
SPI_SETFREQUENCY(spi4, 20 * 1000 * 1000);
|
||||||
|
SPI_SETBITS(spi4, 8);
|
||||||
|
SPI_SETMODE(spi4, SPIDEV_MODE3);
|
||||||
|
SPI_SELECT(spi4, PX4_SPIDEV_EXTERNAL, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* defined(CONFIG_STM32_SPI4) */
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_MMCSD
|
#ifdef CONFIG_MMCSD
|
||||||
|
|
||||||
// First, get an instance of the SDIO interface.
|
// First, get an instance of the SDIO interface.
|
||||||
|
|||||||
@@ -60,6 +60,24 @@
|
|||||||
* Public Functions
|
* Public Functions
|
||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
|
__EXPORT bool board_has_bus(enum board_bus_types type, uint32_t bus)
|
||||||
|
{
|
||||||
|
bool rv = true;
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case BOARD_SPI_BUS:
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
rv = bus != PX4_SPI_BUS_EXTERNAL || (stm32_gpioread(GPIO_8266_GPIO2) == 0);
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BOARD_I2C_BUS:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* Name: stm32_spiinitialize
|
* Name: stm32_spiinitialize
|
||||||
*
|
*
|
||||||
@@ -96,6 +114,13 @@ __EXPORT void stm32_spiinitialize(int mask)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
|
||||||
|
if (mask & PX4_SPI_BUS_EXTERNAL) {
|
||||||
|
stm32_configgpio(GPIO_SPI4_CS_1); //add cs
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
}
|
}
|
||||||
|
|
||||||
__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
|
__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
|
||||||
@@ -179,6 +204,20 @@ __EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
__EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected)
|
||||||
|
{
|
||||||
|
if (devid == PX4_SPIDEV_EXTERNAL && stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
stm32_gpiowrite(GPIO_SPI4_CS_1, !selected); // add cs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, uint32_t devid)
|
||||||
|
{
|
||||||
|
return SPI_STATUS_PRESENT;
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
__EXPORT void board_spi_reset(int ms)
|
__EXPORT void board_spi_reset(int ms)
|
||||||
{
|
{
|
||||||
/* disable SPI bus 1 DRDY */
|
/* disable SPI bus 1 DRDY */
|
||||||
@@ -211,21 +250,52 @@ __EXPORT void board_spi_reset(int ms)
|
|||||||
stm32_gpiowrite(GPIO_SPI1_MISO_OFF, 0);
|
stm32_gpiowrite(GPIO_SPI1_MISO_OFF, 0);
|
||||||
stm32_gpiowrite(GPIO_SPI1_MOSI_OFF, 0);
|
stm32_gpiowrite(GPIO_SPI1_MOSI_OFF, 0);
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
|
||||||
|
/* disable SPI bus 4*/
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
stm32_configgpio(GPIO_SPI4_SCK_OFF);
|
||||||
|
stm32_configgpio(GPIO_SPI4_MISO_OFF);
|
||||||
|
stm32_configgpio(GPIO_SPI4_MOSI_OFF);
|
||||||
|
|
||||||
|
stm32_gpiowrite(GPIO_SPI4_SCK_OFF, 0);
|
||||||
|
stm32_gpiowrite(GPIO_SPI4_MISO_OFF, 0);
|
||||||
|
stm32_gpiowrite(GPIO_SPI4_MOSI_OFF, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
/* N.B we do not have control over the SPI 2 buss powered devices
|
/* N.B we do not have control over the SPI 2 buss powered devices
|
||||||
* so the the ms5611 is not resetable.
|
* so the the ms5611 is not resetable.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* set the sensor rail off (default) */
|
/* set the sensor rail off (default) */
|
||||||
stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN);
|
stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN);
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
/* set the periph rail off (default) for SPI4 */
|
||||||
|
stm32_configgpio(GPIO_PERIPH_3V3_EN);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
/* wait for the sensor rail to reach GND */
|
/* wait for the sensor rail to reach GND */
|
||||||
usleep(ms * 1000);
|
usleep(ms * 1000);
|
||||||
syslog(LOG_DEBUG, "reset done, %d ms\n", ms);
|
syslog(LOG_DEBUG, "reset done, %d ms\n", ms);
|
||||||
|
|
||||||
/* re-enable power */
|
/* re-enable power */
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
/* switch the periph rail back on */
|
||||||
|
stm32_gpiowrite(GPIO_PERIPH_3V3_EN, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
|
|
||||||
/* switch the sensor rail back on */
|
/* switch the sensor rail back on */
|
||||||
stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 1);
|
stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 1);
|
||||||
|
|
||||||
@@ -236,4 +306,15 @@ __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);
|
||||||
|
|
||||||
|
#ifdef CONFIG_STM32_SPI4
|
||||||
|
|
||||||
|
if (stm32_gpioread(GPIO_8266_GPIO2) == 0) {
|
||||||
|
stm32_spiinitialize(PX4_SPI_BUS_EXTERNAL);
|
||||||
|
stm32_configgpio(GPIO_SPI4_SCK);
|
||||||
|
stm32_configgpio(GPIO_SPI4_MISO);
|
||||||
|
stm32_configgpio(GPIO_SPI4_MOSI);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* CONFIG_STM32_SPI4 */
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1075,6 +1075,24 @@ __EXPORT bool px4_spi_bus_external(int bus);
|
|||||||
|
|
||||||
#endif /* BOARD_HAS_SIMPLE_HW_VERSIONING */
|
#endif /* BOARD_HAS_SIMPLE_HW_VERSIONING */
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* Name: board_has_bus
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
enum board_bus_types {
|
||||||
|
BOARD_SPI_BUS = 1,
|
||||||
|
BOARD_I2C_BUS = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
#if defined(BOARD_HAS_BUS_MANIFEST)
|
||||||
|
|
||||||
|
__EXPORT bool board_has_bus(enum board_bus_types type, uint32_t bus);
|
||||||
|
|
||||||
|
#else
|
||||||
|
# define board_has_bus(t, b) true
|
||||||
|
#endif /* BOARD_HAS_BUS_MANIFEST */
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* Name: board_hardfault_init
|
* Name: board_hardfault_init
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -79,10 +79,13 @@
|
|||||||
#include <board_config.h>
|
#include <board_config.h>
|
||||||
|
|
||||||
/* Configuration Constants */
|
/* Configuration Constants */
|
||||||
|
|
||||||
#if defined PX4_SPI_BUS_EXPANSION // crazyflie
|
#if defined PX4_SPI_BUS_EXPANSION // crazyflie
|
||||||
# define PMW3901_BUS PX4_SPI_BUS_EXPANSION
|
# define PMW3901_BUS PX4_SPI_BUS_EXPANSION
|
||||||
#elif defined PX4_SPI_BUS_EXTERNAL1 // fmu-v5
|
#elif defined PX4_SPI_BUS_EXTERNAL1 // fmu-v5
|
||||||
# define PMW3901_BUS PX4_SPI_BUS_EXTERNAL1
|
# define PMW3901_BUS PX4_SPI_BUS_EXTERNAL1
|
||||||
|
#elif defined PX4_SPI_BUS_EXTERNAL // fmu-v4 extspi
|
||||||
|
# define PMW3901_BUS PX4_SPI_BUS_EXTERNAL
|
||||||
#else
|
#else
|
||||||
# error "add the required spi bus from board_config.h here"
|
# error "add the required spi bus from board_config.h here"
|
||||||
#endif
|
#endif
|
||||||
@@ -91,6 +94,8 @@
|
|||||||
# define PMW3901_SPIDEV PX4_SPIDEV_EXPANSION_2
|
# define PMW3901_SPIDEV PX4_SPIDEV_EXPANSION_2
|
||||||
#elif defined PX4_SPIDEV_EXTERNAL1_1 // fmu-v5 ext CS1
|
#elif defined PX4_SPIDEV_EXTERNAL1_1 // fmu-v5 ext CS1
|
||||||
# define PMW3901_SPIDEV PX4_SPIDEV_EXTERNAL1_1
|
# define PMW3901_SPIDEV PX4_SPIDEV_EXTERNAL1_1
|
||||||
|
#elif defined PX4_SPIDEV_EXTERNAL // fmu-v4 extspi
|
||||||
|
# define PMW3901_SPIDEV PX4_SPIDEV_EXTERNAL
|
||||||
#else
|
#else
|
||||||
# error "add the required spi dev from board_config.h here"
|
# error "add the required spi dev from board_config.h here"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -94,7 +94,14 @@ SPI::init()
|
|||||||
|
|
||||||
/* attach to the spi bus */
|
/* attach to the spi bus */
|
||||||
if (_dev == nullptr) {
|
if (_dev == nullptr) {
|
||||||
_dev = px4_spibus_initialize(get_device_bus());
|
int bus = get_device_bus();
|
||||||
|
|
||||||
|
if (!board_has_bus(BOARD_SPI_BUS, bus)) {
|
||||||
|
ret = -ENOENT;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
_dev = px4_spibus_initialize(bus);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_dev == nullptr) {
|
if (_dev == nullptr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user