Go Down

Topic: Bootloader for a 1284P @ 16MHz - problems :-( (Read 6825 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy