The ATtiny11 is an 8-pin microcontroller from Atmel that has recently
attractive prices ($0.25) resulting in a group buy organized by
Chetan Bhargava on the PICList of
600+ units. One of the older AVR processors, the ATtiny11
requires 'High voltage serial programming', which most of the hobbyist
programmers documented on the net do not support.
A couple of PICList members set out to design PCBs for this design, and
this is mine. This PCB design is released to the public domain,
but note that the original design is owned and copyrighted by Arne (as
mentioned on his
web page.) The schematic was re-entered using
Cadsoft's EAGLE layout tool,
which was also used for the PCB
design. EAGLE has a freeware downloadable version suitable for
printing and manipulating the schematic and board files (this design
fit entirely within the constraints of the freeware license.)
Notes on the PCB design.
The PCB is laid out in a manner that is supposed to make it relatively
easy to fabricate using the methods normally available to the
hobbyist. Traces are wide, design rules are relaxed, and the
board is single sided. A more compact design is certainly
possible, but I tried to leave a lot of room around the programming
socket to make it easier to get chips in and out, and didn't see much
point in attempting the smallest board possible. There are a lot
of holes in this board. Drilling them will not be fun
need not use the type of DB9 connector shown. Purists may object
to the multiple resistor orientations. Tough!
Version 2 changes include:
Better component placement. LEDs
all together, transistors lined up, same hole spacing for all
Provision for "run mode" using center-off 12V switch, and connecting
the unused tiny11 pin to an LED.
Use common american rather than common european transistors.
Further relax design rules: increase pad sizes, reroute DB9 trace
AROUND connector rather than between pins.
Notes on part substitutions and
The prototype was run off on an LPKF PCB plotter, and assembled with a
rather free hand with respect to part substitutions. All the 1.2k
resistors became 1k. The 12k resistor became
10k. The current limitting resistors for the LEDs got modified to
better match my LEDs (the "12V on" got a 1k, the "active" got
470.) The transistors became some house-marked supposedly 2n3904
equivalents. A full-sized regulator was used, although it's not
necessary. It seems to work.
Any general purpose NPN switching transistor should work, but watch the
transistor insertion in the PCB. The BC550B's shown have what I'd
call a CBE pinout, while the 2n3904s have an EBC pinout. Other
common transistors have an CEB pinout. Whatever you end up using
may or may not match the silkscreen shown.
Parts of the programmer are "optional" can can be omitted for simpler
assembly (you can omit drilling the holes too.) This is mostly
the LEDs and associated driving circuitry.
Additional Notes on the prototype.
The prototype PCB is slightly different than the design published
here. It has 'polygons' for GND and VCC, which works better on an
LPKF-style machine but perhaps not as well with something like toner
transfer. The hot-melt glue you see is what passes for "strain
relief." The switch is from Electronics
Goldmine, a SPDT with center-off (hmm. since sold out.
Notes on using the programmer and
The progammer needs a regulated 12V supply. BEWARE cheap
unregulated wall-wart supplies that may exceed 12V (by a great deal)
when lightly loaded. Similar comments apply to batteries; I was
tempted to power this from a stack of Lithium coin cells, but a fresh
such cell measures closer to 3.4V than 3V. The prototype was run
from a benchtop (CCCV) power supply.
On fast computers, you may need to click the "delay" option from
the menu. The prototype worked fine with W98se running on a
1GHz+ Athlon system, with or without the "delay" option.
A transition on VPP to 12V is necessary to properly enter programming
mode on the tiny11 chip. This means that all the programmer
should start with 12V off. Don't turn on 12V till the programming
software tells you to. The full programming sequence looks
something like this:
1) 12V switch off
2) power shut off (unplugged, or turned off at the supply)
3) insert chip
4) Start programming SW
5) Click 'check signature'
6) 12V switch on
7) (should say "OK" of some sort.) 12V switch off.
8) set file and click 'program flash'
9) 12V switch on when requested.
9) (should give nice status reports, and say "OK" when done.) 12V
10) set fuses if required. (more 12V switching.)
11) power shut off (at supply)
12) remove chip
You can run the tiny11 on the programmer if the power supply is turned
down to about 5V. The processor will
be supplied with (5 - Vregulator-drop), and the
12V switch will switch "reset" between 0 and 5V, which seems to allow
the chip to run normally. Or, the fuses can be set to disable the
reset function. PB3 (on pin 2) can be set to output by AVR
software and tuggled to flash the "active" LED if the serial port is
disconnected, permitting simple test programs to be run. The
following hex file (from Chetan
Bhargava) will flash the active LED on
the programmer board:
tiny11-prog-v2.sch Cadsoft Eagle schematic file
tiny11-prog-v2.brd Cadsoft Eagle PCB layout file
tiny11-prog-v2-brd.png graphic of board
tiny11-prog-v2-sch.png graphic of schematic
Photo of the prototype
tiny11-prog-v2.pdf In theory, this is
just 1:1 image of the solder side of the board, and can be used to
create a board without using eagle.