Go Down

Topic: put these into a Uno (Read 866 times) previous topic - next topic

Shaped

I have just purchased the following 2x ATMEGA328-PU Arduino UNO Bootloader,

Will i be able to drop these chips direct into my Uno and program them?.

Thanks.

silasmoeckel

If they have a boot loader already they should work fine.

CrossRoads

You may get a Signature Byte error. If you do, its pretty easy to make a file change to have them recognized.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


xvjeko


You may get a Signature Byte error. If you do, its pretty easy to make a file change to have them recognized.


how to fix signature byte error?????

The Clever Monkey



You may get a Signature Byte error. If you do, its pretty easy to make a file change to have them recognized.


how to fix signature byte error?????


You need to tweak the avrdude.conf file to include sections for the chip variation you have. You describe its signature and fuses. Search for avrdude.conf here.
I yield() for co-routines.

Erni

Take a look at this:

http://arduino.cc/forum/index.php/topic,98956.0.html

CrossRoads

#7
Jul 07, 2012, 09:45 pm Last Edit: Jul 07, 2012, 09:47 pm by CrossRoads Reason: 1
Find avrdude.conf in this folder:
C:\Arduino-1.0.1\hardware\tools\avr\etc

copy the '328 section and paste it at the end.
Change the couple of lines I have indicated with <<< below

#------------------------------------------------------------
# ATmega328P                                               <<< <<<  change to ATMEGA328
#------------------------------------------------------------

part
   id         = "m328p";    <<< change to m328
   desc      = "ATMEGA328P";           <<<  change to ATMEGA328
   has_debugwire   = yes;
   flash_instr      = 0xB6, 0x01, 0x11;
   eeprom_instr   = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
           0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
           0x99, 0xF9, 0xBB, 0xAF;
   stk500_devcode   = 0x86;
   # avr910_devcode   = 0x;
   signature      = 0x1e 0x95 0x0F;   <<<  change to 0x1E 0x95 0x14 >>> I think rest of this stays the same
   pagel      = 0xd7;
   bs2         = 0xc2;
   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, 0x00;
   hventerstabdelay   = 100;
   progmodedelay   = 0;
   latchcycles      = 5;
   togglevtg      = 1;
   poweroffdelay   = 15;
   resetdelayms   = 1;
   resetdelayus   = 0;
   hvleavestabdelay   = 15;
   resetdelay      = 15;
   chiperasepulsewidth   = 0;
   chiperasepolltimeout = 10;
   programfusepulsewidth = 0;
   programfusepolltimeout = 5;
   programlockpulsewidth = 0;
   programlockpolltimeout = 5;

   memory "eeprom"
   paged      = no;
   page_size   = 4;
   size      = 1024;
   min_write_delay = 3600;
   max_write_delay = 3600;
   readback_p1   = 0xff;
   readback_p2   = 0xff;
   read = " 1 0 1 0 0 0 0 0",
          " 0 0 0 x x x 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 0 x x x 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 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 a9 a8",
          " a7 a6 a5 a4 a3 a2 0 0",
          " x x x x x x x x";

   mode      = 0x41;
   delay      = 20;
   blocksize   = 4;
   readsize   = 256;
   ;

   memory "flash"
   paged      = yes;
   size      = 32768;
   page_size   = 128;
   num_pages   = 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",
        " 0 0 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",
        " 0 0 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 0 x x x x x",
            " x x 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 0 x x x x x",
            " x x a5 a4 a3 a2 a1 a0",
            " i i i i i i i i";

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

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

   ;

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

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

   memory "efuse"
   size = 1;
   min_write_delay = 4500;
   max_write_delay = 4500;
   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 x x x x x 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 x x x x x i i i";
   ;

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

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

   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";
   ;
;
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

CrossRoads

Find boards.txt in this folder:
C:\Arduino-1.0.1\hardware\arduino

Copy this section, paste it at end, make these changes as indicated by <<<

In both cases, I used free download of Notepad++ for editing, lot easier than fighting with Notepad to do it

I don't have a 328 chip to try it, but I believe this is what is needed.


##############################################################

uno.name=Arduino Uno with 328 <<<<<<<   added 'with 328'
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328            <<<<< removed 'p' at the end
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up