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