mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
crazyflie: support for sd card board via SPI
This commit is contained in:
parent
818a6759d4
commit
b822966e8e
@ -988,8 +988,8 @@ fi
|
||||
|
||||
sh /etc/init.d/rc.logging
|
||||
|
||||
vl53lxx start
|
||||
pmw3901 start
|
||||
#vl53lxx start
|
||||
#pmw3901 start
|
||||
|
||||
|
||||
# End of autostart
|
||||
|
||||
@ -32,6 +32,7 @@ set(config_module_list
|
||||
systemcmds/ver
|
||||
systemcmds/hardfault_log
|
||||
systemcmds/topic_listener
|
||||
systemcmds/sd_bench
|
||||
|
||||
#
|
||||
# General system control
|
||||
|
||||
@ -880,7 +880,17 @@ CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0"
|
||||
# CONFIG_RGBLED is not set
|
||||
# CONFIG_PCA9635PW is not set
|
||||
# CONFIG_NCP5623C is not set
|
||||
# CONFIG_MMCSD is not set
|
||||
|
||||
|
||||
#
|
||||
# SD Card Support
|
||||
#
|
||||
CONFIG_MMCSD=y
|
||||
CONFIG_MMCSD_NSLOTS=1
|
||||
CONFIG_MMCSD_SPI=y
|
||||
CONFIG_MMCSD_SPICLOCK=20000000
|
||||
CONFIG_MMCSD_SPIMODE=0
|
||||
|
||||
# CONFIG_MODEM is not set
|
||||
CONFIG_MTD=y
|
||||
|
||||
@ -1104,8 +1114,9 @@ CONFIG_FS_WRITABLE=y
|
||||
CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
|
||||
# CONFIG_FS_RAMMAP is not set
|
||||
CONFIG_FS_FAT=y
|
||||
# CONFIG_FAT_LCNAMES is not set
|
||||
# CONFIG_FAT_LFN is not set
|
||||
CONFIG_FAT_LCNAMES=y
|
||||
CONFIG_FAT_LFN=y
|
||||
CONFIG_FAT_MAXFNAME=32
|
||||
# CONFIG_FS_FATTIME is not set
|
||||
# CONFIG_FAT_FORCE_INDIRECT is not set
|
||||
# CONFIG_FAT_DMAMEMORY is not set
|
||||
@ -1490,6 +1501,8 @@ CONFIG_NSH_DISABLE_UNAME=y
|
||||
CONFIG_NSH_DISABLE_WGET=y
|
||||
CONFIG_NSH_DISABLE_XD=y
|
||||
CONFIG_NSH_MMCSDMINOR=0
|
||||
CONFIG_NSH_MMCSDSLOTNO=0
|
||||
CONFIG_NSH_MMCSDSPIPORTNO=1
|
||||
|
||||
#
|
||||
# Configure Command Options
|
||||
|
||||
@ -111,9 +111,9 @@
|
||||
#define PX4_SPI_BUS_EXPANSION 1
|
||||
|
||||
/* SPI1 CS */
|
||||
#define GPIO_SPI1_CS0_EXT /* PC12 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN12)
|
||||
#define GPIO_SPI1_CS1_EXT /* PB4 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN4)
|
||||
#define GPIO_SPI1_CS2_EXT /* PB5 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN5)
|
||||
#define GPIO_SPI1_CS0_EXT /* PC12 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN12)
|
||||
#define GPIO_SPI1_CS1_EXT /* PB4 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN4)
|
||||
#define GPIO_SPI1_CS2_EXT /* PB5 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN5)
|
||||
|
||||
#define PX4_FLOW_BUS_CS_GPIO { GPIO_SPI1_CS0_EXT, GPIO_SPI1_CS1_EXT, GPIO_SPI1_CS2_EXT }
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
#include <nuttx/spi/spi.h>
|
||||
#include <arch/board/board.h>
|
||||
#include <systemlib/px4_macros.h>
|
||||
#include <nuttx/mmcsd.h>
|
||||
|
||||
#include <up_arch.h>
|
||||
#include <chip.h>
|
||||
@ -20,6 +21,8 @@
|
||||
#include "board_config.h"
|
||||
#include <systemlib/err.h>
|
||||
|
||||
//#include "stm32.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
@ -65,8 +68,7 @@ __EXPORT int stm32_spi_bus_initialize(void)
|
||||
{
|
||||
/* Configure SPI-based devices */
|
||||
|
||||
/* Get the SPI port for the Sensors */
|
||||
|
||||
/* Get the external SPI port */
|
||||
spi_expansion = stm32_spibus_initialize(PX4_SPI_BUS_EXPANSION);
|
||||
|
||||
if (!spi_expansion) {
|
||||
@ -74,16 +76,17 @@ __EXPORT int stm32_spi_bus_initialize(void)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* Default PX4_SPI_BUS_SENSORS to 1MHz and de-assert the known chip selects. */
|
||||
//#ifdef CONFIG_MMCSD
|
||||
int ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, CONFIG_NSH_MMCSDSLOTNO, spi_expansion);
|
||||
|
||||
SPI_SETFREQUENCY(spi_expansion, 10000000);
|
||||
SPI_SETBITS(spi_expansion, 8);
|
||||
SPI_SETMODE(spi_expansion, SPIDEV_MODE3);
|
||||
|
||||
for (int cs = PX4_FLOW_BUS_FIRST_CS; cs <= PX4_FLOW_BUS_LAST_CS; cs++) {
|
||||
SPI_SELECT(spi_expansion, cs, false);
|
||||
if (ret != OK) {
|
||||
//message("[boot] FAILED to bind SPI port 1 to the MMCSD driver\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
//#endif
|
||||
|
||||
|
||||
return OK;
|
||||
|
||||
}
|
||||
@ -101,7 +104,7 @@ __EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool s
|
||||
/* SPI select is active low, so write !selected to select the device */
|
||||
|
||||
int sel = (int) devid;
|
||||
ASSERT(PX4_SPI_BUS_ID(sel) == PX4_SPI_BUS_EXPANSION);
|
||||
//ASSERT(PX4_SPI_BUS_ID(sel) == PX4_SPI_BUS_EXPANSION);
|
||||
|
||||
/* Making sure the other peripherals are not selected */
|
||||
|
||||
|
||||
@ -77,8 +77,13 @@
|
||||
#include <board_config.h>
|
||||
|
||||
/* Configuration Constants */
|
||||
#ifdef PX4_SPI_BUS_EXPANSION
|
||||
#define PMW3901_BUS PX4_SPI_BUS_EXPANSION /* fmu-v4pro: PX4_SPI_BUS_EXT1 | fmu-v5: PX4_SPI_BUS_EXTERNAL1 */
|
||||
#endif
|
||||
|
||||
#ifdef PX4_SPIDEV_EXPANSION_2
|
||||
#define PMW3901_SPIDEV PX4_SPIDEV_EXPANSION_2 /* fmu-v4pro: PX4_SPIDEV_EXT0 | fmu-v5: PX4_SPIDEV_EXTERNAL1_1 */
|
||||
#endif
|
||||
|
||||
#define PMW3901_SPI_BUS_SPEED (2000000L) // 2MHz
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user