X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/910bca557cbdc34dbc8db9df91d00103ffd73c88..cdd4e11fa8559fc7fbea54f29310f6a2307d075c:/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h?ds=sidebyside diff --git a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h index 42c026906..8b65e6238 100644 --- a/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h +++ b/LUFA/Drivers/Board/AVR8/XPLAIN/Dataflash.h @@ -29,7 +29,7 @@ */ /** \file - * \brief Board specific Dataflash driver header for the Atmel XPLAIN. + * \brief Board specific Dataflash driver header for the original Atmel XPLAIN. * \copydetails Group_Dataflash_XPLAIN * * \note This file should not be included directly. It is automatically included as needed by the dataflash driver @@ -38,7 +38,9 @@ /** \ingroup Group_Dataflash * \defgroup Group_Dataflash_XPLAIN XPLAIN - * \brief Board specific Dataflash driver header for the Atmel XPLAIN. + * \brief Board specific Dataflash driver header for the original Atmel XPLAIN. + * + * \note For the first revision XPLAIN board, compile with BOARD = BOARD_XPLAIN_REV1. * * Board specific Dataflash driver header for the Atmel XPLAIN. * @@ -76,20 +78,20 @@ /** Mask for the first dataflash chip selected. */ #define DATAFLASH_CHIP1 0 - #if (BOARD == BOARD_XPLAIN_REV1) - #define DATAFLASH_PAGE_SIZE 256 - - #define DATAFLASH_PAGES 2048 - #else + #if ((BOARD != BOARD_XPLAIN_REV1) || defined(__DOXYGEN__)) /** Internal main memory page size for the board's dataflash ICs. */ #define DATAFLASH_PAGE_SIZE 1024 /** Total number of pages inside each of the board's dataflash ICs. */ #define DATAFLASH_PAGES 8192 + #else + #define DATAFLASH_PAGE_SIZE 256 + + #define DATAFLASH_PAGES 2048 #endif /* Inline Functions: */ - /** Initialises the dataflash driver so that commands and data may be sent to an attached dataflash IC. + /** Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC. * The microcontroller's SPI driver MUST be initialized before any of the dataflash commands are used. */ static inline void Dataflash_Init(void) @@ -98,6 +100,38 @@ DATAFLASH_CHIPCS_PORT |= DATAFLASH_CHIPCS_MASK; } + /** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash. + * + * \param[in] Byte of data to send to the dataflash + * + * \return Last response byte from the dataflash + */ + static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE; + static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) + { + return SPI_TransferByte(Byte); + } + + /** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash. + * + * \param[in] Byte of data to send to the dataflash + */ + static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE; + static inline void Dataflash_SendByte(const uint8_t Byte) + { + SPI_SendByte(Byte); + } + + /** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash. + * + * \return Last response byte from the dataflash + */ + static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT; + static inline uint8_t Dataflash_ReceiveByte(void) + { + return SPI_ReceiveByte(); + } + /** Determines the currently selected dataflash chip. * * \return Mask of the currently selected Dataflash chip, either \ref DATAFLASH_NO_CHIP if no chip is selected @@ -134,7 +168,7 @@ * are deselected. * * \param[in] PageAddress Address of the page to manipulate, ranging from - * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). + * 0 to ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). */ static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress) { @@ -169,7 +203,7 @@ } /** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with - * dataflash commands which require a complete 24-byte address. + * dataflash commands which require a complete 24-bit address. * * \param[in] PageAddress Page address within the selected dataflash IC * \param[in] BufferByte Address within the dataflash's buffer