List of MCs (ICs), that can be programmed using Arduino Boards (ISP)?

Can anyone give me the list of microcontroller ICs that I can program using Arduino Uno/Mega's ISP? (I'm done burning bootloader and then uploading sketch on ATMega328-PU (not ATMega328P-PU))

This is not 100% complete .. we need to add Crossroads boards :slight_smile:

Arduino list of boards

ok... and thanks man

My programmer, which runs Nick Gammon's code, can program many chip types:
http://www.crossroadsfencing.com/BobuinoRev17/


Link to Nick's code is here
http://www.crossroadsfencing.com/BobuinoRev17/Programmer.html
And all the chips it currently supports:

338 // see Atmega datasheets 

339 const signatureType signatures [] PROGMEM =  

340   { 

341 //     signature        description   flash size   bootloader  flash  fuse 

342 //                                                     size    page    to 

343 //                                                             size   change 

344 

 

345   // Attiny84 family 

346   { { 0x1E, 0x91, 0x0B }, "ATtiny24",   2 * kb,           0,   32,   NO_FUSE }, 

347   { { 0x1E, 0x92, 0x07 }, "ATtiny44",   4 * kb,           0,   64,   NO_FUSE }, 

348   { { 0x1E, 0x93, 0x0C }, "ATtiny84",   8 * kb,           0,   64,   NO_FUSE }, 

349 

 

350   // Attiny85 family 

351   { { 0x1E, 0x91, 0x08 }, "ATtiny25",   2 * kb,           0,   32,   NO_FUSE }, 

352   { { 0x1E, 0x92, 0x06 }, "ATtiny45",   4 * kb,           0,   64,   NO_FUSE }, 

353   { { 0x1E, 0x93, 0x0B }, "ATtiny85",   8 * kb,           0,   64,   NO_FUSE }, 

354 

 

355   // Atmega328 family 

356   { { 0x1E, 0x92, 0x0A }, "ATmega48PA",   4 * kb,         0,    64,  NO_FUSE }, 

357   { { 0x1E, 0x93, 0x0F }, "ATmega88PA",   8 * kb,       256,   128,  extFuse }, 

358   { { 0x1E, 0x94, 0x0B }, "ATmega168PA", 16 * kb,       256,   128,  extFuse }, 

359   { { 0x1E, 0x95, 0x0F }, "ATmega328P",  32 * kb,       512,   128,  highFuse }, 

360 

 

361   // Atmega644 family 

362   { { 0x1E, 0x94, 0x0A }, "ATmega164P",   16 * kb,      256,   128,  highFuse }, 

363   { { 0x1E, 0x95, 0x08 }, "ATmega324P",   32 * kb,      512,   128,  highFuse }, 

364   { { 0x1E, 0x96, 0x0A }, "ATmega644P",   64 * kb,   1 * kb,   256,  highFuse }, 

365 

 

366   // Atmega2560 family 

367   { { 0x1E, 0x96, 0x08 }, "ATmega640",    64 * kb,   1 * kb,   256,  highFuse }, 

368   { { 0x1E, 0x97, 0x03 }, "ATmega1280",  128 * kb,   1 * kb,   256,  highFuse }, 

369   { { 0x1E, 0x97, 0x04 }, "ATmega1281",  128 * kb,   1 * kb,   256,  highFuse }, 

370   { { 0x1E, 0x98, 0x01 }, "ATmega2560",  256 * kb,   1 * kb,   256,  highFuse }, 

371        

372   { { 0x1E, 0x98, 0x02 }, "ATmega2561",  256 * kb,   1 * kb,   256,  highFuse }, 

373    

374   // AT90USB family 

375   { { 0x1E, 0x93, 0x82 }, "At90USB82",    8 * kb,       512,   128,  highFuse }, 

376   { { 0x1E, 0x94, 0x82 }, "At90USB162",  16 * kb,       512,   128,  highFuse }, 

377 

 

378   // Atmega32U2 family 

379   { { 0x1E, 0x93, 0x89 }, "ATmega8U2",    8 * kb,       512,   128,  highFuse  }, 

380   { { 0x1E, 0x94, 0x89 }, "ATmega16U2",  16 * kb,       512,   128,  highFuse  }, 

381   { { 0x1E, 0x95, 0x8A }, "ATmega32U2",  32 * kb,       512,   128,  highFuse  }, 

382 

 

383   // Atmega32U4 family -  (datasheet is wrong about flash page size being 128 words) 

384   { { 0x1E, 0x94, 0x88 }, "ATmega16U4",  16 * kb,       512,   128,  highFuse }, 

385   { { 0x1E, 0x95, 0x87 }, "ATmega32U4",  32 * kb,       512,   128,  highFuse }, 

386 

 

387   // ATmega1284P family 

388   { { 0x1E, 0x97, 0x05 }, "ATmega1284P", 128 * kb,   1 * kb,   256,  highFuse  }, 

389    

390   // ATtiny4313 family 

391   { { 0x1E, 0x91, 0x0A }, "ATtiny2313A",   2 * kb,        0,    32,  NO_FUSE  }, 

392   { { 0x1E, 0x92, 0x0D }, "ATtiny4313",    4 * kb,        0,    64,  NO_FUSE  }, 

393 

 

394   // ATtiny13 family 

395   { { 0x1E, 0x90, 0x07 }, "ATtiny13A",     1 * kb,        0,    32,  NO_FUSE }, 

396   

397    // Atmega8A family 

398   { { 0x1E, 0x93, 0x07 }, "ATmega8A",      8 * kb,      256,    64,  highFuse, true }, 

399 

 

400   // ATmega64rfr2 family 

401   { { 0x1E, 0xA6, 0x02 }, "ATmega64rfr2",  256 * kb, 1 * kb,   256, highFuse }, 

402   { { 0x1E, 0xA7, 0x02 }, "ATmega128rfr2", 256 * kb, 1 * kb,   256, highFuse }, 

403   { { 0x1E, 0xA8, 0x02 }, "ATmega256rfr2", 256 * kb, 1 * kb,   256, highFuse },

Yeah, how do I get my 1284P boards on that website?

Shouldn't Arduino as ISP be able to program any microcontroller that supports ISP programming? So basically the entire Atmel atmega and attiny product lines (excepting some very small tiny's)...

CrossRoads:
Yeah, how do I get my 1284P boards on that website?

It's Wikipedia... You just need an ID to edit.

Ray

DrAzzy:
Shouldn't Arduino as ISP be able to program any microcontroller that supports ISP programming?

Maybe. I believe the STK500 protocol is limited to 16 bit addresses which limits programming Flash to 32 k.

So basically the entire Atmel atmega and attiny product lines (excepting some very small tiny's)...

It is my understanding that the tiniest of the ATtinys does not support Serial In System Programming. I believe "TPI" is used instead.

I think the limit is likely 64 kWords (a.k.a. 128 kBytes), cause the mega1284p seems to work fine with things based on the STK500 (e.g. optiboot, and the ArduinoISP sketch)

I believe the STK500 protocol is limited to 16 bit addresses which limits programming Flash to 32 k

.

I think the limit is likely 64 kWords (a.k.a. 128 kBytes),

Nope: thanks to a clever improvement in avrdude 6.1 or higher, you can program the full 256 kByte range of e.g. an arduino mega. The improvement consists of avrdude sending a "load extended address byte" command before addressing a given memory range. I does this by sending the "universal" stk500 commands.