Die 4,5V am Mega8 sind ok, der kann auch mit deutlich weniger arbeiten. Zuerst verabschiedet sich wohl die IR-Kommunikation wenn die Bordspannung extrem niedrig ist.

Das Problem ist die Batteriefunktion im Bootlader des asuro. Hierbei wird die Spannung (mit interner 2,56V-Referenz) gemessen. Da der Bootlader nicht öffentlich ist habe ich mich mal am Bootlader auf Henks Site orientiert: http://home.planet.nl/~winko001/Asur...uBtlPagFrm.htm

Hier wird in asm_main.s die Batteriespannung überprüft:
Code:
batt_loop:
	sbic	IO_REG(ADCSRA), ADSC
	rjmp	batt_loop
	in		temp1, IO_REG(ADCL)
	in		INT_REG_H, IO_REG(ADCH)
	clr		INT_REG_L
	add		INT_REG_L, temp1
	adc		INT_REG_H, r1
	subi	INT_REG_L, lo8(BATT_MIN)
	sbci	INT_REG_H, hi8(BATT_MIN) 
	brcc	batt_ok						// spannung ok!
/*
	versorgungs-spannung zu gering
*/
	sbi		IO_REG(PORTD), PD6

batt_ok:
Wobei der Vergleichwert in asm_include.h definiert ist:
Code:
#define BATT_MIN 770  		// minimalster batterie-wert ca. 4,2V
Nicht verwirren lassen! Bei 2,56V Referenz (kann allerdings schwanken!) und 10 ADC-Auflösung würde die Überwachung bei unter

2,56V/1024*770 = 1,925V

ansprechen. Wobei ich davon ausgehe das auch der orginale Bootlader auf den selben Wert prüft.

Der Spannungsteiler R11,12 und 13 bestimmt die Höhe der Spannung an Pin28:

4,5V / (0,1kOhm+12kOhm+10kOhm) * 10 = 2,03V

Wenn man R12 und R13 tauscht würde man die Messspannung etwas anheben:

4,5V / (0,1kOhm+12kOhm+10kOhm) * 12 = 2,44V

Allerdings darf die Spannung am ADCPin nicht höher als die Referenz werden:

5,0V / (0,1kOhm+12kOhm+10kOhm) * 12 = 2,71V!
5,5V / (0,1kOhm+12kOhm+10kOhm) * 12 = 2,99V!

Das scheint alles etwas riskant. Besser wäre wohl den 12K-Widerstand durch 10k zu ersetzen:

4,5V / (0,1kOhm+10kOhm+10kOhm) * 10 = 2,24V
5V / (0,1kOhm+10kOhm+10kOhm) * 10 = 2,49V
5,5V / (0,1kOhm+10kOhm+10kOhm) * 10 = 2,73V!

Bevor du aber nun was änderst solltest du mal abwarten ob noch eine andere Meinung abgegeben wird. Möglicherweise streut die interne Referenz deines Mega8.

Gruß

mic