-
        

Ergebnis 1 bis 9 von 9

Thema: ATMEGA644p resettet sich selbst ?

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341

    ATMEGA644p resettet sich selbst ?

    Anzeige

    Hi,

    ich habe ein Problem mit dem ATMEGA644p. Ich sende Daten über die RS232 Schnittstelle an den 644p.

    Die Datensätze (bestehend aus 5 Byte) werden vom Pc in Abständen von ca. 50ms an den 644p gesendet.

    Nach einer gewissen zeit (kann ich keine genauen Angaben machen) resettet sich der Controller von alleine und gelangt in einen Zustand als hätte man ihn gerade frisch geflasht.

    Kann es dafür eine logische Erklärung geben ?

    In der UART Empfangsroutine wird nichts anderes gemacht als das ankommende byte auf kreterien zu überprüfen und dann bei übereinstimmung ins pwm timerregister zu schreiben.

    Ich hoffe jemand kann mir helfen diesem Mysterium auf den Grund zu gehen.

    mfg Yannic

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Kann es dafür eine logische Erklärung geben ?
    Da bin ich mir sicher.

    Du wirst aber deinen Code herzeigen müssen, sonst kann dir keiner helfen.

    Zum Arzt musst du ja auch persönlich gehen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Dabei gibt es ein kleines aber feines Problem

    Ich programmiere für jemanden eine Pc Software. Er möchte seinen Controllercode allerdings nicht rausgeben. Somit kann ich zum Code der sich auf dem Controller befindet nicht mehr sagen als ich erfahre.

    Nur kann man sowas grundsätzlich nicht schon auf einen gewissen bereich eingrenzen ?

    Denn das Problem tritt ja nur beim übertragen der Daten vom Pc zum µC auf. Und auf dem µC ist die UART Routine ja nicht gerade groß und fehleranfällig wenn sich nichts anderes macht als die angekommenden Daten auf vorgegeben Werte zu überprüfen und diese dann in den Pwm kanäle zu schreiben.

    mfg Yannic

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    ohne Informationen zur Hard- und Software ist es nicht möglich dir zu helfen.
    Nur ein Senario von vielen. In der Software wird versehentlich ein Ausgang gesetzt, der dazu führt, dass die Versorgungsspannung absinkt. Über die Fusebits ist Brownout detektion aktiviert und es kommt zum Reset. Eventuell wird auch ein Interrupt ohne dazugehörige Routine ausgelöst.

    Gruß

    Jens

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    20.02.2007
    Beiträge
    341
    Hi,

    ich weiß selber das es so unglaublich schwer sein muss eine einschätzung abzugeben (geht mir ja genauso)

    Aber eine Sache grenzt das ganze jetzt wohl noch weiter ein. Er hat nun mal das Enagle URXC aus dem Code genommen so das ja nichtmal mehr die Routine aufgerufen wird. Der Controller somit mit den ampfangenen Daten nichts macht. Trotzdem resettet sich der Controller.

    Brownout wurde auch deaktiviert.

    mfg Yannic

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    schreibst du viel in den flash oder irgendwo anders hin so das der speicher mal volll wird?

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    wenn Brown-out entfällt und die Reset-Leitung koscher ist (Pullup nach +)
    wenn der Watchdog disabled ist, wenn weiters die Spannung sauber stabil ist, muss ich annehmen, dass der Hund in der µC Software liegt.
    Er sollte mal überhaupt alle Interrupts disablen (bzw. NICHT enablen), nicht nur den URXC, und mal sehen, was dann passiert.

    Der Kollege scheint sehr heikel zu sein, muss ja eine gigantische Innovation drin stecken, die sonst sicher noch keinem eingefallen ist.

    Ich schick dir eine PN

    EDIT: Kannst du nicht selber ein µC Programm machen, mit dem du vernünftig testen kannst ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Ein paar weitere mögliche Ursachen:
    1) Ist der Watchdog wirklich aus ? Das geht bei einigen µCs nur über die Fuses.
    2) Stack durcheinander / Überlauf
    3) Sprung ausserhalb der Reichweite ?
    4) AVCC nicht richtig versorgt -> browout springt zu früh an



    Um die Ursache eines Resets zu erkennen gibt es das Register MCUSR. Da Steht dirn was den Reset ausgelöst hat. Das sollte man testweise mal gleich am Anfang zu PC senden. Das sollte ds suchen vereinfachen.

  9. #9
    Schreib einfach mal ans Ende Deines Programmes mal ein "END" . Damit war bei mir der Fehler behoben..

Berechtigungen

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