Go Down

Topic: Bootloader for a 1284P @ 16MHz - problems :-( (Read 6091 times) previous topic - next topic

retrolefty


From my copy of avrdude.conf, here is how it wants to see the part id and desc names:

Quote
#------------------------------------------------------------
# ATmega1284P
#------------------------------------------------------------

# similar to ATmega164p

part
    id               = "m1284p";
    desc             = "ATMEGA1284P";

cowasaki



From my copy of avrdude.conf, here is how it wants to see the part id and desc names:

Quote
#------------------------------------------------------------
# ATmega1284P
#------------------------------------------------------------

# similar to ATmega164p

part
    id               = "m1284p";
    desc             = "ATMEGA1284P";



Do you have a copy of the whole section, please?

cowasaki

#32
Jun 21, 2011, 06:31 pm Last Edit: Jun 21, 2011, 06:34 pm by cowasaki Reason: 1
This is what I got changing the 664p's section with the bits I know are different (with the changes):

Code: [Select]
#------------------------------------------------------------
# ATmega1284P
#------------------------------------------------------------

# similar to ATmega164p

part
   id               = "m1284p"; /* changed from m664p */
   desc             = "ATMEGA1284P"; /* changed from ATMEGA664P */
   has_jtag         = yes;
#   stk500_devcode   = 0x82; # no STK500v1 support
#   avr910_devcode   = 0x?;  # try the ATmega16 one:^
   avr910_devcode   = 0x74;
   signature        = 0x1e 0x97 0x05; /* changed from 0x1e 0x96 0x09 */
   pagel            = 0xd7;
   bs2              = 0xa0;
   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 = 0;

   pp_controlstack     =
       0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
       0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
       0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
       0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
   hventerstabdelay    = 100;
   progmodedelay       = 0;
   latchcycles         = 6;
   togglevtg           = 0;
   poweroffdelay       = 0;
   resetdelayms        = 0;
   resetdelayus        = 0;
   hvleavestabdelay    = 15;
   chiperasepulsewidth = 0;
   chiperasepolltimeout = 10;
   programfusepulsewidth = 0;
   programfusepolltimeout = 5;
   programlockpulsewidth = 0;
   programlockpolltimeout = 5;

   idr                 = 0x31;
   spmcr               = 0x57;
   allowfullpagebitstream = no;

   memory "eeprom"
       paged           = no; /* leave this "no" */
       page_size       = 8;  /* for parallel programming */
       size            = 4096;                                       /* changed from 2048 */
       min_write_delay = 9000;
       max_write_delay = 9000;
       readback_p1     = 0xff;
       readback_p2     = 0xff;
read            = "  1   0   1   0      0   0   0   0",
                         "  0   0   x   x    a11 a10  a9  a8",
                         " a7  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   x   x    a11 a10  a9  a8",
                         " a7  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  a2  a1  a0",
 "  i   i   i   i      i   i   i   i";

writepage = "  1   1   0   0      0   0   1   0",
 "  0   0   x   x    a11 a10  a9  a8",
 " a7  a6  a5  a4     a3   0   0   0",
 "  x   x   x   x      x   x   x   x";

mode = 0x41;
delay = 10;
blocksize = 128;
readsize = 256;
     ;

   memory "flash"
       paged           = yes;
       size            = 131072; /* changed from 65536 */
       page_size       = 256;
       num_pages       = 512;                                  /* changed from 256 */
       min_write_delay = 4500;
       max_write_delay = 4500;
       readback_p1     = 0xff;
       readback_p2     = 0xff;
       read_lo         = "  0   0   1   0      0   0   0   0",
                         "a15 a14 a13 a12    a11 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",
                         "a15 a14 a13 a12    a11 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   x   x      x   x   x   x",
                         "  x  a6  a5  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   x   x      x   x   x   x",
                         "  x  a6  a5  a4     a3  a2  a1  a0",
                         "  i   i   i   i      i   i   i   i";

       writepage       = "  0   1   0   0      1   1   0   0",
                         "a15 a14 a13 a12    a11 a10  a9  a8",
                         " a7   x   x   x      x   x   x   x",
                         "  x   x   x   x      x   x   x   x";

mode = 0x21;
delay = 6;
blocksize = 256;
readsize = 256;
     ;

   memory "lock"
       size            = 1;
       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";

       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 = 9000;
       max_write_delay = 9000;
     ;

   memory "lfuse"
       size            = 1;
       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";

       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";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "hfuse"
       size            = 1;
       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";

       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";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "efuse"
       size            = 1;

       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";

       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  1 1 1 1  1 i i i";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "signature"
       size            = 3;
       read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
                         "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
     ;

   memory "calibration"
       size            = 1;

       read            = "0 0 1 1  1 0 0 0   0 0 0 x  x x x x",
                         "0 0 0 0  0 0 0 0   o o o o  o o o o";
       ;
 ;





retrolefty

Quote
Do you have a copy of the whole section, please?


Quote
#------------------------------------------------------------
# ATmega1284P
#------------------------------------------------------------

# similar to ATmega164p

part
   id               = "m1284p";
   desc             = "ATMEGA1284P";
   has_jtag         = yes;
   stk500_devcode   = 0x82; # no STK500v1 support, use the ATmega16 one
   avr910_devcode   = 0x74;
   signature        = 0x1e 0x97 0x05;
   pagel            = 0xd7;
   bs2              = 0xa0;
   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, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
       0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
       0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
       0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02;
   hventerstabdelay    = 100;
   progmodedelay       = 0;
   latchcycles         = 6;
   togglevtg           = 1;
   poweroffdelay       = 15;
   resetdelayms        = 1;
   resetdelayus        = 0;
   hvleavestabdelay    = 15;
   chiperasepulsewidth = 0;
   chiperasepolltimeout = 10;
   programfusepulsewidth = 0;
   programfusepolltimeout = 5;
   programlockpulsewidth = 0;
   programlockpolltimeout = 5;

   idr                 = 0x31;
   spmcr               = 0x57;
   allowfullpagebitstream = no;

   memory "eeprom"
       paged           = no; /* leave this "no" */
       page_size       = 8;  /* for parallel programming */
       size            = 4096;
       min_write_delay = 9000;
       max_write_delay = 9000;
       readback_p1     = 0xff;
       readback_p2     = 0xff;
   read            = "  1   0   1   0      0   0   0   0",
                         "  0   0   x   x    a11 a10  a9  a8",
                         " a7  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   x   x    a11 a10  a9  a8",
                         " a7  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  a2  a1  a0",
           "  i   i   i   i      i   i   i   i";

   writepage   = "  1   1   0   0      0   0   1   0",
           "  0   0   x   x    a11 a10  a9  a8",
           " a7  a6  a5  a4     a3   0   0   0",
           "  x   x   x   x      x   x   x   x";

   mode      = 0x41;
   delay      = 10;
   blocksize   = 128;
   readsize   = 256;
     ;

   memory "flash"
       paged           = yes;
       size            = 131072;
       page_size       = 256;
       num_pages       = 512;
       min_write_delay = 4500;
       max_write_delay = 4500;
       readback_p1     = 0xff;
       readback_p2     = 0xff;
       read_lo         = "  0   0   1   0      0   0   0   0",
                         "a15 a14 a13 a12    a11 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",
                         "a15 a14 a13 a12    a11 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   x   x      x   x   x   x",
                         "  x  a6  a5  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   x   x      x   x   x   x",
                         "  x  a6  a5  a4     a3  a2  a1  a0",
                         "  i   i   i   i      i   i   i   i";

       writepage       = "  0   1   0   0      1   1   0   0",
                         "a15 a14 a13 a12    a11 a10  a9  a8",
                         " a7   x   x   x      x   x   x   x",
                         "  x   x   x   x      x   x   x   x";

   mode      = 0x41;
   delay      = 10;
   blocksize   = 256;
   readsize   = 256;
     ;

   memory "lock"
       size            = 1;
       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";

       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 = 9000;
       max_write_delay = 9000;
     ;

   memory "lfuse"
       size            = 1;
       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";

       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";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "hfuse"
       size            = 1;
       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";

       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";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "efuse"
       size            = 1;

       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";

       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  1 1 1 1  1 i i i";
       min_write_delay = 9000;
       max_write_delay = 9000;
     ;

   memory "signature"
       size            = 3;
       read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
                         "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
     ;

   memory "calibration"
       size            = 1;

       read            = "0 0 1 1  1 0 0 0   0 0 0 x  x x x x",
                         "0 0 0 0  0 0 0 0   o o o o  o o o o";
       ;
 ;

cowasaki

WOW - IT WORKS !!!!!!

With the above changes the Arduino will upload a sketch to the 1284p and it works.  My 1284p is now blinking away happily.........

Right now I need to do a detailed list of everything that needs to be done and will post it (with reference to the fabulous help I have received from everyone!)

I have not tested it beyond the blink sketch but getting that working was very helpful.

cowasaki


Quote
Do you have a copy of the whole section, please?


Quote
#------------------------------------------------------------
# ATmega1284P
#------------------------------------------------------------

# similar to ATmega164p




Thanks RetroLefty, that matches the one I just worked out so happy with that.

Go Up