summaryrefslogtreecommitdiff
path: root/nuttx/configs/pic32-starterkit
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-10-10 23:05:59 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-10-10 23:05:59 +0000
commitef5a403a600202cc899811ad933c70cc2df08d4b (patch)
treeac20e4a8767b2a674cf03f80b07f82bd8453f9fc /nuttx/configs/pic32-starterkit
parentf5ceed6eb99ef75a3943ff291ae75da5580eaef8 (diff)
downloadpx4-nuttx-ef5a403a600202cc899811ad933c70cc2df08d4b.tar.gz
px4-nuttx-ef5a403a600202cc899811ad933c70cc2df08d4b.tar.bz2
px4-nuttx-ef5a403a600202cc899811ad933c70cc2df08d4b.zip
Misc PIC32 clean-up
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4038 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/pic32-starterkit')
-rw-r--r--nuttx/configs/pic32-starterkit/README.txt4
-rw-r--r--nuttx/configs/pic32-starterkit/include/board.h45
-rw-r--r--nuttx/configs/pic32-starterkit/src/starterkit_internal.h24
-rw-r--r--nuttx/configs/pic32-starterkit/src/up_boot.c3
-rw-r--r--nuttx/configs/pic32-starterkit/src/up_leds.c27
-rw-r--r--nuttx/configs/pic32-starterkit/src/up_spi.c117
6 files changed, 162 insertions, 58 deletions
diff --git a/nuttx/configs/pic32-starterkit/README.txt b/nuttx/configs/pic32-starterkit/README.txt
index 0f53dc3d9..a4e98054a 100644
--- a/nuttx/configs/pic32-starterkit/README.txt
+++ b/nuttx/configs/pic32-starterkit/README.txt
@@ -55,6 +55,7 @@ Contents
Configurations
PIC32MX795F512L Pin Out
+PIC32MX795F512L Pin Out
=======================
LEFT SIDE, TOP-TO-BOTTOM (if pin 1 is in upper left)
@@ -529,7 +530,10 @@ PIC32MX Configuration Options
CONFIG_PIC32MX_I2C3 - I2C 3
CONFIG_PIC32MX_I2C4 - I2C 4
CONFIG_PIC32MX_I2C5 - I2C 5
+ CONFIG_PIC32MX_SPI1 - SPI 1
CONFIG_PIC32MX_SPI2 - SPI 2
+ CONFIG_PIC32MX_SPI3 - SPI 3
+ CONFIG_PIC32MX_SPI4 - SPI 4
CONFIG_PIC32MX_UART1 - UART 1
CONFIG_PIC32MX_UART2 - UART 2
CONFIG_PIC32MX_UART3 - UART 3
diff --git a/nuttx/configs/pic32-starterkit/include/board.h b/nuttx/configs/pic32-starterkit/include/board.h
index d5f71f97a..f3d631e1e 100644
--- a/nuttx/configs/pic32-starterkit/include/board.h
+++ b/nuttx/configs/pic32-starterkit/include/board.h
@@ -84,24 +84,37 @@
#define BOARD_WD_PRESCALER 8 /* Watchdog pre-scaler */
/* LED definitions **********************************************************/
-/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
- * controllable by software. Four are controllable by software:
+/* The PIC32 starter kit has 3 user LEDs
*
- * D7 "USB" Yellow RD7 Low illuminates
- * D8 "SD" Yellow RD6 Low illuminates
- * D9 "Flash" Yellow RF0 Low illuminates
- * D10 "Error" Red RF1 Low illuminates
+ * RD0 User LED D4 (high illuminates)
+ * RD2 User LED D5 (high illuminates)
+ * RD1 User LED D6 (high illuminates)
+ *
+ * There are 5 LEDs available on the MEB:
+ *
+ * RD1 LED1
+ * RD2 LED2
+ * RD3 LED3
+ * RC1 LED4
+ * RC2 LED5
+ */
+
+#define LED_STARTED 0
+#define LED_HEAPALLOCATE 1
+#define LED_IRQSENABLED 2
+#define LED_STACKCREATED 3
+#define LED_INIRQ 4
+#define LED_SIGNAL 5
+#define LED_ASSERTION 6
+#define LED_PANIC 7
+
+/* Switch definitions *******************************************************/
+/* The PIC32 start kit has 3 switches:
+ *
+ * RD7 Switch SW2 (low when closed)
+ * RD6 Switch SW1 (low when closed)
+ * RD13 Switch SW3 (low when closed)
*/
- /* ON OFF */
- /* USB SD FLASH ERROR USB SD FLASH ERROR */
-#define LED_STARTED 0 /* OFF OFF OFF OFF --- --- --- --- */
-#define LED_HEAPALLOCATE 1 /* ON OFF N/C N/C --- --- --- --- */
-#define LED_IRQSENABLED 2 /* OFF ON N/C N/C --- --- --- --- */
-#define LED_STACKCREATED 3 /* ON ON N/C N/C --- --- --- --- */
-#define LED_INIRQ 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
-#define LED_SIGNAL 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
-#define LED_ASSERTION 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
-#define LED_PANIC 5 /* N/C N/C N/C ON N/C N/C N/C OFF */
/****************************************************************************
* Public Types
diff --git a/nuttx/configs/pic32-starterkit/src/starterkit_internal.h b/nuttx/configs/pic32-starterkit/src/starterkit_internal.h
index 5fc26caaa..f9cd9679a 100644
--- a/nuttx/configs/pic32-starterkit/src/starterkit_internal.h
+++ b/nuttx/configs/pic32-starterkit/src/starterkit_internal.h
@@ -46,14 +46,26 @@
* Pre-Processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
+/* The PIC32 starter kit has 3 user LEDs
+ *
+ * RD0 User LED D4 (high illuminates)
+ * RD2 User LED D5 (high illuminates)
+ * RD1 User LED D6 (high illuminates)
+ *
+ * There are 5 LEDs available on the MEB:
+ *
+ * RD1 LED1
+ * RD2 LED2
+ * RD3 LED3
+ * RC1 LED4
+ * RC2 LED5
+ */
-/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
- * controllable by software. Four are controllable by software:
+/* The PIC32 start kit has 3 switches:
*
- * D7 "USB" Yellow RD7 Low illuminates
- * D8 "SD" Yellow RD6 Low illuminates
- * D9 "Flash" Yellow RF0 Low illuminates
- * D10 "Error" Red RF1 Low illuminates
+ * RD7 Switch SW2 (low when closed)
+ * RD6 Switch SW1 (low when closed)
+ * RD13 Switch SW3 (low when closed)
*/
/****************************************************************************
diff --git a/nuttx/configs/pic32-starterkit/src/up_boot.c b/nuttx/configs/pic32-starterkit/src/up_boot.c
index 5a88a98b7..2b357993c 100644
--- a/nuttx/configs/pic32-starterkit/src/up_boot.c
+++ b/nuttx/configs/pic32-starterkit/src/up_boot.c
@@ -78,7 +78,8 @@ void pic32mx_boardinitialize(void)
* function pic32mx_spiinitialize() has been brought into the link.
*/
-#if defined(CONFIG_PIC32MX_SPI2)
+#if defined(CONFIG_PIC32MX_SPI1) || defined(CONFIG_PIC32MX_SPI2) || \
+ defined(CONFIG_PIC32MX_SPI3) || defined(CONFIG_PIC32MX_SPI4)
if (pic32mx_spiinitialize)
{
pic32mx_spiinitialize();
diff --git a/nuttx/configs/pic32-starterkit/src/up_leds.c b/nuttx/configs/pic32-starterkit/src/up_leds.c
index ff2fffa92..0dd89dc46 100644
--- a/nuttx/configs/pic32-starterkit/src/up_leds.c
+++ b/nuttx/configs/pic32-starterkit/src/up_leds.c
@@ -58,24 +58,19 @@
/****************************************************************************
* Definitions
****************************************************************************/
-/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
- * controllable by software. Four are controllable by software:
+/* The PIC32 starter kit has 3 user LEDs
*
- * D7 "USB" Yellow RD7 Low illuminates
- * D8 "SD" Yellow RD6 Low illuminates
- * D9 "Flash" Yellow RF0 Low illuminates
- * D10 "Error" Red RF1 Low illuminates
+ * RD0 User LED D4 (high illuminates)
+ * RD2 User LED D5 (high illuminates)
+ * RD1 User LED D6 (high illuminates)
*
- * ON OFF
- * USB SD FLASH ERROR USB SD FLASH ERROR
- * LED_STARTED 0 OFF OFF OFF OFF --- --- --- ---
- * LED_HEAPALLOCATE 1 ON OFF N/C N/C --- --- --- ---
- * LED_IRQSENABLED 2 OFF ON N/C N/C --- --- --- ---
- * LED_STACKCREATED 3 ON ON N/C N/C --- --- --- ---
- * LED_INIRQ 4 N/C N/C ON N/C N/C N/C OFF N/C
- * LED_SIGNAL 4 N/C N/C ON N/C N/C N/C OFF N/C
- * LED_ASSERTION 4 N/C N/C ON N/C N/C N/C OFF N/C
- * LED_PANIC 5 N/C N/C N/C ON N/C N/C N/C OFF
+ * There are 5 LEDs available on the MEB:
+ *
+ * RD1 LED1
+ * RD2 LED2
+ * RD3 LED3
+ * RC1 LED4
+ * RC2 LED5
*/
/* Enables debug output from this file (needs CONFIG_DEBUG with
diff --git a/nuttx/configs/pic32-starterkit/src/up_spi.c b/nuttx/configs/pic32-starterkit/src/up_spi.c
index c32c27a2b..52d46af89 100644
--- a/nuttx/configs/pic32-starterkit/src/up_spi.c
+++ b/nuttx/configs/pic32-starterkit/src/up_spi.c
@@ -52,7 +52,8 @@
#include "pic32mx-internal.h"
#include "starterkit_internal.h"
-#if defined(CONFIG_PIC32MX_SPI2)
+#if defined(CONFIG_PIC32MX_SPI1) || defined(CONFIG_PIC32MX_SPI2) || \
+ defined(CONFIG_PIC32MX_SPI3) || defined(CONFIG_PIC32MX_SPI4)
/************************************************************************************
* Definitions
@@ -95,30 +96,31 @@
void weak_function pic32mx_sspinitialize(void)
{
- /* Configure the SPI2 chip select GPIOs */
+ /* Configure the SPI chip select GPIOs */
-#ifdef CONFIG_PIC32MX_SPI2
-# warning "Missing logic"
-#endif
+#warning "Missing logic"
}
/************************************************************************************
- * Name: pic32mx_spi2select and pic32mx_spi2status
+ * Name: pic32mx_spiNselect, pic32mx_spiNstatus, and pic32mx_spiNcmddata
*
* Description:
- * The external functions, pic32mx_spi2select and pic32mx_spi2status
- * must be provided by board-specific logic. They are implementations of the select
- * and status methods of the SPI interface defined by struct spi_ops_s (see
- * include/nuttx/spi.h). All other methods (including up_spiinitialize())
- * are provided by common PIC32MX logic. To use this common SPI logic on your
- * board:
+ * These external functions must be provided by board-specific logic. They are
+ * implementations of the select, status, and cmddata methods of the SPI interface
+ * defined by struct spi_ops_s (see include/nuttx/spi.h). All other methods
+ * including up_spiinitialize()) are provided by common PIC32MX logic. To use
+ * this common SPI logic on your board:
*
- * 1. Provide logic in pic32mx_boardinitialize() to configure SPI/SPI chip select
+ * 1. Provide logic in pic32mx_boardinitialize() to configure SPI/SSP chip select
* pins.
- * 2. Provide pic32mx_spi2select() and pic32mx_spi2status() functions
+ * 2. Provide pic32mx_spiNselect() and pic32mx_spiNstatus() functions
* in your board-specific logic. These functions will perform chip selection
* and status operations using GPIOs in the way your board is configured.
- * 3. Add a calls to up_spiinitialize() in your low level application
+ * 2. If CONFIG_SPI_CMDDATA is defined in the NuttX configuration, provide
+ * pic32mx_spiNcmddata() functions in your board-specific logic. These
+ * functions will perform cmd/data selection operations using GPIOs in the way
+ * your board is configured.
+ * 3. Add a call to up_spiinitialize() in your low level application
* initialization logic
* 4. The handle returned by up_spiinitialize() may then be used to bind the
* SPI driver to higher level logic (e.g., calling
@@ -127,18 +129,95 @@ void weak_function pic32mx_sspinitialize(void)
*
************************************************************************************/
-#ifdef CONFIG_PIC32MX_SPI2
-void pic32mx_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
+struct spi_dev_s;
+enum spi_dev_e;
+
+#ifdef CONFIG_PIC32MX_SPI1
+void pic32mx_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
+{
+ sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
+#warning "Missing logic"
+}
+
+uint8_t pic32mx_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
+{
+ sspdbg("Returning nothing\n");
+#warning "Missing logic"
+ return 0;
+}
+#ifdef CONFIG_SPI_CMDDATA
+int pic32mx_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
+{
+#warning "Missing logic"
+ return 0;
+}
+#endif
+#endif
+
+#ifdef CONFIG_PIC31MX_SPI1
+void pic31mx_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
+{
+ sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
+#warning "Missing logic"
+}
+
+uint8_t pic31mx_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
+{
+ sspdbg("Returning nothing\n");
+#warning "Missing logic"
+ return 0;
+}
+#ifdef CONFIG_SPI_CMDDATA
+int pic31mx_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
+{
+#warning "Missing logic"
+ return 0;
+}
+#endif
+#endif
+
+#ifdef CONFIG_PIC31MX_SPI3
+void pic32mx_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
+{
+ sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
+#warning "Missing logic"
+}
+
+uint8_t pic32mx_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
+{
+ sspdbg("Returning nothing\n");
+#warning "Missing logic"
+ return 0;
+}
+#ifdef CONFIG_SPI_CMDDATA
+int pic32mx_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
+{
+#warning "Missing logic"
+ return 0;
+}
+#endif
+#endif
+
+#ifdef CONFIG_PIC32MX_SPI4
+void pic32mx_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
{
sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
#warning "Missing logic"
}
-uint8_t pic32mx_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
+uint8_t pic32mx_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
{
sspdbg("Returning nothing\n");
#warning "Missing logic"
return 0;
}
+#ifdef CONFIG_SPI_CMDDATA
+int pic32mx_spi4cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
+{
+#warning "Missing logic"
+ return 0;
+}
+#endif
#endif
-#endif /* CONFIG_PIC32MX_SPI2 */
+
+#endif /* CONFIG_PIC32MX_SPI1..4 */