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







Zitieren

Lesezeichen