Programming a flash memory
One new feature in the embedded system project 2003 is that the project is demonstrated with a real microcontroller. In other words the students will develop their code in an emulator environment but at the final stages of the project the code is tested and demonstrated with a real microcontroller.
Here are the instructions for using PonyProg2000 and the ISP-feature of the microcontrollers to dowload the code to an Atmel AVR microcontroller.

Hardware

The microcontroller is connected to a PC with a serial cable. The connection is almost direct, only the voltage levels must be adjusted. The schematic for the programming connection is shown in the picture below.

There are two ways to handle this:
1) You can add this circuitry (2 diodes and 2 resistors and the connector) to you PCB. This is recommended, especially if you are going to use serial port anyway and you'll have the connector already onboard. As the programmer does not use the Rx and Tx pins of the serial cable, both the programmer circuitry and serial connection can exist in parallel.
2) You can make this circuitry externally and add only headers to your PCB. This is recommended if you are not going to use serial port in your design.

Software - PonyProg2000

The PonyProg2000 can be used to program several different ISP-supported microcontrollers. To program an Atmel AVR microcontroller do the following:

1) Open the PonyProg2000 application.
2) From the menu select Setup -> Calibration and wait for the calibration to complete.
3) From the device selection pull down menus (at the right edge in the menu bar) select "AVR Micro" and "ATmegaXX" depending on your controller.
4) From the menu select Setup -> Interface setup and set the right configuration: serial port, SI Prog API, COM1, nothing inverted.
5) From the menu select File -> Open device file and select your *.hex-file.
6) Start pressing the reset button of your MCU and keep pressing...
7) Press Write device button and then Yes button and wait for the programming to complete.
8) Release the reset button. If everything went fine the PonyProg2000 tells that you have succesfully programmed your device.
...and so you're done.