From e1886429972095e7d453adcbdb26910f94c29ffd Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 8 Jan 2019 19:52:34 +1100 Subject: AVRISP-MKII Clone: Clean up ISP driver code, namespace module variables. --- Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h') diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h index 7bf2ff7b5..0a84e044b 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPProtocol.h @@ -38,6 +38,7 @@ /* Includes: */ #include + #include #include #include @@ -45,6 +46,22 @@ #include "../V2Protocol.h" #include "Config/AppConfig.h" + /* Macros: */ + /** Calibration clock frequency for target OSCCAL calibration, see AVR053 application note. */ + #define ISPPROTOCOL_CALIB_CLOCK_HZ 32768 + + /** Internal timer ticks per calibration clock cycle, see AVR053 application note. */ + #define ISPPROTOCOL_CALIB_TICKS ( (F_CPU + ISPPROTOCOL_CALIB_CLOCK_HZ) / (2 * ISPPROTOCOL_CALIB_CLOCK_HZ) ) + + /** Per AVR053, calibration guaranteed to take 1024 cycles (2048 half-cycles) or fewer; + * add some cycles for response delay (5-10 after success) and response itself. + */ + #define ISPPROTOCOL_CALIB_HALF_CYCLE_LIMIT (2*1024 + 50) + + /** Per AVR053, target will toggle I/O pin 8 times to indicate a successful clock calibration. + */ + #define ISPPROTOCOL_CALIB_SUCCESS_TOGGLE_NUM 8 + /* Preprocessor Checks: */ #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1)) #undef ENABLE_ISP_PROTOCOL -- cgit v1.2.3