Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The simplest one consists of an ATTiny2313 chip and a few passives. 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
  • In addition, Atmel makes the AVRATAVRIPSMKII programming cable, available from Digikey. It's fairly inexpensive (~$30), and works well. It uses a 6-pin header (Atmel's standard) instead of the 5 pin header we use (standard on hobbyist boards)[2]. 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:

...

1.

Anchor
usbspeed
usbspeed
USB is moderately high latency (the numbers I've seen for low latency USB devices are order of magnitude is 1-30 ms, depending on device). Assuming AVRDude waits for each operation to finish before the next one, sending one bit requires 3 bit flips (3-90 ms). Sending one byte requires 24 bit flips (24-720ms). This gives ballpark of 1-42 bytes/second. What I saw when using a dasa cable with a USB-to-serial converter (5 bytes/second) was close to the middle of that, so I believe that was my problem. The adapter uses an FTDI USB-to-serial chip, most of which are designed to also be able to bit bang with the RS232 control pins, so I doubt choice of dasa lines was the problem - it ought to be able to flip all of them comparably quickly. The same dasa adapter worked at normal speed when it used an actual motherboard with a serial port.

2.

Anchor
headers
headers
There are 3 standard programming headers. Most hobbyist projects use a 5-pin, 1 row header like the one that we use. 1 row is convenient, since it also fits in protoboards, and in addition, the pins are in the same order as on the microcontroller, so it is easy to wire. This has 4 programming pins and ground. Atmel has an official header that has 6 pins in 2 rows: the four programming pins, power and ground. 2 row connectors do not interface nicely into protoboards. Atmel also has a 10 pin header, that adds more grounds, and an unconnected wire. I don't know if the additional grounds have any purpose – they provide better shielding, but I given the low speeds, I'd be surprised if that was an issue.