From aa5f91132df617c810ebf23da957b503a06df882 Mon Sep 17 00:00:00 2001 From: maxxir_w Date: Mon, 25 Mar 2019 08:54:14 +0400 Subject: [PATCH] Updated SPI code driver --- .../globals.h | 4 ++ .../mmc_avr.c | 19 ++++++--- .../spi.c | 48 ++++------------------ .../spi.h | 40 ------------------ 4 files changed, 24 insertions(+), 87 deletions(-) diff --git a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/globals.h b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/globals.h index 74ed984..2a0cafd 100644 --- a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/globals.h +++ b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/globals.h @@ -71,6 +71,10 @@ extern const char ftpd_pass[]; #define IP_WORK +//SPI CLOCK 4 or 8Mhz +#define SPI_4_MHZ +//#define SPI_8_MHZ + extern unsigned long millis(void); extern int freeRam (void); extern char uart0_receive(void); diff --git a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/mmc_avr.c b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/mmc_avr.c index 22ffcb8..2d59360 100644 --- a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/mmc_avr.c +++ b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/mmc_avr.c @@ -19,7 +19,7 @@ #include #include "diskio.h" - +#include "globals.h" /* Port controls (Platform dependent) */ @@ -113,17 +113,24 @@ void power_on (void) DDRB |= _BV(MOSI) | _BV(SCK) | _BV(CSN); PORTB |= _BV(MOSI) | _BV(SCK); + +#if defined(SPI_8_MHZ) /* Enables SPI, selects "master", clock rate FCK / 2, and SPI mode 0 */ // SPI 8Mhz SPCR = _BV(SPE) | _BV(MSTR); - SPSR = _BV(SPI2X); - + SPSR = _BV(SPI2X); //FCK / 2 - 8Mhz +#elif defined (SPI_4_MHZ) + /* Enables SPI, selects "master", clock rate FCK / 4, and SPI mode 0 */ + // SPI 4Mhz + SPCR = _BV(SPE) | _BV(MSTR); + SPSR = 0x0; //FCK / 4 - 4Mhz +#else /* Enables SPI, selects "master", clock rate FCK / 4, and SPI mode 0 */ // SPI 4Mhz - /* SPCR = _BV(SPE) | _BV(MSTR); - SPSR = 0x0; - */ + SPSR = 0x0; //FCK / 4 - 4Mhz +#endif + } static diff --git a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.c b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.c index 30986d5..47d9c33 100644 --- a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.c +++ b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.c @@ -1,45 +1,6 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - #include #include "spi.h" -//#include "contiki-conf.h" - -/* - * On the Tmote sky access to I2C/SPI/UART0 must always be - * exclusive. Set spi_busy so that interrupt handlers can check if - * they are allowed to use the bus or not. Only the CC2420 radio needs - * this in practice. - * - */ -unsigned char spi_busy = 0; +#include "globals.h" /* * Initialize SPI bus. @@ -77,8 +38,13 @@ spi_init(void) /* Enables SPI, selects "master", clock rate FCK / 4 - 4Mhz, and SPI mode 0 */ SPCR = _BV(SPE) | _BV(MSTR); - //SPSR = 0x0; //FCK / 4 - 4Mhz +#if defined(SPI_8_MHZ) SPSR = _BV(SPI2X); //FCK / 2 - 8Mhz +#elif defined (SPI_4_MHZ) + SPSR = 0x0; //FCK / 4 - 4Mhz +#else + SPSR = 0x0; //FCK / 4 - 4Mhz +#endif } diff --git a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.h b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.h index e4f024b..7c1da0e 100644 --- a/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.h +++ b/17_m1284p_BTLD_WIZNET_HTTPD_FTPD_FATFS_SDCARD/spi.h @@ -1,41 +1,3 @@ -/* - * Copyright (c) 2010, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -/** - * \file - * Basic SPI macros - * \author - * Joakim Eriksson - * Niclas Finne - */ - #ifndef SPI_H_ #define SPI_H_ @@ -92,8 +54,6 @@ #define SPI_WAITFORTx_ENDED() #endif /* SPI_WAITFORTxREADY */ -extern unsigned char spi_busy; - void spi_init(void); /* Write one character to SPI */