Modern PCs rarely have a serial or parallel port any more, to the great regret of anyone who experiments with microcontrollers every now and then. In the old days it was very simple to use the parallel port of a standard PC and program just about any type of AVR microcontroller with it. When you want to do that now, you’re first obliged to buy a programmer that communicates with the PC via USB, which immediately raises the threshold of getting started with these microcontrollers. The circuit presented here offers a solution to this. As you can see from the schematic, this is a very simple circuit, built around a cheap, standard AVR microcontroller plus a handful of passive components. You may have already observed that this microcontroller does not have a USB interface and the circuit does not use a USB to serial converter either. The strength of this circuit is found in the firmware. The USB interface has been implemented in software, as we have shown in an earlier article ‘AVR drives USB’ in the March 2007 issue.
The firmware ensures that the circuit is recognised by the PC as a serial port and communicates with AVR Studio, the standard Atmel development environment, as if it were a ‘real’ AVRISPprogrammer.
The circuit is easily built on a small piece of prototyping board or even on a breadboard, since the controller is available in a DIP-28 package. If you are going to program the controller yourself (via connector K2) then make sure that you set the configuration fuses so that the internal oscillator uses the external crystal as the clock source. Jumper K3 is provided in the event you would like to power the circuit to be programmed from the USB port. We do not recommend that you do this, however, but sometimes there is no other option. K4 is a 10-way box header which has the same standard pinout that Atmel uses everywhere