ISP of multiple Tiny85s on a PCB

Hi all,

I'm designing a PCB that will have multiple SOIC8 ATtiny85s, while developing they will of course need to he flashed numerous times but even when finished there will be upgrades, bug fixes etc.

So my question is, how can I implement the ISP for all these chips?

My current circuit looks like this (for 2 chips, this will be replicated 8 times making 16 processors in total).


  • The application requires all the SPI signals to be in parallel.
  • There are 16 PGM signals (PGM1-16) running to a header, they can be connected with a flying lead to the RST of the programmer.- The normal RESET function has to be maintained, hense the BAT75 so a system reset gets all chips but a programming reset only affects the chip being programmed.
  • SS is handled in software, in theory all chips NOT being programmed will hold MISO in tri-state and ignore the activity on the other lines.
  • If however I get a rogue chip that won't release it's MISO line I will be in trouble, to handle this I might allow each chip's VCC to be disconnected or just flash it to force it to behave. Assuming I can identify the culprit that is.- SPI lines will be buffered so the programmer doesn't have too much loading.- There's almost NO way to add components, the board is chocka block, but for a creative idea I might be able to rearrange a few things, I haven't run traces yet.- I know I should have pullups on RST, I may have to rely on the internal one.

Any faults in this, or better ideas?


I'd maybe try this with 2 chips first in a separate test circuit before committing the final design. It sounds reasonable, but....who knows.

What programmer are you planning on using? The AVR-ISP mkII does NOT like series resistors on any of the lines.

-- The Quick Shield: breakout all 28 pins to quick-connect terminals

I currently use an STK500, but who knows in the future and if others use the board of course anything goes. There are no resistors involved, the signals run through a backplane to possibly several boards each of which has buffers so max loading on any signal should be 5-6 74HC or whatever inputs + capacitance of the backplane connectors.