-         

Ergebnis 1 bis 7 von 7

Thema: AVR startet Programm nicht immer?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    29
    Beiträge
    270

    Frage AVR startet Programm nicht immer?

    Anzeige

    Hallo!

    Ich habe hier ein ganz seltsames Problem.
    Zunächst zur Hardware: Ein Mega88 mit externem Quartz @20MHz steuert drei MOSFETs an die wiederum ca. 40cm LED-RGB Strip zum leuchten bringen. Über einen FTDI-Chipt hängt das ganze an einem USB-Port in Self-Powered Konfiguration. ISP-Programmer ist ein mySmartUSB light.
    Programmiert ist das ganze mit Assembler.
    Jetzt das absolut verrückte Problem: Flashe ich ein Programm und lasse sowohl USB- als auch ISP-Stecker eingesteckt, dann funktioniert alles wunderbar auch wenn ich den Stromstecker raus ziehe und wieder reinstecke. Gleiches gilt wenn entweder nur USB- oder nur ISP-Stecker noch verbunden sind und ich den Stromstecker ziehe und wieder rein stecke. Wenn aber weder USB- noch ISP-Stecker drin sind startet der AVR das Programm nicht wenn ich Saft draufgebe. Witziger weise kann ich, läuft das Programm einmal, USB- und ISP-Stecker raus ziehen und der Mega88 läuft ganz normal weiter. Sind einmal alle drei Stecker (USB, ISP und Strom) entfernt worden, passiert so lange nichts bis ich den Mega88 wieder geflasht habe. Wenn ich nachdem alle Stecker einmal entfernt wurden einfach nur auslese (was einwandfrei geht) startet der AVR sein Programm nicht. Erst nach einem erneuten Flash. Wobei ich hier witziger Weise auch genau den Programmspeicher den ich kurz zuvor ausgelesen habe flashen kann und er läuft wieder.
    Hat irgendeiner eine Idee woran das liegen könnte??? Hab mit BOD schon rumgespielt, ohne Erfolg.

    MfG

    Schoko
    Warum bekommen Vegetarier immer eine Extrawurst?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Versorgst du die Schaltung über USB und ISP? Das solltest du auf keinen Fall. Besser wäre nur z.B. über USB versorgen und beim ISP die Ausgangsspannung für den µC abschalten. Damit wird die Schaltung nur über USB versorgt. Hast du schon einmal getestet ob die Hex-Dateien gleich sind? Schreibe die Hexdatei auf den µC. Wenn er nicht startet liest du den µC aus und vergleichst die beiden Dateien.

    Einen konkreten Verdacht habe ich allerdings nicht.

    MfG Hannes

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Mega88 mit externem Quartz @20MHz
    Vielleicht schwingt der Quarz nicht. Wie groß sind die Kapazitäten, Leiterbahnlängen zum Quarz, wie ist "Start-up Times for the External Clock Selection" eingestellt?

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    29
    Beiträge
    270
    Danke für die Antworten!

    Also Versorgt wird die Schaltung über einen 12V DC-Stecker (so nen runder Stecker). Nen 78l05 regelt dann auf 5V runter. Spannung ist wunderbar stabil auf 4,949V ohne Brumm oder Schwingungen). Vcc ist bei ISP gar nicht angeschlossen, über den USB bekommt das Ding auch keinen Saft (Self-Powered konfiguration wie im Datenblatt des FTDI-Chips beschrieben).

    Start-up Time ist auf 16K + 65ms eingestellt, sollte also genug Zeit sein um einzuschwingen. Leiterbahnlänge ist so kurz wie möglich (Mega88 im TQFP32 SMD Gehäuse, Quarz im HC49S [kein SMD] Gehäuse). Kapazitäten habe ich keine dran, hab ich bei den geschätzten 87 AVR-Platinen die ich davor gemacht habe auch nicht dran gehabt. Aber ich werde mal auf den internen Taktgeber umschalten um das mal zu testen.

    MfG

    Schoko
    Warum bekommen Vegetarier immer eine Extrawurst?

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Bei einem Quarz brauchst du unbedingt einen Kondensator. http://www.raltron.com/products/pdfs...c-49_short.pdf
    Im Datenblatt steht "Load Capacitance 10pF to 32 pF"

    MfG Hannes

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    29
    Beiträge
    270
    Ja das mit dem Kondensator weiß ich, habe ich bisher aber erfolgreich ignoriert. Es liegt aber definitiv nicht am Quarz. Habe gerade auf internen Takt umgeschaltet und da tritt das selbe Phänomen auf.

    Werde mal meine Hardware durchmessen und schauen was der unterschied zwischen USB eingesteckt und nicht eingesteckt ist...
    Warum bekommen Vegetarier immer eine Extrawurst?

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.05.2006
    Ort
    @ Home
    Alter
    29
    Beiträge
    270
    Nachtrag:

    Hab mein Problem gefunden: Ich habe vergessen eine Variable im SRAM zu initialisieren. Besagte Variable hatte also einen mehr oder minder zufälligen Wert. Blöder Weise wurde diese Variable am Anfang eingelesen und war für eine Sprungadresse zuständig. Deswegen ist der Mega88 irgendwo hin gesprungen und ist dann hängen geblieben oder hat sonstigen Mist gemacht, auf jeden Fall nicht mehr das Programm ausgeführt.
    Scheinbar setzt aber entweder der ISP oder der AVR selber beim flashen den SRAM auf 0 (oder war das Zufall??). Die Spannung die auf den Programmier-Pins des ISP war dann ausreichend dass der AVR seinen SRAM nicht vergessen hat. Gleiches gilt für den USB-Stecker. Hier war die Versorgungsspannung des USB-Steckers eigentlich nur dazu da den FTDI aus dem RESET zu holen. Hat aber eine minimale Spannung auf den Vcc-Pin weitergeleitet und verhinderte eben das Vergessen des SRAM.

    Manmanman... so ein doofer Minifehler hat mich jetzt so lange beschäftigt.

    Danke euch für eure Mithilfe!

    MfG

    Schoko
    Warum bekommen Vegetarier immer eine Extrawurst?

Ähnliche Themen

  1. ATmega32 startet nicht
    Von Feratu im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 12.01.2010, 14:23
  2. Programm Mfile startet nicht
    Von Spyder24 im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 23.06.2008, 17:23
  3. Megaload, normales Programm startet nicht
    Von Timebeast im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 06.12.2007, 19:58
  4. ATMEGA16 Programm startet nicht
    Von ebb im Forum AVR Hardwarethemen
    Antworten: 18
    Letzter Beitrag: 04.01.2006, 14:58
  5. Atmel startet nicht!
    Von corny335 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 18.07.2005, 18:49

Berechtigungen

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