Added V2Protocol handlers to the AVRISP project to enter/exit programming mode, and read/write fuses, lockbits, OSCCAL and Signature bytes.

Added ShutDown functions for all hardware peripheral drivers, so that peripherals can be turned off after use.
This commit is contained in:
Dean Camera 2009-08-23 04:01:49 +00:00
parent d540276b44
commit 1e8df8951a
10 changed files with 303 additions and 45 deletions

View file

@ -38,6 +38,7 @@
/* Includes: */
#include <avr/io.h>
#include <util/delay.h>
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/Peripheral/SPI.h>
@ -47,23 +48,28 @@
#include "V2ProtocolParams.h"
/* Macros: */
#define PROGRAMMER_ID "AVRISP_MK2"
#define PROGRAMMER_ID_LEN (sizeof(PROGRAMMER_ID) - 1)
#define MAX_SPI_SETTINGS 7
#define PROGRAMMER_ID "AVRISP_MK2"
#define TARGET_BUST_TIMEOUT_MS 100
/* Function Prototypes: */
void V2Protocol_ProcessCommand(void);
#if defined(INCLUDE_FROM_V2PROTOCOL_C)
static void V2Protocol_ReconfigureSPI(void);
static uint8_t V2Protocol_GetSPIPrescalerMask(void);
static void V2Protocol_ChangeTargetResetLine(bool ResetTarget);
static void V2Protocol_DelayMS(uint8_t MS);
static uint8_t V2Protocol_WaitWhileTargetBusy(void);
static void V2Protocol_Command_Unknown(uint8_t V2Command);
static void V2Protocol_Command_SignOn(void);
static void V2Protocol_Command_GetSetParam(uint8_t V2Command);
static void V2Protocol_Command_LoadAddress(void);
static void V2Protocol_Command_SPIMulti(void);
static void V2Protocol_Command_Unknown(uint8_t V2Command);
static void V2Protocol_Command_SignOn(void);
static void V2Protocol_Command_GetSetParam(uint8_t V2Command);
static void V2Protocol_Command_LoadAddress(void);
static void V2Protocol_Command_EnterISPMode(void);
static void V2Protocol_Command_LeaveISPMode(void);
static void V2Protocol_Command_ChipErase(void);
static void V2Protocol_Command_ReadFuseLockSigOSCCAL(uint8_t V2Command);
static void V2Protocol_Command_WriteFuseLock(uint8_t V2Command);
static void V2Protocol_Command_SPIMulti(void);
#endif
#endif