Forum: Mikrocontroller und Digitale Elektronik ADC-Initialisierung erhöht Stromverbrauch enorm


von Karl (Gast)


Lesenswert?

Hallo,

ich habe gerade ein kleines Board (Atmega 644p @16MHz) mit mehreren 
Sensoren aufgebaut. Mein Netzteil läuft beim Versorgen allerdings immer 
in die Strombegrenzung (120mA). Nachdem ich lange nach einem Kurzschluss 
in der Schaltung gesucht habe und eben keinen gefunden habe, habe ich 
ein leeres Programm aufgespielt (nur 30mA fliessen).

Ich konnte den Stromanstief auf die Zeile ADC_init eingrenzen. Ist die 
Zeile drin geht es in die Begrenzung, ansonsten liegt der Verbrauch bei 
ca.70mA (LEDs...).
1
int main(void)
2
{
3
/*
4
  DDRC = 0b11111111; 
5
  PORTC = 0b00000000; 
6
*/  
7
  DDRA = 0x00;          
8
  uart_init0();
9
  timer1Init();
10
  timerPWMInit();
11
  //ADC_Init();             //Die böse Funktion
12
  SPI_MasterInit();
13
  control_init();
14
  
15
  sei();
16
  
17
  while(1)
18
  {
19
  ...

die Funktion ADC_Init()
1
void ADC_Init(void) {
2
 
3
  uint16_t result;
4
 
5
  ADMUX = /*(1<<REFS1) | */(1<<REFS0);
6
  
7
  ADCSRA = (1<<ADPS2)|(1<<ADPS1) | (1<<ADPS0);     
8
  ADCSRA |= (1<<ADEN);                  
9
10
  ADCSRA |= (1<<ADSC);                  
11
  while (ADCSRA & (1<<ADSC) ) {         
12
  }
13
14
  result = ADCW;
15
}

Ich brauch die ADC Eingänge auch nicht auslesen, die Initialisierung 
reicht. Achja, ich habe einen Analogsensor dran mit Werten zwischen 0 
und 5V, die Werte liegen auch in dem Bereich

Ich kann mir das nicht erklären, vielleicht hat jemand eine Idee

Vielen Dank

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wie sieht die Beschaltung aus? Aref gehört z.B. nicht an GND sondern 
offen oder über Kondensator,

von Karl (Gast)


Lesenswert?

Arrgh...

Genau das ist der Fehler, da ist ein Kurzschluss von ARef auf GND. Ich 
hätte gedacht, das ich den auch ohne die Initialisierung bemerke. Naja, 
hätte ich auch selber drauf kommen können -.-

Jedenfalls vielen Dank für deine Hilfe

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.