-         

Ergebnis 1 bis 4 von 4

Thema: atmega8 lcd und powerdown

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    66

    atmega8 lcd und powerdown

    Anzeige

    Hallo,

    ich möchte über 1wire und ds1820 eine temperaturanzeiger für einen wasserspeicher bauen. Angeschlossen an einen Atmega8L ist ein 8*2 LCD ohne Hintergrundbeleuchtung. Da ich die Schaltung für den Batteriebetrieb auslegen möchte soll der Programmablauf so aussehen -> Nach drücken der Reset-Taste (Resetpin) wird der µC und das LCD eingeschaltet. Nun läuft ein Timer der den µC und das LCD nach 30 Sekunden in den Powerdown-Modus schickt. Das klappt auch so weit ganz gut nur hab ich, wie ich finde, eine zu hohe Stromaufnahme und ein Verhalten das ich mir nicht erklären kann?

    Zustand 1: Powerdown (LCD nicht abgeschaltet) -> Stromaufnahme: 1,2mA
    Zustand 2: Powerdown (LCD per Software abgeschaltet)-> : 1,5mA

    Stromaufnahme des LCD nach Abschaltung durch Sotware: 1mA
    Stromaufnahme (LCD)ohne Abschaltung (nach powerdown) : 0,7mA

    Warum ist der Stromverbrauch bei abgeschaltetem Display höher als bei
    eingeschaltetem? Zieht das Display vieleicht über die Datenpins vielleicht noch Strom??? Wie kann ich das Display nach powerdown komplett stromlos schalten?



    Gruß Markus
    Code:
    $regfile = "M8def.dat"
    $crystal = 1000000
    
    
    '+++++++++Display-Config+++++++++++
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portb.0 , Rs = Portb.6 , E = Portb.7
    Config Lcdbus = 4
    Cursor Off
    
    
    '+++++++++config timer+++++++++++++
    Config Timer1 = Timer , Prescale = 1024
    On Timer1 Zeit
    
    Enable Timer1
    Enable Interrupts
    Timer1 = 64558
    
    Dim Sekunde As Byte
    Sekunde = 15
    Dim Minute As Byte
    
    Locate 1 , 1
    Lcd "Temp"
    Lowerline
    Lcd "Ver 0.1"
    
    Waitms 2000
    
    Cls
    
    Locate 1 , 1 : Lcd "O"
    Locate 1 , 4 : Lcd Chr(223)                                 '223 = binär 11011111
    Locate 1 , 5 : Lcd "M"
    Locate 1 , 8 : Lcd Chr(223)                                 '223 = binär 11011111
    Locate 2 , 1 : Lcd "U"
    Locate 2 , 4 : Lcd Chr(223)                                 '223 = binär 11011111
    
    Do
    
    If Sekunde = 0 Then
    Gosub Poweroff
    End If
    
    Locate 2 , 6
    Lcd Sekunde
    
    Loop
    End
    
    Zeit:
     Timer1 = 64558
     decr Sekunde
     Return
    
    Poweroff:
    
    Cls
    Lcd "power"
    Lowerline
    Lcd "down"
    Wait 2
    Display Off
    Powerdown
    Return

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.10.2009
    Beiträge
    120
    Hi Malte,

    hast du da einen Schaltplan? Sind Pullups an den Ports aktiviert?
    Sind Pins eigentlich als Input oder Output geschaltet?
    Ein Input kan wenn der "in die Luft haengt" auf Rauschen
    hin-und-herschalten und so Strom verbrauchen.

    Wirst du die Schaltung IMMER ueber eine Taste "starten"?
    Wenn ja, kannst du auch die Stromversorgung HW-abschalten und garantiert 0mA verbrauchen im PowerDown.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.01.2008
    Beiträge
    66
    Einen Schaltplan hab ich noch nicht gezeichnet. Einen zusätzlichen Verbrauch konnte ich noch beim Poti für die kontrasteinstellung entdecken. Trenne ich die +5V des Potis, habe ich nur noch 0,6mA.

    Welche pins für In/Output meinst du? Sollte ich die Pullups der pins für die Datenleitungen (LCD) einschalten oder generell alle unbenutzten pins?

    Ja ich werde den Mega über einen Taster einfach durch reset "wecken".

    Mir ist aber immer noch nicht klar warum der Stromverbrauch bei abgeschaltetem LCD höher ist als im eingeschalteten Zustand. Das LCD ist ganz normal im 4bit-Modus und poti für Kontrast am Controller angeschlossen.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.10.2009
    Beiträge
    120
    Hi Malte,

    generell gilt: ALLE I/O-Pins sollten einen definierten Zustand haben. Nicht angeschlossene Pins sollten entweder als Output definiert werden, oder als Input mit Pullup aktiviert. Dann verhindert man das die als Inputs definiert sind, die "in der Luft haengen" und Strom verbrauchen an der Eingangsstufe weil die hin-und-her toggeln.

    Wie sendest du denn eigentlich das LCD in "Power Down"?
    Hat das so einen Funktion, ist es im Datenblatt beschrieben?

    Wie gesagt, wenn du mit einem Transistor die Schaltung komplett von der Batterie trennst, hast du 0mA Stromverbrauch...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •