Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

We can do this directly from a parallel port - this just involves connecting the right pins on the parallel port to the right pins on the Mini:

My implementation:
Image Added

The above design is taken from here. The tool we use for programming, AVRDude, calls this design dapa.

...

It is possible to use dasa with a USB-to-serial converter, but the performance is very slow[2]. It is possible to use dapa with a USB-to-parallel converter, but the performance will be equally slow. In addition, I've heard the claim that some USB-to-parallel converters are meant solely to drive printers, and do not implement full parallel port functionality, and so would not work.

USB cable

There are several designs for USB programming cables:

...

USBTiny programmer

The USBTiny is the simplest home-brew USB programming cable. It consists of an ATTiny2313 chip and a few passives, with the ATTiny2313 implementing USB in firmware. It is a very nice design, but slightly outside of USB spec, so may not work with all USB ports. In particular, it has been reported to have problems on Sony Vaio laptops. It also does not work on my Dell Inspiron XPS, although it does work if I use a USB hub between the Inspiron and the programmer. The claimed reason is that USB uses 3.3V signalling, whereas the Atmel uses 5V signaling, and while the USB spec guarantees that a device will not be damaged by 5V, the different signal levels give compatibility problems. People have reported successfully fixing this using zener diodes to level-shift the signals.

The basic schematic is:

Image Added

To use this programmer under GNU/Linux, grab AVRDude 5.1 and USBTiny 1.3 (both are attached to this page). Placing both in a common directory, run:

tar xfvz avrdude-5.1.tar.gz
tar xfvz usbtiny-1.3.tar.gz

patch -p0 -i usbtiny-1.3/patches/avrdude-5.1.diff
cd avrdude-5.1
./configure
make
make install

cd usbtiny-1.3/spi
make

Assuming the ATTiny2313 is connected to be programmed with the serial cable from above, program it using:

avrdude -pt2313 -c dasa -P /dev/ttyUSB1 -U flash:w:main.hex
avrdude -pt2313 -c dasa -P /dev/ttyUSB1 -U lfuse:w:0xff:m

Put the ATTiny2313 in the USBTiny circuit. I tested mine with this command:

./avrdude -pm48 -c usbtiny -C ~pmitros/ilab/mini/usbtiny/avrdude-5.1/avrdude.conf -U hfuse:r:high.hex:i

As of the time of this writing, I have not done much testing on it. It does successfully program the Mini going through a USB hub.

Other USB cables

There are a few more USB cable designs

  • . Very nice design. I have not used this.A more complex one uses a USB-to-serial converter chip. I have not used this one either. This one has two advantages over the simple one above (which probably do not make up for the added complexity):
    • The hardware design is similar to the Mini, so with this guy's firmware, it may be possible to use one Mini board to program another
    • It implements the full STK500 spec, so it is possible to do things like timer calibations
    • It uses a proper USB controller, so will work with any USB port
  • In addition, Atmel makes the AVRATAVRIPSMKII programming cable, available from Digikey. It's fairly inexpensive (~$30), and works quite well. It uses a 6-pin header (Atmel's standard) instead of the 5 pin header we use (standard on hobbyist boards)[3]. The 6th pin takes VCC, which we need to run from the main header. I've used this to program the Mini. I just ran 5 hookup wires from the plug on the MKII to the header on the Mini, and so that I wouldn't forget the configuration, I put hot glue around the wires. The sixth wire goes to the VCC pin on the Mini:
    Image Added

Footnotes

1.

Anchor
zener
zener
We actually only need the zener diode clipping circuit on the output pins of the serial port. I usually place them on all the pins so that I can't accidentally damage something in the case of a wiring error. One could do this with the ground connection as well.

...