aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/Board/XMEGA/B1_XPLAINED
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-02-12 20:34:33 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-02-12 20:34:33 +0000
commit09d2be0dc1630b2ae2403d555c0360f1c4379322 (patch)
treeafb3191482a04b14a2d8c6b3086ab50a7798ce96 /LUFA/Drivers/Board/XMEGA/B1_XPLAINED
parentf45d60f768f438502910fd9fe7cac094c05bca74 (diff)
downloadlufa-09d2be0dc1630b2ae2403d555c0360f1c4379322.tar.gz
lufa-09d2be0dc1630b2ae2403d555c0360f1c4379322.tar.bz2
lufa-09d2be0dc1630b2ae2403d555c0360f1c4379322.zip
Add new Master SPI Mode USART serial peripheral driver for the XMEGA and AVR8 architectures.
Modify board Dataflash drivers so that each individual board is responsible for including the correct peripheral driver (SPI or SerialSPI) based on the board connections to the Dataflash chip. Complete A3BU-XPLAINED and B1-XPLAINED board Dataflash drivers.
Diffstat (limited to 'LUFA/Drivers/Board/XMEGA/B1_XPLAINED')
-rw-r--r--LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h
index 74a215b6c..e12f969e6 100644
--- a/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h
+++ b/LUFA/Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h
@@ -51,6 +51,7 @@
/* Includes: */
#include "../../../../Common/Common.h"
#include "../../../Misc/AT45DB642D.h"
+ #include "../../../Peripheral/SerialSPI.h"
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_DATAFLASH_H)
@@ -100,9 +101,7 @@
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline uint8_t Dataflash_TransferByte(const uint8_t Byte)
{
- // TODO: USART in SPI mode on PORT C
- #warning The Dataflash driver for the selected board is currently incomplete and non-functional.
- return 0;
+ return SerialSPI_TransferByte(&USARTE0, Byte);
}
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
@@ -112,7 +111,7 @@
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
{
- return; // TODO
+ SerialSPI_SendByte(&USARTE0, Byte);
}
/** Sends a dummy byte to the currently selected dataflash IC, and returns the next byte from the dataflash.
@@ -122,7 +121,7 @@
static inline uint8_t Dataflash_ReceiveByte(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
static inline uint8_t Dataflash_ReceiveByte(void)
{
- return 0; // TODO
+ return SerialSPI_ReceiveByte(&USARTE0);
}
/** Determines the currently selected dataflash chip.
@@ -170,10 +169,7 @@
if (PageAddress >= (DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS))
return;
- if (PageAddress & 0x01)
- Dataflash_SelectChip(DATAFLASH_CHIP2);
- else
- Dataflash_SelectChip(DATAFLASH_CHIP1);
+ Dataflash_SelectChip(DATAFLASH_CHIP1);
}
/** Toggles the select line of the currently selected dataflash IC, so that it is ready to receive
@@ -207,8 +203,6 @@
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress,
const uint16_t BufferByte)
{
- PageAddress >>= 1;
-
Dataflash_SendByte(PageAddress >> 5);
Dataflash_SendByte((PageAddress << 3) | (BufferByte >> 8));
Dataflash_SendByte(BufferByte);