-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Problem mit Powerdown Modus

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282

    Problem mit Powerdown Modus

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich habe mir eine Alarmanlage gebaut, die seit 1 Monat im Einsatz ist und bis heute einwandfrei funktioniert hat.
    Leider wurde ich heute, durch eine Fehlfunktion, unsanft geweckt.
    Aber ich konnte die Ursache nicht finden. (Hardware oder Software)
    Hier mal ein Codeausschnitt, der den Ablauf zeigt:

    Code:
    $regfile = "m8def.dat"
    $crystal = 4000000
    
    Config Timer1 = Timer , Prescale = 64
    Const Timer_start = 6250                          'alle 100ms Überlauf
    Load Timer1 , Timer_start
    Enable Timer1
    On Timer1 Int_1                                   'Timer für alles mögliche
    
    On Int0 Int_0                                     'Externer Interrupt 0
    Disable Int0
    
    Enable Interrupts
    Alarm Alias Pind.2                                'Pin für ext. Interrupt 0
    Dim Zeit As Word                                'mit ext. Pullup
    '-------------------------------------------------------------------------------
    Do
    If Alarm = 0 Then Exit Do                         'bei extern Interrupt, Schleife 2
       If Zeit > 1800 Then                            'nach 3 min, Powerdown
       Enable Int0                                    'ext. Interrupt 0 aktivieren
       Powerdown
       End If
    Debounce Taste1 , 0 , Subroutine1 , Sub           'bevor Powerdown
    Debounce Taste2 , 0 , Subroutine2 , Sub           'div. Einstellungen möglich
    Loop
    
    Do
                               'Alarm Ablaufsteuerung
    Loop
    
    End                                               'Programmende
    '-------------------------------------------------------------------------------
    Int_0:
    Disable Int0                                      'Int 0 sperren, wegen Mehrfachauslösung
    Return
    
    Int_1:
    Load Timer1 , Timer_start                         'Startwert neu laden
    Incr Zeit                                         ' Zeittakt erhöhen
    Return
    Ich kann mir nicht erklären, wie das Programm in die 2.Schleife (Ablaufsteuerung) gelangt ist.
    Pind.2 (ext. Interrupt) ist definitiv nicht "0" geworden, das hätte ich optisch sehen können.

    Hat jemand eine Idee, wie die MCU "aufgeweckt" wurde ?
    Die Hardware wird durch ein Schaltnetzteil gespeist.
    Kann es eventuell durch eine Spannungsspitze im Netz passiert sein ?

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Prosit ! Hat ja gut angefangen *hehe*
    Tschja, eine Überlegung:
    Du passt zweimal auf den alarm pin auf. Einmal durch interrupt, gleichzeitig aber auch in der ersten do-Schleife. Den Interrupt startest du erst bei Zeit > 1800, aber die Abfrage Alarm = 0 immer, also auch sofort.

    WENN (dreimal wenn) du einen Strom-aussetzer gehabt hättest und der Controller läuft wieder bei Null weg, prüft er SOFORT den Pin und verläßt DO. d.h. er gibt dem Pin keine Chance, Highpegel einzunehmen.
    Wie du dann geschaut hast, war der Pegel ja dann hoch, nur eben ein paar Zyklen zu spät. Wenn das ein längerer Draht ist, hat er ja Kapazität.

    Da das aber bei jedem Einschalten dann so wäre, könnte das nur dann der Grund sein, wenn der Brown-Out Reset schneller als der normale Reset wäre. ??????

    Alles nur eine Überlegung. Auf jeden Fall solltest du ERST die Zeit checken, und dann erst Alarm = 0 abfragen, sonst hat's ja keinen Sinn mit dem enable-Delay.

    Ich glaub schon an einen von aussen ausgelösten Effekt.


    EDIT: Frag in der Umgebung. Vielleicht sind ja noch 57 andere Alarmanlagen losgegangen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Hallo Robert,

    frohes neues Jahr noch.

    Du passt zweimal auf den alarm pin auf. Einmal durch interrupt, gleichzeitig aber auch in der ersten do-Schleife. Den Interrupt startest du erst bei Zeit > 1800, aber die Abfrage Alarm = 0 immer, also auch sofort.
    Eigendlich nur einmal. Beim Programmstart ist Int0 deaktiv und es wird Pind.2 direkt abgefragt. Wenn kein Alarm anliegt, kann ich über Taster1 und 2 div. Einstellungen vornehmen.
    Erst wenn 3 min um sind, wird Int0 aktiviert, um Pind.2 via Interrupt zu überwachen.
    Bei Alarm wird dann sofort Schleife2 angesprungen und die Abfrage in Schleife1 ist hinfällig.

    WENN (dreimal wenn) du einen Strom-aussetzer gehabt hättest und der Controller läuft wieder bei Null weg, prüft er SOFORT den Pin und verläßt DO. d.h. er gibt dem Pin keine Chance, Highpegel einzunehmen.
    Wie du dann geschaut hast, war der Pegel ja dann hoch, nur eben ein paar Zyklen zu spät. Wenn das ein längerer Draht ist, hat er ja Kapazität.
    Aus diesem Grunde habe ich einen externen Pullup Widerstand eingebaut.
    Damit soll gewährleistet werden, dass der Pin schon auf High liegt, bevor der Prozessor anfängt zu arbeiten.

    Auf jeden Fall solltest du ERST die Zeit checken, und dann erst Alarm = 0 abfragen, sonst hat's ja keinen Sinn mit dem enable-Delay.
    Das wäre eine Möglichkeit.
    Nach dem Powerdown wird im Alamfall ja wieder in Schleife1 weiter gemacht und die Variable Zeit müsste noch auf einem Wert > 1800 stehen. Wenn nicht, würde der Alarm ja erst nach 3 min gemeldet werden.

    Frag in der Umgebung. Vielleicht sind ja noch 57 andere Alarmanlagen losgegangen
    Wohl kaum. Die meisten "preiswerten" Alarmanlagen arbeiten mit primitiven Logikgattern. Da ich mehr Komfort wollte (Alarmmeldung via Handy e.t.c) war das der Grund, warum ich einen AVR verbaut habe.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Naja. Ich denk, du solltest, bevor du hw oder sw änderst, wirklich die Startup-Sequenz nach allen Richtungen abklopfen, ob da irgendwas möglich ist. Eigentlich ist das ja die einzige Zeit, wo Seltsames geschehen kann.
    Ideal wär es, du könntest den Fehler im bestehenden System irgendwie erneut erzeugen.
    Störungen, die nur am Neujahrstag auftreten, sind halt ein Hund.
    Wie konntest du (optisch) feststellen, daß der Pin nicht normal ausgelöst hat ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Ideal wär es, du könntest den Fehler im bestehenden System irgendwie erneut erzeugen.
    Das wäre optimal.
    Ich habe das System am Anfang im Ruhezustand (ohne Alarmsimulation) ca 1 Woche laufen lassen. Erst danach habe ich verschiedene Alarmmeldungen getestet.
    Alles ohne irgendwelche Probleme.
    Wie konntest du (optisch) feststellen, daß der Pin nicht normal ausgelöst hat ?
    Das war total eigenartig ?
    In der Schleife2 wird die Variable "Zeit" auf 0 gesetzt und danach eine LED eingeschaltet (direkt, nicht als Subroutine), was aber nicht erfolgte.
    Darauf folgt eine zeitliche Abfolge von Abläufen. (Select Case Zeit)
    In den ersten 5 min (Zeit<3000) hätte akustischer Alarm kommen müssen, was ebenfalls nicht erfolgte.
    Nach 5 min (Zeit > 3000) erfolgt der erste Anruf, und das hat funktioniert.
    Da meine Nummer die erste in der Kette ist, muss die Variable Zeit schlagartig auf einen Wert zwischen 3000 und 6000 gesetzt worden sein ???

    Ich habe mir überlegt, im Int0 (Alarm) zusätzlich den Watchdog zu starten, um sicher zu gehen, dass nach 2 Sek der Alarm immer noch ansteht. Das dürfte dann zumindest gegen Spannungsspitzen im Netz helfen ?

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    *mmhhhh* Das ist jetzt ein bißchen zu viel Mystik (eine Mystik hätt ich ja akzeptiert).
    Wenn du keine Geheimnisse drin hast, soltest du dein komplettes Programm posten, da gibt's wohl irgendwelche unerwünschte Wechselwirkungen.
    Klaro, den Alarmsensor gewissermaßen zu entprellen, kann kein Fehler sein.
    Mach aber erst eine Kopie, vielleicht kommen wir ja doch noch drauf. Das nächstemal weckt dich die Feuerwehr und und das Einsatzkommando.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    @Albundy

    Schonmal ausgiebig die Störfestigkeit geprüft ?
    Schließlich hängen ja lange Leitungen drann und das sind hervorragende Müllschlucker für jede Art von Störung.
    Aber das weißte ja selber.

    Deine Vermutung auf das Netzteil wäre ein ansatzpunkt.

    Bei mir schaltet der Versorger so ein bis Zweimal im jahr unsauber um so das ne kräftige Störwelle durchs Netz schleudert.

    Apropos Stromversorgung:

    Akku fürn notlauf haste aber drinne ja ?
    Gruß
    Ratber

  8. #8
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Das nächstemal weckt dich die Feuerwehr und und das Einsatzkommando.
    Eine Aufschaltung zur Feuerwehr oder Polizei ist in Deutschland für Privathaushalte nicht möglich. (außerdem müssen solche Anlagen zertifiziert sein) Und selbst da, treten hin und wieder, nicht nachvollziehbare, Fehlalarme auf.

    @Ratber
    Schonmal ausgiebig die Störfestigkeit geprüft ?
    Gute Frage !
    Wie könnte denn eine Störfestigkeitsprüfung aussehen ? Spannungsspitzen zu simmulieren scheidet ja irgendwie aus.
    Bei mir schaltet der Versorger so ein bis Zweimal im jahr unsauber um so das ne kräftige Störwelle durchs Netz schleudert.
    Ich hatte vor einiger Zeit auch mal Ärger in dieser Richtung. Habe mich bei der BEWAG beschwert und bekam für 1 Woche einen Schreiber angeschlossen. Was soll ich sagen ... -> es waren keine Unregelmäßigkeit vorhanden.
    Akku fürn notlauf haste aber drinne ja ?
    Ich hoffe, du kannst schweigen, im Moment noch ohne Akku.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich seh da zwei Richtungen: Die Technische mit Donner und Blitz und E-Werk, da kann ich nicht viel dazu sagen, was du nicht eh weißt.
    Und die andere Richtung, daß die Software eigentlich nach jedem x-Beliebigen Störungschaos wieder einen definierten Zustand herstellt.
    d.h ganz einfach absolut wasserdicht.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Wie könnte denn eine Störfestigkeitsprüfung aussehen ? Spannungsspitzen zu simmulieren scheidet ja irgendwie aus.
    Och da gibt es schon einiges was mit Hausmitteln zu machen ist.

    Staubsauger knallen schön ins Netz sowie Halogenbeleuchtungen mit einfachem Trafo (Keine Elektronischen)
    Diverse Werkzeugmaschinen lassen es auch ganz nett knacken im Radio

    ansonsten kannste mit einer selbstgebastelten Luftspule und einem Trafo selber mal Sender spielen.
    Ich würde bei den Alarmleitungen verzögerngen empfehlen dffalls noch nicht vorhanden


    Ich hatte vor einiger Zeit auch mal Ärger in dieser Richtung. Habe mich bei der BEWAG beschwert und bekam für 1 Woche einen Schreiber angeschlossen. Was soll ich sagen ... -> es waren keine Unregelmäßigkeit vorhanden.
    Bewag ?
    Sind das die die demnächst zum Zweitenmal in 6 Monaten die Preise um ca. 10% anheben ?
    Naja,zugeben tun die Versorgwer nie etwas (Siehe Münsterland).
    Selbst wenn der Laden brennt heißte es meist "Wir sehen keine Probleme"



    Ich hoffe, du kannst schweigen........
    Mein Name ist Hase (Siehe Ohren)

    Nene dickerer Elko in der Versorgung und ne Drossel könnten da schon helfen
    Gruß
    Ratber

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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