From 62e58fce278578072d0accb0677fe5875e84cf58 Mon Sep 17 00:00:00 2001 From: skarg Date: Wed, 12 Aug 2009 17:43:12 +0000 Subject: [PATCH] Updated fuses for BDK. --- bacnet-stack/ports/bdk-atxx4-mstp/Makefile | 1 - bacnet-stack/ports/bdk-atxx4-mstp/fuses.c | 84 +++++++++++++++------- 2 files changed, 58 insertions(+), 27 deletions(-) diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile index dab9cd4e..f300d6f7 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/Makefile +++ b/bacnet-stack/ports/bdk-atxx4-mstp/Makefile @@ -147,7 +147,6 @@ OPTIMIZATION = -Os $(OPTIMIZE_FLAGS) DEBUGGING = endif - ## BACnet options BFLAGS = -DBACDL_MSTP BFLAGS += -DMAX_APDU=128 diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/fuses.c b/bacnet-stack/ports/bdk-atxx4-mstp/fuses.c index 6e6604d2..e5bf1824 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/fuses.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/fuses.c @@ -27,36 +27,68 @@ #if defined(__GNUC__) && (__GNUC__ > 4) /* AVR fuse settings for ATmega644P */ FUSES = { + /* == LOW FUSE or LFUSE settings == */ + /* CKSEL3..0- Clock Select Configuration + CKSEL3 CKSEL2 CKSEL1 CKSEL0 Description + 1 1 1 x 1111-1000=Low Power Crystal Oscillator + 0 1 1 x 0111-0110=Full Swing Crystal Oscillator + 0 1 0 x 0101-0100=Low Frequency Crystal Oscillator + 0 0 1 1 Internal 128kHz RC Oscillator + 0 0 1 0 Calibrated Internal RC Oscillator + 0 0 0 0 External Clock] + + SUT1..0 - Clock Start Up Time selection + If CKSEL0=0, then SUT1..0 is 14CK+: 00=4.1ms,01=65ms,10=BOD,11=4.1ms + If CKSEL0=1, then SUT1..0 is 14CK+: 00=65ms,01=BOD,10=4.1ms,11=65ms + BOD means wait until internal Brown Out Detect Voltage is sufficient. + */ + /* CKOUT: clock output on CKOUT pin */ + /* CKDIV8: divide clock by 8 */ /* External Ceramic Resonator - configuration */ /* Full Swing Crystal Oscillator Clock Selection */ /* Ceramic resonator, slowly rising power 1K CK 14CK + 65 ms */ + /* .low = (FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1), */ + /* Crystal Oscillator, 16K CK + 14CK + BOD Enabled */ /* note: fuses are enabled by clearing the bit, so - any fuses listed below are cleared fuses. */ - .low = (FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1), - /* BOOTSZ configuration: - BOOTSZ1 BOOTSZ0 Boot Size - ------- ------- --------- - 1 1 512 - 1 0 1024 - 0 1 2048 - 0 0 4096 - */ - /* note: fuses are enabled by clearing the bit, so - any fuses listed below are cleared fuses. */ - .high = - (FUSE_BOOTSZ1 & FUSE_BOOTRST & FUSE_EESAVE & FUSE_SPIEN & FUSE_JTAGEN), - /* Brown-out detection VCC=2.7V */ - /* BODLEVEL configuration - BODLEVEL2 BODLEVEL1 BODLEVEL0 Voltage - --------- --------- --------- -------- - 1 1 1 disabled - 1 1 0 1.8V - 1 0 1 2.7V - 1 0 0 4.3V - */ - /* note: fuses are enabled by clearing the bit, so - any fuses listed below are cleared fuses. */ - .extended = (FUSE_BODLEVEL1 & FUSE_BODLEVEL0) + any fuses listed below are cleared fuses, + or are CKSEL or SUT bits that are zero. */ + .low = (FUSE_CKSEL3 & FUSE_SUT1), + + /* == HIGH FUSE or HFUSE settings == */ + /* BOOTRST: Enable Bootloader Reset Vector */ + /* EESAVE: Enable preserve EEPROM on Chip Erase */ + /* WDTON: Enable watchdog timer always on */ + /* SPIEN: Enable Serial Program and Data Downloading */ + /* JTAGEN: Enable JTAG */ + /* OCDEN: Enable OCD */ + /* BOOTSZ configuration: + BOOTSZ1 BOOTSZ0 Boot Size + ------- ------- --------- + 1 1 512 + 1 0 1024 + 0 1 2048 + 0 0 4096 + */ + /* note: fuses are enabled by clearing the bit, so + any fuses listed below are cleared fuses, + or are BOOTSZ bits that are zero. */ + .high = + (FUSE_BOOTSZ1 & FUSE_BOOTRST & FUSE_EESAVE & FUSE_SPIEN & FUSE_JTAGEN), + + /* == EXTENDED FUSE or EFUSE settings == */ + /* BODLEVEL configuration + BODLEVEL2 BODLEVEL1 BODLEVEL0 Voltage + --------- --------- --------- -------- + 1 1 1 disabled + 1 1 0 1.8V + 1 0 1 2.7V + 1 0 0 4.3V + */ + /* note: fuses are enabled by clearing the bit, so + any fuses listed below are cleared fuses, + or are BODLEVEL bits that are zero. */ + /* Brown-out detection VCC=2.7V */ + .extended = (FUSE_BODLEVEL1 & FUSE_BODLEVEL0) }; /* AVR lock bits - unlocked */