From 62eace05ebbb6a96ee4ad34e996e56870c53d892 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sun, 3 Jun 2012 16:09:59 +0000 Subject: SD card now works on the PIC32MX7 MMB board git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4799 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/configs/pic32mx7mmb/README.txt | 32 ++++++++++++++++--------------- nuttx/configs/pic32mx7mmb/include/board.h | 4 ++-- nuttx/configs/pic32mx7mmb/nsh/defconfig | 4 ++-- nuttx/configs/pic32mx7mmb/src/up_nsh.c | 17 ++++++++++++---- nuttx/configs/pic32mx7mmb/src/up_spi.c | 2 +- 5 files changed, 35 insertions(+), 24 deletions(-) (limited to 'nuttx/configs') diff --git a/nuttx/configs/pic32mx7mmb/README.txt b/nuttx/configs/pic32mx7mmb/README.txt index 3f47e0233..197602c7a 100644 --- a/nuttx/configs/pic32mx7mmb/README.txt +++ b/nuttx/configs/pic32mx7mmb/README.txt @@ -572,10 +572,17 @@ Where is one of the following: The OS test produces all of its test output on the serial console. This configuration has UART1 enabled as a serial console. - USB Configuations. - ----------------- + SD Card Support + --------------- + SD card support is built into this example by default: + + CONFIG_PIC32MX_SPI1=y + CONFIG_NSH_ARCHINIT=y + + USB Configurations. + ------------------ Several USB device configurations can be enabled and included - as NSH built-in built in functions. + as NSH built-in built in functions. USB is *not* enabled by default. To use USB device, connect the starter kit to the host using a cable with a Type-B micro-plug to the starter kit’s micro-A/B port J5, located @@ -612,11 +619,9 @@ Where is one of the following: to enable the USB mass storage device. However, this device cannot work until support for the SD card is also incorporated. - Networking Configuations. - ------------------------- - Several Networking configurations can be enabled and included - as NSH built-in built in functions. The following additional - configuration settings are required: + Networking Configurations. + -------------------------- + Networking is enabled by default in this configuration: CONFIG_NET=y : Enable networking support CONFIG_PIC32MX_ETHERNET=y : Enable the PIC32 Ethernet driver @@ -628,6 +633,8 @@ Where is one of the following: CONFIG_NSH_IPADDR=(10<<24|0<<16|0<<8|2) : Target IP address 10.0.0.2 CONFIG_NSH_DRIPADDR=(10<<24|0<<16|0<<8|1) : Host IP address 10.0.0.1 + This will probably need to be customized for your network. + NOTES: 1. This logic will assume that a network is connected. During its initialization, it will try to negotiate the link speed. If you have @@ -636,19 +643,14 @@ Where is one of the following: before the networking finally gives up and decides that no network is available. - 2. To add SPI-based support for the SD card slot: - - CONFIG_PIC32MX_SPI1=y - CONFIG_NSH_ARCHINIT=y - - 3. This example can support an FTP client. In order to build in FTP client + 2. This example can support an FTP client. In order to build in FTP client support simply uncomment the following lines in the appconfig file (before configuring) or in the apps/.config file (after configuring): #CONFIGURED_APPS += netutils/ftpc #CONFIGURED_APPS += examples/ftpc - 4. This example can support an FTP server. In order to build in FTP server + 3. This example can support an FTP server. In order to build in FTP server support simply uncomment the following lines in the appconfig file (before configuring) or in the apps/.config file (after configuring): diff --git a/nuttx/configs/pic32mx7mmb/include/board.h b/nuttx/configs/pic32mx7mmb/include/board.h index a0a161553..e8b244283 100644 --- a/nuttx/configs/pic32mx7mmb/include/board.h +++ b/nuttx/configs/pic32mx7mmb/include/board.h @@ -87,8 +87,8 @@ * PBCLOCK = CPU_CLOCK / PBDIV */ -#define BOARD_PBDIV 1 /* Peripheral clock divisor (PBDIV) */ -#define BOARD_PBCLOCK 80000000 /* Peripheral clock (PBCLK = 80MHz/1) */ +#define BOARD_PBDIV 2 /* Peripheral clock divisor (PBDIV) */ +#define BOARD_PBCLOCK 40000000 /* Peripheral clock (PBCLK = 80MHz/2) */ /* Watchdog pre-scaler (re-visit) */ diff --git a/nuttx/configs/pic32mx7mmb/nsh/defconfig b/nuttx/configs/pic32mx7mmb/nsh/defconfig index 0e63ccfe8..9105e946e 100644 --- a/nuttx/configs/pic32mx7mmb/nsh/defconfig +++ b/nuttx/configs/pic32mx7mmb/nsh/defconfig @@ -140,7 +140,7 @@ CONFIG_PIC32MX_OC4=n CONFIG_PIC32MX_OC5=n CONFIG_PIC32MX_I2C1=n CONFIG_PIC32MX_I2C2=n -CONFIG_PIC32MX_SPI1=n +CONFIG_PIC32MX_SPI1=y CONFIG_PIC32MX_SPI2=n CONFIG_PIC32MX_SPI3=n CONFIG_PIC32MX_SPI4=n @@ -1330,7 +1330,7 @@ CONFIG_NSH_ROMFSETC=n CONFIG_NSH_CONSOLE=y #CONFIG_NSH_CONDEV="/dev/ttyS1" CONFIG_NSH_TELNET=n -CONFIG_NSH_ARCHINIT=n +CONFIG_NSH_ARCHINIT=y CONFIG_NSH_IOBUFFER_SIZE=512 CONFIG_NSH_DHCPC=n CONFIG_NSH_NOMAC=n diff --git a/nuttx/configs/pic32mx7mmb/src/up_nsh.c b/nuttx/configs/pic32mx7mmb/src/up_nsh.c index 0d022531f..a9d26b6be 100644 --- a/nuttx/configs/pic32mx7mmb/src/up_nsh.c +++ b/nuttx/configs/pic32mx7mmb/src/up_nsh.c @@ -229,13 +229,13 @@ static int nsh_waiter(int argc, char *argv[]) #ifdef CONFIG_NSH_HAVEMMCSD static int nsh_sdinitialize(void) { - FAR struct spi_dev_s *ssp; + FAR struct spi_dev_s *spi; int ret; /* Get the SPI port */ - ssp = up_spiinitialize(CONFIG_NSH_MMCSDSPIPORTNO); - if (!ssp) + spi = up_spiinitialize(CONFIG_NSH_MMCSDSPIPORTNO); + if (!spi) { message("nsh_archinitialize: Failed to initialize SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); @@ -246,10 +246,19 @@ static int nsh_sdinitialize(void) message("Successfully initialized SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); + /* The SPI should be in 8-bit (default) and mode2: CKP=1, CKE=0. + * The MMC/SD driver will control the SPI frequency. WARNING: + * this is not the right way to do this... this should be done + * the MMC/SD driver: Other device on SPI1 may need other mode + * settings. + */ + + SPI_SETMODE(spi, SPIDEV_MODE2); + /* Bind the SPI port to the slot */ ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, - CONFIG_NSH_MMCSDSLOTNO, ssp); + CONFIG_NSH_MMCSDSLOTNO, spi); if (ret < 0) { message("nsh_sdinitialize: " diff --git a/nuttx/configs/pic32mx7mmb/src/up_spi.c b/nuttx/configs/pic32mx7mmb/src/up_spi.c index c0a14a649..a15881868 100644 --- a/nuttx/configs/pic32mx7mmb/src/up_spi.c +++ b/nuttx/configs/pic32mx7mmb/src/up_spi.c @@ -127,7 +127,7 @@ void weak_function pic32mx_spiinitialize(void) * 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/SSP chip select + * 1. Provide logic in pic32mx_boardinitialize() to configure SPI chip select * pins. * 2. Provide pic32mx_spiNselect() and pic32mx_spiNstatus() functions * in your board-specific logic. These functions will perform chip selection -- cgit v1.2.3