Last active
November 22, 2018 17:20
-
-
Save tedder/178f62307652d261ba220612fda27aac to your computer and use it in GitHub Desktop.
avrdude for tiny43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#------------------------------------------------------------ | |
# ATtiny43U | |
#------------------------------------------------------------ | |
part | |
id = "t43u"; | |
desc = "ATtiny43u"; | |
has_debugwire = yes; | |
flash_instr = 0xB4, 0x07, 0x17; | |
eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, | |
0xBC, 0x07, 0xB4, 0x07, 0xBA, 0x0D, 0xBB, 0xBC, | |
0x99, 0xE1, 0xBB, 0xAC; | |
stk500_devcode = 0x14; | |
## avr910_devcode = ?; | |
## Try the AT90S2313 devcode: | |
avr910_devcode = 0x20; | |
signature = 0x1e 0x92 0x0C; | |
reset = io; | |
chip_erase_delay = 1000; | |
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1", | |
"x x x x x x x x x x x x x x x x"; | |
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x", | |
"x x x x x x x x x x x x x x x x"; | |
timeout = 200; | |
stabdelay = 100; | |
cmdexedelay = 25; | |
synchloops = 32; | |
bytedelay = 0; | |
pollindex = 3; | |
pollvalue = 0x53; | |
predelay = 1; | |
postdelay = 1; | |
pollmethod = 1; | |
pp_controlstack = 0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E, 0x4E, 0x5E, | |
0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E, 0x06, 0x16, 0x46, 0x56, | |
0x0A, 0x1A, 0x4A, 0x5A, 0x1E, 0x7C, 0x00, 0x01, 0x00, 0x00, | |
0x00, 0x00; | |
hventerstabdelay = 100; | |
progmodedelay = 0; | |
hvspcmdexedelay = 0; | |
latchcycles = 5; | |
togglevtg = 1; | |
poweroffdelay = 20; | |
resetdelayms = 1; | |
resetdelayus = 0; | |
hvleavestabdelay = 15; | |
resetdelay = 15; | |
chiperasepulsewidth = 0; | |
chiperasepolltimeout = 10; | |
programfusepulsewidth = 0; | |
programfusepolltimeout = 5; | |
programlockpulsewidth = 0; | |
programlockpolltimeout = 5; | |
memory "eeprom" | |
size = 64; | |
paged = yes; | |
page_size = 4; | |
num_pages = 16; | |
min_write_delay = 4000; | |
max_write_delay = 4500; | |
readback_p1 = 0xff; | |
readback_p2 = 0xff; | |
read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x", | |
"0 0 a4 a3 a2 a1 a0 o o o o o o o o"; | |
write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x", | |
"0 0 a5 a4 a3 a2 a1 a0 i i i i i i i i"; | |
loadpage_lo = " 1 1 0 0 0 0 0 1", | |
" 0 0 0 0 0 0 0 0", | |
" 0 0 0 0 0 0 a1 a0", | |
" i i i i i i i i"; | |
writepage = " 1 1 0 0 0 0 1 0", | |
" 0 0 x x x x x x", | |
" 0 0 a5 a4 a3 a2 0 0", | |
" x x x x x x x x"; | |
mode = 0x41; | |
delay = 5; | |
blocksize = 4; | |
readsize = 256; | |
; | |
memory "flash" | |
paged = yes; | |
size = 4096; | |
page_size = 64; | |
num_pages = 64; | |
min_write_delay = 4500; | |
max_write_delay = 4500; | |
readback_p1 = 0xff; | |
readback_p2 = 0xff; | |
read_lo = " 0 0 1 0 0 0 0 0", | |
" 0 0 0 0 0 a10 a9 a8", | |
" a7 a6 a5 a4 a3 a2 a1 a0", | |
" o o o o o o o o"; | |
read_hi = " 0 0 1 0 1 0 0 0", | |
" 0 0 0 0 0 a10 a9 a8", | |
" a7 a6 a5 a4 a3 a2 a1 a0", | |
" o o o o o o o o"; | |
loadpage_lo = " 0 1 0 0 0 0 0 0", | |
" 0 0 0 x x x x x", | |
" x x x a4 a3 a2 a1 a0", | |
" i i i i i i i i"; | |
loadpage_hi = " 0 1 0 0 1 0 0 0", | |
" 0 0 0 x x x x x", | |
" x x x a4 a3 a2 a1 a0", | |
" i i i i i i i i"; | |
writepage = " 0 1 0 0 1 1 0 0", | |
" 0 0 0 0 0 a10 a9 a8", | |
" a7 a6 a5 x x x x x", | |
" x x x x x x x x"; | |
mode = 0x41; | |
delay = 10; | |
blocksize = 64; | |
readsize = 256; | |
; | |
memory "signature" | |
size = 3; | |
read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x", | |
"x x x x x x a1 a0 o o o o o o o o"; | |
; | |
memory "lock" | |
size = 1; | |
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x", | |
"x x x x x x x x 1 1 i i i i i i"; | |
min_write_delay = 4500; | |
max_write_delay = 4500; | |
; | |
memory "lfuse" | |
size = 1; | |
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0", | |
"x x x x x x x x i i i i i i i i"; | |
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0", | |
"x x x x x x x x o o o o o o o o"; | |
min_write_delay = 4500; | |
max_write_delay = 4500; | |
; | |
memory "hfuse" | |
size = 1; | |
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0", | |
"x x x x x x x x i i i i i i i i"; | |
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0", | |
"x x x x x x x x o o o o o o o o"; | |
min_write_delay = 4500; | |
max_write_delay = 4500; | |
; | |
memory "efuse" | |
size = 1; | |
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0", | |
"x x x x x x x x x x x x x x x i"; | |
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0", | |
"x x x x x x x x o o o o o o o o"; | |
min_write_delay = 4500; | |
max_write_delay = 4500; | |
; | |
memory "calibration" | |
size = 2; | |
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x", | |
"0 0 0 0 0 0 0 a0 o o o o o o o o"; | |
; | |
; | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TOOLPATH = /Applications/Arduino_187.app/Contents/Java/hardware/tools/avr/bin | |
DEVICE = t43u | |
SERIAL_PORT = -P /dev/cu.usbmodem00221792 | |
PROGRAMMER = -c stk500v2 | |
OBJECTS = main.o | |
FUSES = | |
CLOCK = 1000000 # 1 MHz | |
AVRDUDE = $(TOOLPATH)/avrdude $(PROGRAMMER) $(SERIAL_PORT) -p $(DEVICE) -C /Applications/Arduino_187.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf | |
COMPILE = $(TOOLPATH)/avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=attiny43u | |
#COMPILE = $(TOOLPATH)/avr-gcc -Wall -Os -DF_CPU=$(CLOCK) -mmcu=$(DEVICE) | |
all: main.hex | |
.c.o: | |
$(COMPILE) -c $< -o $@ | |
.S.o: | |
$(COMPILE) -x assembler-with-cpp -c $< -o $@ | |
.c.s: | |
$(COMPILE) -S $< -o $@ | |
flash: all | |
$(AVRDUDE) -U flash:w:main.hex:i | |
readfuses: | |
$(AVRDUDE) -U lfuse:r:-:i -v | |
fuse: | |
$(AVRDUDE) $(FUSES) | |
# Xcode uses the Makefile targets "", "clean" and "install" | |
install: flash fuse | |
# if you use a bootloader, change the command below appropriately: | |
load: all | |
bootloadHID main.hex | |
clean: | |
rm -f main.hex main.elf $(OBJECTS) | |
# file targets: | |
main.elf: $(OBJECTS) | |
$(COMPILE) -o main.elf $(OBJECTS) | |
main.hex: main.elf | |
rm -f main.hex | |
$(TOOLPATH)/avr-objcopy -j .text -j .data -O ihex main.elf main.hex | |
$(TOOLPATH)/avr-size --format=avr --mcu=$(DEVICE) main.elf | |
# If you have an EEPROM section, you must also create a hex file for the | |
# EEPROM and add it to the "flash" target. | |
# Targets for code debugging and analysis: | |
disasm: main.elf | |
$(TOOLPATH)/avr-objdump -d main.elf | |
cpp: | |
$(COMPILE) -E main.c |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment