X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f1076ac4d6e56bff7fb6d2126746af1108211370..8ba51f090f7cafb36e1108cc58e68f5d71bc13c0:/LUFA/Drivers/Board/Dataflash.h diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h index 57ce92d4c..63aca2dc1 100644 --- a/LUFA/Drivers/Board/Dataflash.h +++ b/LUFA/Drivers/Board/Dataflash.h @@ -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: */ @@ -75,6 +75,20 @@ #endif /* Public Interface - May be used in end-application: */ + /* Macros: */ + #if !defined(__DOXYGEN__) + #define __GET_DATAFLASH_MASK2(x, y) x ## y + #define __GET_DATAFLASH_MASK(x) __GET_DATAFLASH_MASK2(DATAFLASH_CHIP,x) + #endif + + /** Retrieves the Dataflash chip select mask for the given Dataflash chip index. + * + * \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) + /* Pseudo-Function Macros: */ #if defined(__DOXYGEN__) /** Determines the currently selected dataflash chip. @@ -149,19 +163,15 @@ #else #error The selected board does not contain a dataflash IC. #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 @@ -183,6 +193,7 @@ Dataflash_ToggleSelectedChipCS(); Dataflash_SendByte(DF_CMD_GETSTATUS); while (!(Dataflash_ReceiveByte() & DF_STATUS_READY)); + Dataflash_ToggleSelectedChipCS(); } /** Selects a dataflash IC from the given page number, which should range from 0 to