-         

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

Thema: Quarz verursacht Reset

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246

    Quarz verursacht Reset

    Anzeige

    Hi Leute,

    ich habe folgendes Problem:
    Wenn ich meinen ATMega32 mit einem 16MHz Quarz betreibe, dann resetet er in unregelmäßigen Abständen. Wenn ich den internen 8MHz Takt benutze läuft er einwandfrei. Auch mit einem 7.3MHz Quarz scheint es ohne Probleme zu funktionieren.

    Fuses für Quarz: LFuse 0xFF
    Fuses für 8MHz: LFuse 0xE4
    HFuse immer 0xDF, also BOD deaktiviert.

    Für die Spannungsversorgung benutze ich einen 7805T. Daran habe ich zur Zeit ein Steckernetzteil angeschlossen, welches auf 7,5V eingestellt ist und 700mA liefert.

    Hat jemand ähnliche Erfahrung mit diesem Problem?
    Reichen die 700mA etwa nicht aus, wenn der Mega32 auf 16MHz läuft?

    (Es sind ansonsten noch zwei L297 und zwei L298, sowie ein MAX232 verbaut, werden jedoch nicht "aktiv" betrieben, und ein LCD display, welches einfach immer einen Wert hochzählt)

    mfg
    zerush

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Um so viel mehr Strom braucht der Mega32 nicht wenn er mit 16MHz läuft. Es wird sich da wohl eher um ein SW-Problem handeln. Wieso bist du sicher das es ein Reset ist?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Atmels brauchen rund 1 mA pro MHz Taktfrequenz. Da sollten die rund 10 mA mahr nichts ausmachen. Mögliche Ursachen für sporadischen Reset sind: Softarefehler, fehlenden Entkopplungskondensatoren, weder pullup noch Kondensator an der Reset Leitung, instabile Versorgungsspanng (z.B. fehlende Kondesatoren am Regler).

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Hi,

    schonmal Danke für die Antworten!

    @Hubert.G:
    Ich habe nur ein kleines Testprogramm drauf. Dieses zählt eine 16Bit Variable hoch und gibt dessen Wert auf dem LCD aus. Anschließend noch eine Warte-Schleife, damit das nicht zu schnell geht und man auch was sieht. Beim 16MHz Quarz kommt er meist nichtmal bis 100 mit dem Zählen. Dann fängt er wieder bei 0 an. => Reset
    Bei 8MHz läuft er einfach immer weiter...

    @Besserwessi:
    Ich habe an jeder erdenklichen Stelle 100nF Entkopplungskondensatoren. Die Eingangsspannung ist nochmal mit 1000uF gesichert, und die 5V nocheinmal mit 220uF. Ich denke das sollte reichen.
    Die Reset Leitung ist mit 100k an 5V und zusätzlich durch 1uF Kondensator gepuffert.
    Theoretisch sollte das reichen.
    Und bei meinem kleinen Programm einen Softwarefehler, kann ich mir gar nicht vorstellen, vor allem da es ja mit 8MHz wunderbar läuft...

    Ich bin echt ratlos und sehr verwirrt.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    Guck mal nach, wer den Reset auslöst... steht in MCUCSR.
    Es ist aber kein Mega8L, oder? Der geht nur bis 8MHz.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Die Reset Leitung ist mit 100k an 5V und zusätzlich durch 1uF Kondensator gepuffert.
    Mach bei dem Widerstand eine Null weniger und einen Kondensator von 47 nF

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.01.2005
    Alter
    45
    Beiträge
    294
    Schließe mich izaseba an.
    Das Gegenteil von "gut" ist "gut gemeint"!

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Zitat Zitat von uwegw
    Guck mal nach, wer den Reset auslöst... steht in MCUCSR.
    Es ist aber kein Mega8L, oder? Der geht nur bis 8MHz.
    Nein ich habe einen Mega32 16P, der sollte 16MHz schaffen.

    In MCUCSR habe ich nach dem Power-On 0x01 (ist ja auch richtig), nach einem gewollten Reset 0x02 (soweit auch gut), aber das was meiner da zeubert ergibt eine 0x00.

    Was soll mir das sagen?

    Zu den Widerständen:
    Ich werde das mal testen, aber kann das wirklich dadran liegen? Also würde der Fehler dann nicht immer auftreten?

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Sicher kann es das.

    Wird der Reset für mehr als 2.5ms auf Low gezogen dann gibt es einen Reset.
    Der Impuls kann also schon recht schmal sein.
    Mit 100k am Reset als Pullup muß der Impuls nicht einmal viel Energie haben.
    Der Plötzliche Stromhunger beim aktualisieren des LCD reicht da schon aus.

    Wie oben schon gesagt wurde ist der Pullup mit 100k definitiv zu hoch
    10k sind noch zu zahm.
    Ich empfehle immer 5k oder sogar noch weniger.
    Zusätzlich würde ich einen 47 oder 100nF Kerko vom Reset nach Masse anbringen.
    Der schluckt dann die Nadelimpulse die doch noch kräftig genug wären.
    Gruß
    Ratber

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    28.01.2005
    Beiträge
    127
    Hast du ein stabilisiertes Netzteil? Wenn du dir nicht sicher bist, dann dreh mal die Eingangsspannung eine Stufe höher und mach eine Diode in die + -Leitung zwischen Netzteil und erstem Kondensator.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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