X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/86e6ed7f31d29fa3d2aea1f6c40aa4647fce2690..03ee87b35abdb8b92e8b55ec040fa943f9a6786c:/LUFA/Drivers/Board/Dataflash.h diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h index e58828c5b..3174f1b6c 100644 --- a/LUFA/Drivers/Board/Dataflash.h +++ b/LUFA/Drivers/Board/Dataflash.h @@ -1,21 +1,21 @@ /* LUFA Library - Copyright (C) Dean Camera, 2009. + Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ /* - Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -48,7 +48,8 @@ * - None * * \section Module Description - * Functions, macros, variables, enums and types related to the control of board Dataflash ICs. + * Dataflash driver. This module provides an easy to use interface for the Dataflash ICs located on many boards, + * for the storage of large amounts of data into the Dataflash's non-volatile memory. * * If the BOARD value is set to BOARD_USER, this will include the /Board/Dataflash.h file in the user project * directory. Otherwise, it will include the appropriate built in board driver header file. @@ -62,7 +63,6 @@ /* Macros: */ #if !defined(__DOXYGEN__) #define INCLUDE_FROM_DATAFLASH_H - #define INCLUDE_FROM_BOARD_DRIVER #endif /* Includes: */ @@ -81,9 +81,11 @@ #define __GET_DATAFLASH_MASK(x) __GET_DATAFLASH_MASK2(DATAFLASH_CHIP,x) #endif - /* Retrieves the Dataflash chip select mask for the given Dataflash chip index. + /** Retrieves the Dataflash chip select mask for the given Dataflash chip index. * - * \param index Index of the dataflash chip mask to retrieve + * \param[in] index Index of the dataflash chip mask to retrieve + * + * \return Mask for the given Dataflash chip's /CS pin */ #define DATAFLASH_CHIP_MASK(index) __GET_DATAFLASH_MASK(index) @@ -109,7 +111,7 @@ #define Dataflash_GetSelectedChip() (DATAFLASH_CHIPCS_PORT & DATAFLASH_CHIPCS_MASK) #define Dataflash_SelectChip(mask) MACROS{ DATAFLASH_CHIPCS_PORT = ((DATAFLASH_CHIPCS_PORT \ - & ~DATAFLASH_CHIPCS_MASK) | mask); }MACROE + & ~DATAFLASH_CHIPCS_MASK) | (mask)); }MACROE #define Dataflash_DeselectChip() Dataflash_SelectChip(DATAFLASH_NO_CHIP) #endif @@ -156,6 +158,12 @@ #include "STK525/Dataflash.h" #elif (BOARD == BOARD_STK526) #include "STK526/Dataflash.h" + #elif (BOARD == BOARD_XPLAIN) + #include "XPLAIN/Dataflash.h" + #elif (BOARD == BOARD_XPLAIN_REV1) + #include "XPLAIN/Dataflash.h" + #elif (BOARD == BOARD_EVK527) + #include "EVK527/Dataflash.h" #elif (BOARD == BOARD_USER) #include "Board/Dataflash.h" #else @@ -163,17 +171,13 @@ #endif /* Inline Functions: */ - /** Initializes the dataflash driver (including the SPI driver) so that commands and data may be - * sent to an attached dataflash IC. - * - * \param[in] PrescalerMask SPI prescaler mask, see SPI.h documentation + /** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC. + * The AVR's SPI driver MUST be initialized before any of the dataflash commands are used. */ - static inline void Dataflash_Init(const uint8_t PrescalerMask) + static inline void Dataflash_Init(void) { DATAFLASH_CHIPCS_DDR |= DATAFLASH_CHIPCS_MASK; DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK; - - SPI_Init(PrescalerMask, true); } /** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive @@ -187,7 +191,7 @@ Dataflash_SelectChip(SelectedChipMask); } - /** Spinloops while the currently selected dataflash is busy executing a command, such as a main + /** Spin-loops while the currently selected dataflash is busy executing a command, such as a main * memory page program or main memory to buffer transfer. */ static inline void Dataflash_WaitWhileBusy(void)