summaryrefslogtreecommitdiffstats
path: root/firmware/configuration/t841_default
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/configuration/t841_default')
-rw-r--r--firmware/configuration/t841_default/Makefile.inc26
-rw-r--r--firmware/configuration/t841_default/bootloaderconfig.h29
2 files changed, 30 insertions, 25 deletions
diff --git a/firmware/configuration/t841_default/Makefile.inc b/firmware/configuration/t841_default/Makefile.inc
index 8b856a3..d6198e4 100644
--- a/firmware/configuration/t841_default/Makefile.inc
+++ b/firmware/configuration/t841_default/Makefile.inc
@@ -2,31 +2,29 @@
# Project: Micronucleus
# License: GNU GPL v2 (see License.txt)
#
-# Controller type: ATtiny 85
-# Configuration: Digispark default configuration.
+# Controller type: ATtiny 841
+# Configuration: Default configuration - 12 Mhz RC oscillator
# Last Change: Mar 16,2014
-F_CPU = 16500000
-DEVICE = attiny85
-FUSEOPT = $(FUSEOPT_t85)
-LOCKOPT = -U lock:w:0x2f:m
+F_CPU = 12000000
+DEVICE = attiny841
# hexadecimal address for bootloader section to begin. To calculate the best value:
# - make clean; make main.hex; ### output will list data: 2124 (or something like that)
# - for the size of your device (8kb = 1024 * 8 = 8192) subtract above value 2124... = 6068
# - How many pages in is that? 6068 / 64 (tiny85 page size in bytes) = 94.8125
# - round that down to 94 - our new bootloader address is 94 * 64 = 6016, in hex = 1780
-BOOTLOADER_ADDRESS = 19C0
+BOOTLOADER_ADDRESS = 1800
-FUSEOPT_t85 = -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m
-FUSEOPT_t85_DISABLERESET = -U lfuse:w:0xe1:m -U efuse:w:0xfe:m -U hfuse:w:0x5d:m
+FUSEOPT = -U lfuse:w:0xe2:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m
+FUSEOPT_DISABLERESET = # TODO
#---------------------------------------------------------------------
-# ATtiny85
+# ATtiny841
#---------------------------------------------------------------------
# Fuse extended byte:
-# 0xFE = - - - - - 1 1 0
+# 0xFE = 1 1 1 1 1 1 1 0
# ^
# |
# +---- SELFPRGEN (enable self programming flash)
@@ -52,11 +50,11 @@ FUSEOPT_t85_DISABLERESET = -U lfuse:w:0xe1:m -U efuse:w:0xfe:m -U hfuse:w:0x5d:m
# +-------------------- RSTDISBL (disable external reset -> disabled!)
#
# Fuse low byte:
-# 0xe1 = 1 1 1 0 0 0 0 1
+# 0xe2 = 1 1 1 0 0 0 1 0
# ^ ^ \+/ \--+--/
-# | | | +------- CKSEL 3..0 (clock selection -> HF PLL)
+# | | | +------- CKSEL 3..0 (clock selection -> RC Oscillator)
# | | +--------------- SUT 1..0 (BOD enabled, fast rising power)
# | +------------------ CKOUT (clock output on CKOUT pin -> disabled)
# +-------------------- CKDIV8 (divide clock by 8 -> don't divide)
-###############################################################################
+
diff --git a/firmware/configuration/t841_default/bootloaderconfig.h b/firmware/configuration/t841_default/bootloaderconfig.h
index 4ea59dd..80f6522 100644
--- a/firmware/configuration/t841_default/bootloaderconfig.h
+++ b/firmware/configuration/t841_default/bootloaderconfig.h
@@ -23,11 +23,11 @@
* "B", the registers PORTB, PINB and DDRB will be used.
*/
-#define USB_CFG_DMINUS_BIT 3
+#define USB_CFG_DMINUS_BIT 0
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
* This may be any bit in the port.
*/
-#define USB_CFG_DPLUS_BIT 4
+#define USB_CFG_DPLUS_BIT 1
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
* This may be any bit in the port, but must be configured as a pin change interrupt.
*/
@@ -49,23 +49,30 @@
// setup interrupt for Pin Change for D+
-#define USB_INTR_CFG PCMSK
+#define USB_INTR_CFG PCMSK1
#define USB_INTR_CFG_SET (1 << USB_CFG_DPLUS_BIT)
#define USB_INTR_CFG_CLR 0
#define USB_INTR_ENABLE GIMSK
-#define USB_INTR_ENABLE_BIT PCIE
+#define USB_INTR_ENABLE_BIT PCIE1
#define USB_INTR_PENDING GIFR
-#define USB_INTR_PENDING_BIT PCIF
-#define USB_INTR_VECTOR PCINT0_vect
-
+#define USB_INTR_PENDING_BIT PCIF1
+#define USB_INTR_VECTOR PCINT1_vect
+
/* ------------------------------------------------------------------------- */
/* Configuration relevant to the CPU the bootloader is running on */
/* ------------------------------------------------------------------------- */
// how many milliseconds should host wait till it sends another erase or write?
// needs to be above 4.5 (and a whole integer) as avr freezes for 4.5ms
+
+// ATtiny841 erases four pages at once
#define MICRONUCLEUS_WRITE_SLEEP 5
+#define MICRONUCLEUS_ERASE_SLEEP 1
+// ATtiny841 does not know OSCCAL
+#ifndef OSCCAL
+#define OSCCAL OSCCAL0
+#endif
/* ---------------------- feature / code size options ---------------------- */
/* Configure the behavior of the bootloader here */
@@ -183,8 +190,8 @@
* comes with its own OSCCAL calibration or an external clock source is used.
*/
-#define OSCCAL_RESTORE 0
-#define OSCCAL_16_5MHz 1
+#define OSCCAL_RESTORE 1
+#define OSCCAL_16_5MHz 0
#define OSCCAL_HAVE_XTAL 0
/*
@@ -200,11 +207,11 @@
*
*/
-#define LED_MODE ACTIVE_HIGH
+#define LED_MODE ACTIVE_LOW
#define LED_DDR DDRB
#define LED_PORT PORTB
-#define LED_PIN PB1
+#define LED_PIN PB2
/*
* This is the implementation of the LED code. Change the configuration above unless you want to