www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik XC167 Reset-Problem

Autor: Helmut (Gast)
Datum:

Hallo Experten !
Wir haben ein Problem beim Manuellen-Reset des XC 167CI-32F40F BB :
Lösen wir einen Reset manuell aus, kommt es gelegentlich vor, daß der
Prozessor nicht wieder anläuft.
RSTIN ist <LOW> für mehr als 100 ms und geht auch richtung wieder auf
<HIGH>.
Falls der Chip nicht anläuft, ist auch der RSTOUT auf <LOW>, was
bedeutet, daß er sich weiterhin im RESET befindet, obwohl RSTIN nicht
mehr aktiv ist.
Auch erneuetes Reseten bringt nichts mehr; es muß die Spannung
ausgeschaltet werden.
Wir wissen keinen Rat mehr !
Autor: uCler (Gast)
Datum:

laeuft der Oscillator durch (hat der 167 sowas wie einen clkout)?
Autor: B. Jue (bjue)
Datum:

Man könnte die Lage besser beurteilen, wenn man ein Schaltbild vom
Prozessor und seiner Peripherie hätte (Resetbeschaltung , Oszillator,
Starten aus dem internen oder externen Flash....)!
Ist es wirklich sicher, daß er nicht anläuft oder kann es sein, daß er
sich irgendwo umherteibt? JTAG-Debugger oder Logic Analyzer verfügbar?
Autor: Helmut (Gast)
Datum:

Der Oszillator läuft (8MHz,XTAL1/XTAL2)  aber am CLKOUT ist im
Fehlerfall
kein Signal mehr.
Vor dem Reset sind dort die 40 MHz der PLL zu sehen.

Zusatzinfo:
Die Anwendung besteht eigentlich aus 2 Teilen:
Einen Loader im internen Flash und die
eigentliche Aplikation im externen Flash.
Es wird beim Reset immer der Loader gestartet, der prüft im ext. Flash
ob die Aplikation vorhanden ist und startet diese.
Starten wir die Aplikation nicht, verbleiben also im Loader,
tritt der Fehler nie auf.

Übrigens : Der Fehler tritt nur beim Hardwarereset(Warmstart) auf, eine
Reset verursacht durch den Watchdog, Trap0 oder Kaltstart funktioniert
immer.
Autor: Helmut (Gast)
Datum:

Noch was!

Im Fehlerfall funktioniert auch der angeschlossene JTAG-Debugger nicht
mehr!

Schaltbild folgt etwas später !
Autor: uCler (Gast)
Datum:

Wie ist denn der Stand der Entwicklung? Hat das vorher schonmal
funktioniert und jetzt nicht mehr? Hört sich irgendwie nach Iniproblemen
an.
Autor: Helmut (Gast)
Datum:
Angehängte Dateien:

Hier das Schaltbild.

Die frühere Version bestand aus dem C165-Prozessor.
Die funktionierte prima.

Die neue Version mit dem XC167 hat sich noch die anders verhalten.
Wurde aber auf den ULINK-Debugger von Keil geschoben, wir dachten, daß
der Debugger den Abflug macht.
Das Problem ist aber unabhängig vom Debugger.
Autor: Max Murks (Gast)
Datum:

In Teilen des RAMs stehen noch Daten (Erkennungsstring Loader <-->
Applikation?).
Autor: Helmut (Gast)
Datum:

Nein, das RAM ist dabei unwichtig, die Kennung, daß eine Aplikation
vorhanden ist, steht im Flash.
Noch mal zur Erinnerung:
Der Prozessor sthet tatsächlich noch im Reset. (RSTOUT = LOW)
Mir ist es ein Rätsel, woher der Prozessor bei einem Reset weiß, daß
vorher die Aplikation im ext. Flash gestartet war.
Autor: Max Murks (Gast)
Datum:

> Der Prozessor sthet tatsächlich noch im Reset. (RSTOUT = LOW)

Es erfolgte noch kein EINIT Befehl, der Loader macht das für Dich. Dein
Flash Startup Code wohl nicht.
Autor: B. Jue (bjue)
Datum:

>Übrigens : Der Fehler tritt nur beim Hardwarereset(Warmstart) auf, eine
>Reset verursacht durch den Watchdog, Trap0 oder Kaltstart funktioniert
>immer.

Wie wird denn der Hardwarereset ausgelöst? Dabei befindet sich der XC167
im externen Flash, wenn ich das richtig verstanden habe.
Wo steht die Interrupttabelle zu diesem Zeitpunkt? Es ist darauf zu
achten, daß der Vector Segment Pointer (VECSEG) richtig steht!
Den gab es beim C165 ja noch nicht.

Würde mich interessieren, was nun die Ursache war....
Autor: Jens Räthe (tmaniac)
Datum:

Hallo,

Wo kommen deine 2,5V her? Das finde ich in deinem Schaltbild nicht. Da
hängt ein Kondensator zwischen 2,5V und GND, damit verletzt du beim
Drück auf einen Resettaster die Bedingung das VDDI mindestens 1V größer
als VDDP sein muss. Schaffe die Möglichkeit das sich dieser Kondensator
beim HW-Reset entläd.

Sollte der RSTOUT beim EINIT umschalten oder schon beim Internen
Resetzyklus, je nach dem wie es die Konfiguration will.
Autor: Jens Räthe (tmaniac)
Datum:

Oh da ist ein Fehler in meinem Post:
Es muss heißen "das VDDP mindestens 1V größer als VDDI sein muss"
Autor: Pattyman (Gast)
Datum:

Hallo Leidensgenossen,

ja, auch ich kenne dieses Reset-Problem und habe auch schon viel Zeit
mit der Ursachensuche verbracht. Das Problem ist sehr hartnäckig:
So habe ich gedacht, daß es mit dem internen PLL-Oszillator
zusammenhängt und habe den externe Beschaltung des Quarz verfeinert.
Dann habe ich das Einschalten der Core-Spannung zur Peripherie-Spannung
verzögert.
Dann habe ich die StartUp-Konfiguration (div. Widerstände) niederohmiger
gemacht. - Alles ohne nennenswerten Erfolg. Irgendwann geht einem auch
die Phantasie aus.
Schließlich habe ich eine Support-Anfrage an Infineon gerichtet und
warte bis heute auf eine Antwort.

Was mich weitergebracht hat, war der Versuch die Zustände verschiedener
Leitungen beim Einschalten zu messen. Als ich mit einer Meßspitze im
JTAG-Stecker herumfingerte, war das Problem plötzlich weg!
Also, kurzum, der _TMRST ist im "Insider's Guide" nicht beschaltet. Ich
meinte klüger zu sein und habe ein Pull-up verbaut. - Das hat auch die
meiste Zeit gut funktioniert, aber eben nicht bei allen Platinen.
Dann habe ich den Pull-up entfernt, aber unbeschaltet ist der Ärger
immernoch da.
Dann habe ich, entgegen jeder Logik, den _TMRST mit einem Pull-Down
versehen und ... ja, das war's.

... bis heute. Jetzt tritt das Problem plötzlich wieder auf. Weniger
stark, aber in einer Weise die nicht auslieferbar ist.

Das sind meine Erfahrungen, wer weiß mehr?
Autor: maestro (Gast)
Datum:

Hallo,
_TMRST = 100k Pull-down
NMI    = 1K Pull-Up
Autor: B. Jue (bjue)
Datum:

Ich kann maestro nur Recht geben!
Auf einigen Infineon Boards hat der _TMRST Pulldown 10k.
Pullup am NMI ist natürlich auch ganz wichtig!
siehe Kapitel 1.3 in
http://www.keil.com/dd/docs/datashts/infineon/xc16...
Autor: Stefan Ditze (sd123)
Datum:

Hallo!

Der Thread ist zwar schon älter, aber wir beobachten dasselbe Verhalten
momentan mit einem XC2287 Controller.
Nach einem Reset startet der µC nicht mehr korrekt, das geflashte
Programm wird nicht geladen. Es wurden schon große Anstrengungen
unternommen um das Problem einzugrenzen und zu beheben, jedoch
erfolgreich.

Deswegen: Gibts es irgendwelche Erkenntnisse aus dieser Diskussion? Hat
jemand die Reset-Probleme bei den Xc164/XC167 erfolgreich gelöst und
könnte mir sagen auf welche Art und Weise?
Autor: ridiho44 (Gast)
Datum:

Ich würde noch folgende Lösungsmöglichkeiten in die Runde werfen:

-> Ist die PLL-Konfiguration richtig? Hier wird im Datenblatt auch
zwischen
Quarz und Oszillator unterschiedlich konfiguriert.
Auf jeden Fall die gesamte PLL-Konfigurationskette durchprüfen, ob alles
stimmt (alle MUL/DIVs/Ranges und was noch so alles zu konfigurieren
ist).

-> Benutzt Ihr alle Quarze zur Takterzeugung? Die Anschwingreserve
könnte nicht ausreichend sein. Mag sein, dass der Quarz nicht schnell
genug anschwingt. Quarze vermessen lassen kann man beim Quarzhersteller,
wenn man hier eine gute "Beziehung" hat.
Abhilfe: Mit einem Oszillator probieren. Ich betreibe einen XC167CI mit
einem 16MHz-Oszillator, ohne diesen Fehler jemals gehabt zu haben.

-> Wie schon beschrieben, den NMI mit 10k gegen 5V ziehen.

-> Den Pin für die Auswahl Start internes/externes Flash mittels
PullUp(10k)-/PullDown(0R?)-Widerstand festlegen. Pin 20.5 mit 10k gegen
5V, wenn Du aus dem internen Flash starten möchtest.

-> Ist der MAX707 in der genutzen Variante geeignet? Spannungspegel der
Überwachung? Reset-Länge? Ich nutze eine STM1811-Variante.

Im Allgemeinen ist der XC167 ein sehr "anwenderfreundlicher" µC.
Es können aber zahlreiche Fehler sein, die zu dem beschriebenen Fehler
führen. Wir müssen aber erst mal die Basics klären.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net