/*
LUFA Library
- Copyright (C) Dean Camera, 2011.
+ Copyright (C) Dean Camera, 2012.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/Peripheral/SPI.h>
- #include "../V2ProtocolParams.h"
-
+ #include "../V2Protocol.h"
+ #include "ISPProtocol.h"
+ #include "Config/AppConfig.h"
+
/* Preprocessor Checks: */
#if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
#undef ENABLE_ISP_PROTOCOL
#endif
/* Macros: */
- /** Low level device command to issue an extended FLASH address, for devices with other 128KB of FLASH. */
+ /** Low level device command to issue an extended FLASH address, for devices with over 128KB of FLASH. */
#define LOAD_EXTENDED_ADDRESS_CMD 0x4D
/** Macro to convert an ISP frequency to a number of timer clock cycles for the software SPI driver. */
*/
static inline uint8_t ISPTarget_ReceiveByte(void)
{
+ #if !defined(INVERTED_ISP_MISO)
if (HardwareSPIMode)
return SPI_ReceiveByte();
else
return ISPTarget_TransferSoftSPIByte(0x00);
+ #else
+ if (HardwareSPIMode)
+ return ~SPI_ReceiveByte();
+ else
+ return ~ISPTarget_TransferSoftSPIByte(0x00);
+ #endif
}
/** Sends and receives a byte of ISP data to and from the attached target, using the
*/
static inline uint8_t ISPTarget_TransferByte(const uint8_t Byte)
{
+ #if !defined(INVERTED_ISP_MISO)
if (HardwareSPIMode)
return SPI_TransferByte(Byte);
else
return ISPTarget_TransferSoftSPIByte(Byte);
+ #else
+ if (HardwareSPIMode)
+ return ~SPI_TransferByte(Byte);
+ else
+ return ~ISPTarget_TransferSoftSPIByte(Byte);
+ #endif
}
#endif