Wie gesagt, ich vermute mal es ist ein silicon bug mit im Spiel oder/und ein Bug im Pony. Von dem Problem hab ich schon öfter gehört, (weiß jetzt nicht mehr mit welchen Proggern).

Bei mir ist der Ablauf so: Zum Brennen wird per make-Target ein sh-script gestartet. Das script bekommt die mcu geliefert. Es schreibt ne tmp-datei und startet danach pony.

Makefile:
Code:
BURN_SCRIPT    = /d/avr/bin/burn-prog.sh

.PHONY: burn

burn: $(PRG).hex
	sh $(BURN_SCRIPT) $< $(MCU_TARGET)

burn-prog.sh
Code:
#!/bin/sh

burn=e:/temp/burn-tmp.e2s
pony=e:/PonyProg2000/PONYPROG2000.EXE

case $2 in
	at90s2313)
		target=AT90S2313
		;;
	atmega8)
		target=ATmega8
		;;
	at90s8515)
		target=AT90S8515
		;;
	*)
		echo !!! Unknown Target $2;
		exit 1;
		;;
esac

portion=PROG

echo Burning $1 for $target
rm -rf $burn

echo "# generated file" > $burn

EEPROM_FILE=`basename $1 .hex`_eeprom.hex

#------ START --------
#Programming sequence
echo "SELECTDEVICE $target" >> $burn
echo "call \"echo Clearing buffer...\"" >> $burn
echo "CLEARBUFFER" >> $burn
echo "call \"echo Loading PROG from $1...\"" >> $burn
echo "LOAD-PROG $1" >> $burn

echo "call \"echo read FUSE...\"" >> $burn
echo "READ-FUSE" >> $burn

# LOAD-DATA eeprom.hex
# echo "PAUSE \"Reinstöpseln, anschalten, und los geht's!\"" >> $burn
# READ-CALIBRATION 0x3ff
echo "call \"echo Erasing $target...\"" >> $burn
echo "ERASE-ALL" >> $burn
# echo "WRITE&VERIFY-ALL" >> $burn
echo "call \"echo Writing PROG to $target...\"" >> $burn
echo "WRITE-PROG" >> $burn
	
$pony $burn
Dateinamen musst du natürlich anpassen. Die Stellen findest du. In dem Script steht noch etwas Müll rum den kannst du entsorgen.
Was genau gemacht wird wird dir klarer, wenn du in die erzeugte tmp-Datei reinguckst ($burn)