/*
LUFA Library
- Copyright (C) Dean Camera, 2010.
+ Copyright (C) Dean Camera, 2011.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2011 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
/** Low level device command to issue an extended FLASH address, for devices with other 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 */
- #define TIMER_COMP(freq) ((((F_CPU / 8) / freq) / 2) - 1)
+ /** Macro to convert an ISP frequency to a number of timer clock cycles for the software SPI driver. */
+ #define TIMER_COMP(freq) (((F_CPU / 8) / 2 / freq) - 1)
+
+ /** ISP rescue clock speed in Hz, for clocking targets with incorrectly set fuses. */
+ #define ISP_RESCUE_CLOCK_SPEED 4000000
/* External Variables: */
extern bool HardwareSPIMode;
/* Function Prototypes: */
- void ISPTarget_Init(void);
- void ISPTarget_ShutDown(void);
+ void ISPTarget_EnableTargetISP(void);
+ void ISPTarget_DisableTargetISP(void);
void ISPTarget_ConfigureRescueClock(void);
- void ISPTarget_ConfigureSoftwareISP(const uint8_t SCKDuration);
+ void ISPTarget_ConfigureSoftwareSPI(const uint8_t SCKDuration);
uint8_t ISPTarget_TransferSoftSPIByte(const uint8_t Byte);
void ISPTarget_ChangeTargetResetLine(const bool ResetTarget);
uint8_t ISPTarget_WaitWhileTargetBusy(void);