Difference between revisions of "ATtiny4313 AVRDude configuration"
From Just in Time
m (moved This link to ATtiny4313 AVRDude configuration) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | The following entry | + | The following entry appears to work for programming the Attiny4313 with Avrdude. The previous entry we had here worked, as long as the code didn't cross the 2K border, so make sure you get the latest one posted underneath - which works all the way up to 4K. |
+ | |||
+ | We don't take any responsibility for anyone trying this and frying their Tinies or Programmer !! Be sure you know what you are doing. | ||
<pre> | <pre> | ||
Line 92: | Line 94: | ||
paged = yes; | paged = yes; | ||
size = 4096; | size = 4096; | ||
− | page_size = | + | page_size = 64; |
− | num_pages = | + | num_pages = 64; |
min_write_delay = 4500; | min_write_delay = 4500; | ||
max_write_delay = 4500; | max_write_delay = 4500; | ||
readback_p1 = 0xff; | readback_p1 = 0xff; | ||
readback_p2 = 0xff; | readback_p2 = 0xff; | ||
+ | |||
+ | ##### | ||
+ | |||
read_lo = " 0 0 1 0 0 0 0 0", | read_lo = " 0 0 1 0 0 0 0 0", | ||
− | " 0 0 0 0 | + | " 0 0 0 0 0 a10 a9 a8", |
" a7 a6 a5 a4 a3 a2 a1 a0", | " a7 a6 a5 a4 a3 a2 a1 a0", | ||
" o o o o o o o o"; | " o o o o o o o o"; | ||
read_hi = " 0 0 1 0 1 0 0 0", | read_hi = " 0 0 1 0 1 0 0 0", | ||
− | " 0 0 0 0 | + | " 0 0 0 0 0 a10 a9 a8", |
" a7 a6 a5 a4 a3 a2 a1 a0", | " a7 a6 a5 a4 a3 a2 a1 a0", | ||
" o o o o o o o o"; | " o o o o o o o o"; | ||
Line 111: | Line 116: | ||
loadpage_lo = " 0 1 0 0 0 0 0 0", | loadpage_lo = " 0 1 0 0 0 0 0 0", | ||
" 0 0 0 x x x x x", | " 0 0 0 x x x x x", | ||
− | " x x x | + | " x x x a4 a3 a2 a1 a0", |
" i i i i i i i i"; | " i i i i i i i i"; | ||
Line 117: | Line 122: | ||
loadpage_hi = " 0 1 0 0 1 0 0 0", | loadpage_hi = " 0 1 0 0 1 0 0 0", | ||
" 0 0 0 x x x x x", | " 0 0 0 x x x x x", | ||
− | " x x x | + | " x x x a4 a3 a2 a1 a0", |
" i i i i i i i i"; | " i i i i i i i i"; | ||
# The information in the data sheet of April/2004 is wrong, this works: | # The information in the data sheet of April/2004 is wrong, this works: | ||
writepage = " 0 1 0 0 1 1 0 0", | writepage = " 0 1 0 0 1 1 0 0", | ||
− | " 0 0 0 0 0 | + | " 0 0 0 0 0 a10 a9 a8", |
− | " a7 a6 a5 | + | " a7 a6 a5 x x x x x", |
" x x x x x x x x"; | " x x x x x x x x"; | ||
mode = 0x41; | mode = 0x41; | ||
delay = 6; | delay = 6; | ||
− | blocksize = | + | blocksize = 64; |
readsize = 256; | readsize = 256; | ||
; | ; | ||
Line 188: | Line 193: | ||
; | ; | ||
; | ; | ||
+ | |||
+ | |||
</pre> | </pre> |
Latest revision as of 19:44, 24 August 2010
The following entry appears to work for programming the Attiny4313 with Avrdude. The previous entry we had here worked, as long as the code didn't cross the 2K border, so make sure you get the latest one posted underneath - which works all the way up to 4K.
We don't take any responsibility for anyone trying this and frying their Tinies or Programmer !! Be sure you know what you are doing.
#------------------------------------------------------------ # ATtiny4313 (Clone off 2313) #------------------------------------------------------------ part id = "t4313"; desc = "ATtiny4313"; has_debugwire = yes; flash_instr = 0xB2, 0x0F, 0x1F; eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D, 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC, 0x99, 0xE1, 0xBB, 0xAC; stk500_devcode = 0x23; ## Use the ATtiny26 devcode: avr910_devcode = 0x5e; signature = 0x1e 0x92 0x0d; pagel = 0xD4; bs2 = 0xD6; reset = io; chip_erase_delay = 9000; 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, 0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A, 0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; progmodedelay = 0; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; resetdelayus = 0; hvleavestabdelay = 15; chiperasepulsewidth = 0; chiperasepolltimeout = 10; programfusepulsewidth = 0; programfusepolltimeout = 5; programlockpulsewidth = 0; programlockpolltimeout = 5; memory "eeprom" size = 256; paged = no; page_size = 4; 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", "x a6 a5 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", "x a6 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", " x a6 a5 a4 a3 a2 0 0", " x x x x x x x x"; mode = 0x41; delay = 6; 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"; # The information in the data sheet of April/2004 is wrong, this works: 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"; # The information in the data sheet of April/2004 is wrong, this works: 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"; # The information in the data sheet of April/2004 is wrong, this works: 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 = 6; blocksize = 64; readsize = 256; ; # ATtiny2313 has Signature Bytes: 0x1E 0x91 0x0A. 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"; read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0", "x x x x x x x x x x o o o o o o"; min_write_delay = 9000; max_write_delay = 9000; ; 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 = 9000; max_write_delay = 9000; ; 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 = 9000; max_write_delay = 9000; ; 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 = 9000; max_write_delay = 9000; ; # The Tiny2313 has calibration data for both 4 MHz and 8 MHz. # The information in the data sheet of April/2004 is wrong, this works: 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"; ; ;