| LUFA Library 140302 |

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
XPLAIN
Dataflash Driver - LUFA/Drivers/Board/Dataflash.h

Board specific Dataflash driver header for the original Atmel XPLAIN. More...

## Macros
#define | DATAFLASH_CHIP1 (1 << 5)
#define | DATAFLASH_NO_CHIP 0
#define | DATAFLASH_PAGE_SIZE 1024
#define | DATAFLASH_PAGES 8192
#define | DATAFLASH_TOTALCHIPS 1

## Functions
static void | Dataflash_DeselectChip (void) ATTR_ALWAYS_INLINE
static uint8_t | Dataflash_GetSelectedChip (void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT
static void | Dataflash_Init (void)
static uint8_t | Dataflash_ReceiveByte (void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT
static void | Dataflash_SelectChip (const uint8_t ChipMask) ATTR_ALWAYS_INLINE
static void | Dataflash_SelectChipFromPage (const uint16_t PageAddress)
static void | Dataflash_SendAddressBytes (uint16_t PageAddress, const uint16_t BufferByte)
static void | Dataflash_SendByte (const uint8_t Byte) ATTR_ALWAYS_INLINE
static void | Dataflash_ToggleSelectedChipCS (void)
static uint8_t | Dataflash_TransferByte (const uint8_t Byte) ATTR_ALWAYS_INLINE
static void | Dataflash_WaitWhileBusy (void)

## Detailed Description

Note
  For the first revision XPLAIN board, compile with `BOARD = BOARD_XPLAIN_REV1`.

Board specific Dataflash driver header for the Atmel XPLAIN.

Revision 1 Boards:

Name | Info | Select Pin | SPI Port
--- | --- | --- | ---
DATAFLASH_CHIP1 | AT45DB041D (512KB) | PORTB.5 | SPI0

Other Board Revisions:

Name | Info | Select Pin | SPI Port
--- | --- | --- | ---
DATAFLASH_CHIP1 | AT45DB642D (8MB) | PORTB.5 | SPI0

## Macro Definition Documentation

#define DATAFLASH_CHIP1 (1 << 5)

Mask for the first dataflash chip selected.

#define DATAFLASH_NO_CHIP 0

Mask for no dataflash chip selected.

#define DATAFLASH_PAGE_SIZE 1024

Internal main memory page size for the board's dataflash ICs.

#define DATAFLASH_PAGES 8192

Total number of pages inside each of the board's dataflash ICs.

#define DATAFLASH_TOTALCHIPS 1

Constant indicating the total number of dataflash ICs mounted on the selected board.

## Function Documentation

static void Dataflash_DeselectChip | ( | void |  | ) |
| inline static

Deselects the current dataflash chip, so that no dataflash is selected.

static uint8_t Dataflash_GetSelectedChip | ( | void |  | ) |
| inline static

Determines the currently selected dataflash chip.

Returns
  Mask of the currently selected Dataflash chip, either DATAFLASH_NO_CHIP if no chip is selected or a DATAFLASH_CHIPn mask (where n is the chip number).

static void Dataflash_Init | ( | void |  | ) |
| inline static

Initializes the dataflash driver so that commands and data may be sent to an attached dataflash IC. The appropriate SPI interface will be automatically configured.

static uint8_t Dataflash_ReceiveByte | ( | void |  | ) |
| inline static

Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.

Returns
  Last response byte from the dataflash

static void Dataflash_SelectChip | ( | const uint8_t | ChipMask | ) |
| inline static

Selects the given dataflash chip.

Parameters

  [in] | ChipMask | Mask of the Dataflash IC to select, in the form of a `DATAFLASH_CHIPn` mask (where n is the chip number).

static void Dataflash_SelectChipFromPage | ( | const uint16_t | PageAddress | ) |
| inline static

Selects a dataflash IC from the given page number, which should range from 0 to ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1). For boards containing only one dataflash IC, this will select DATAFLASH_CHIP1. If the given page number is outside the total number of pages contained in the boards dataflash ICs, all dataflash ICs are deselected.

Parameters

  [in] | PageAddress | Address of the page to manipulate, ranging from 0 to ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).

static void Dataflash_SendAddressBytes | ( | uint16_t | PageAddress,
|  | const uint16_t | BufferByte
| ) |  |
| inline static

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-bit address.

Parameters

  [in] | PageAddress | Page address within the selected dataflash IC
  [in] | BufferByte | Address within the dataflash's buffer

static void Dataflash_SendByte | ( | const uint8_t | Byte | ) |
| inline static

Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.

Parameters

  [in] | Byte | Byte of data to send to the dataflash

static void Dataflash_ToggleSelectedChipCS | ( | void |  | ) |
| inline static

Toggles the select line of the currently selected dataflash IC, so that it is ready to receive a new command.

static uint8_t Dataflash_TransferByte | ( | const uint8_t | Byte | ) |
| inline static

Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.

Parameters

  [in] | Byte | Byte of data to send to the dataflash

Returns
  Last response byte from the dataflash

static void Dataflash_WaitWhileBusy | ( | void |  | ) |
| inline static

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.