Hallo, ich habe das Problem, dass mein Controller gelegentlich nicht startet. Normalerweise passiert beim Start Folgendes: Der Controller kommt ca. 180ms nach Anlegen der Versorungsspannung aus dem Reset. Über die externen Pull-Down Widerstände am Datenbus (Controller hat intern hochohmige pull up Widerstände die bei fehlendem pull down Widerstand die Leitung auf 5V ziehen) werden während der Start-up Phase bestimmte Parameter konfiguriert (Clock, Bus Mode, Boot Mode etc..). Anschliessend wird das Progamm aus dem Flash geladen usw. . Klappt normalerweise auch aber hin und wieder, grob geschätzt 1 mal pro 100 Einschaltvorgänge, fährt der Controller nicht hoch. Wenn der Fehler auftritt messe ich auf denjenigen Datenleitungen die über 6.8k auf Masse liegen ca. 3.9V was dazu führt, dass sie beim Start mit '1' eingelesen werden und meine Startkonfiguration falsch ist. Die Frage ist jetzt, wo kommen die 3.9V her, d.h. welcher der Busteilnehmer treibt den dafür nötigen Strom? Die Chip Select Leitungen der beiden Speicherbausteine sind high, also eigentlich sollten deren Pins hochohmig sein. Die Pins am Controller sind während der Start-up Phase Eingänge, als kann es daher auch nicht kommen. Mir gehen hier die Ideen aus aber vielleicht hat ja jemand einen Tip. Gruß Chris
Christian H. schrieb: > Hallo, > > ich habe das Problem, dass mein Controller gelegentlich nicht startet. > > Normalerweise passiert beim Start Folgendes: > > Der Controller kommt ca. 180ms nach Anlegen der Versorungsspannung aus > dem Reset. Klingt sehr lange. Ist das so gewollt? > Über die externen Pull-Down Widerstände am Datenbus > (Controller hat intern hochohmige pull up Widerstände die bei fehlendem > pull down Widerstand die Leitung auf 5V ziehen) werden Das ist so nicht richtig. Hier wird von einem "weak pullup current" gesprochen. Der ist im Datenblatt auch halbwegs spezifiziert. Ist aber nicht dafür da, um einen stabilen Betriebszustand zu garantieren. Dafür ist der Strom einfach zu klein und die Schmutznebenwiderstände zu groß. Sind Deine Konfigurations-Widerstände auch bei PullUp vorgesehen? > während der > Start-up Phase bestimmte Parameter konfiguriert (Clock, Bus Mode, Boot > Mode etc..). Anschliessend wird das Progamm aus dem Flash geladen usw. . > Klappt normalerweise auch aber hin und wieder, grob geschätzt 1 mal pro > 100 Einschaltvorgänge, fährt der Controller nicht hoch. Weißt Du, in welchem Modus er sich dann befindet? Hast Du noch weitere Messungen durchgeführt? Betriebsspannungen stabil? Reset und Clocks stabil? > Wenn der Fehler auftritt messe ich auf denjenigen Datenleitungen die > über 6.8k auf Masse liegen ca. 3.9V was dazu führt, dass sie beim Start > mit '1' eingelesen werden und meine Startkonfiguration falsch ist. > > Die Frage ist jetzt, wo kommen die 3.9V her, Genau das ist die Frage. Sollte ja kein Problem sein, während der Fehler gerade auftritt, die entsprechenden Leitungen abzutrennen. Hier scheinen zwei PushPull-Ausgänge gegeneinander zu arbeiten. Die 6k8 spielen da keine Rolle. Ein Ausgang macht High, der andere Low und der mit High scheint mehr Strom treiben zu können. An welchen Pins tritt dieser Fehler denn auf? An allen verbundenen? Sind dann alle Pegel ~3,9V oder einige auf Masse oder 5V? Sind die 6k8-Widerstände Einzelwiderstände? SMD? > d.h. welcher der > Busteilnehmer treibt den dafür nötigen Strom? Die Chip Select Leitungen > der beiden Speicherbausteine sind high, also eigentlich sollten deren > Pins hochohmig sein. Die Pins am Controller sind während der Start-up > Phase Eingänge, als kann es daher auch nicht kommen. Ist richtig so. > Mir gehen hier die Ideen aus aber vielleicht hat ja jemand einen Tip. Ja, Du kommst leider um weitere Messungen nicht herum. Ohne Schaltplan wird man auch zusätzlich keine versteckten Fehler im Design finden. Ich habe jahrelange Erfahrung mit dem XC und noch nie Probleme dieser Art.
Die Konfigurations-Widerstände werden ja nur dafür benötigt, dass Du aus einem externen Flash booten kannst. Nutzt Du den XC in einer Single-Chip-Konfiguration, brauchst Du nur Pin P20.5/\EA mittels 10k auf 5V zu ziehen. Der Rest wäre dann reine Software-Konfiguration während der Init-Phase.
Christian H. schrieb in Beitrag "Einschaltverhalten von SRAM IC's" > Das Einzige was mir auffällt ist, dass VCC relativ langsam > ansteigt (ca. 100ms von 0 auf 5V). Kann das ein Problem sein? Lässt sich herausfinden: Eine Spannungsquelle testweise nicht so gemächlich einschalten, sondern fix.
svf35tgg schrieb: > Christian H. schrieb: >> Hallo, >> >> ich habe das Problem, dass mein Controller gelegentlich nicht startet. >> >> Normalerweise passiert beim Start Folgendes: >> >> Der Controller kommt ca. 180ms nach Anlegen der Versorungsspannung aus >> dem Reset. > > Klingt sehr lange. Ist das so gewollt? Ja, ist über einen Reset Baustein gelöst. Maxim ... Die 180ms sind entsprechen der Zeitkonstante vom Reset IC > >> Über die externen Pull-Down Widerstände am Datenbus >> (Controller hat intern hochohmige pull up Widerstände die bei fehlendem >> pull down Widerstand die Leitung auf 5V ziehen) werden > > Das ist so nicht richtig. Hier wird von einem "weak pullup current" > gesprochen. Der ist im Datenblatt auch halbwegs spezifiziert. Ist aber > nicht dafür da, um einen stabilen Betriebszustand zu garantieren. > Dafür ist der Strom einfach zu klein und die Schmutznebenwiderstände zu > groß. Sind Deine Konfigurations-Widerstände auch bei PullUp vorgesehen? Die internen pullup sind m.E. explizit dafür vorgesehen. Es gibt ein Application Sheet von Infineon in dem für externe pull downs ein Wert zwischen 5.1k und 8.6k empfohlen wird, eben um gegenüber den internen pullup Widerständen einen ausrecihend niedrigen low Pegel zu erzeugen. Wir benutzen das seit mehrern Jahren in etlichen Designs und es gab nie ein Problem. >> während der >> Start-up Phase bestimmte Parameter konfiguriert (Clock, Bus Mode, Boot >> Mode etc..). Anschliessend wird das Progamm aus dem Flash geladen usw. . >> Klappt normalerweise auch aber hin und wieder, grob geschätzt 1 mal pro >> 100 Einschaltvorgänge, fährt der Controller nicht hoch. > > Weißt Du, in welchem Modus er sich dann befindet? Hast Du noch weitere > Messungen durchgeführt? Betriebsspannungen stabil? Reset und Clocks > stabil? > >> Wenn der Fehler auftritt messe ich auf denjenigen Datenleitungen die >> über 6.8k auf Masse liegen ca. 3.9V was dazu führt, dass sie beim Start >> mit '1' eingelesen werden und meine Startkonfiguration falsch ist. >> >> Die Frage ist jetzt, wo kommen die 3.9V her, > > Genau das ist die Frage. Sollte ja kein Problem sein, während der Fehler > gerade auftritt, die entsprechenden Leitungen abzutrennen. Hier scheinen > zwei PushPull-Ausgänge gegeneinander zu arbeiten. Die 6k8 spielen da > keine Rolle. Ein Ausgang macht High, der andere Low und der mit High > scheint mehr > Strom treiben zu können. > > An welchen Pins tritt dieser Fehler denn auf? An allen verbundenen? Sind > dann alle Pegel ~3,9V oder einige auf Masse oder 5V? > > Sind die 6k8-Widerstände Einzelwiderstände? SMD? > Alle Datenbusleitungen die einen pulldown haben zeigen (im Fehlerfall) dieses Verhalten. Alle Widerstände sind SMD (0603) >> d.h. welcher der >> Busteilnehmer treibt den dafür nötigen Strom? Die Chip Select Leitungen >> der beiden Speicherbausteine sind high, also eigentlich sollten deren >> Pins hochohmig sein. Die Pins am Controller sind während der Start-up >> Phase Eingänge, als kann es daher auch nicht kommen. > > Ist richtig so. > >> Mir gehen hier die Ideen aus aber vielleicht hat ja jemand einen Tip. > > Ja, Du kommst leider um weitere Messungen nicht herum. > Ohne Schaltplan wird man auch zusätzlich keine versteckten Fehler im > Design finden. > > Ich habe jahrelange Erfahrung mit dem XC und noch nie Probleme dieser > Art.
Christian H. schrieb: > Der Controller kommt ca. 180ms nach Anlegen der Versorungsspannung aus > dem Reset. Wie ist das gelöst? Gibt es einen Supervisor Chip? Wenn nicht wird der langsame Anstieg der Versorgungsspannung für undefinierte Verhältnisse sorgen.
Ich benutze einen Max6843 mit 4.38V threshold. Der hält sowohl Controller als auch Flash für diese Zeit im Reset. Der SRAM hat leider keine Reset, aber ein Chip Enable (low active), der hängt über einen pull up an VCC und wird mit Chip Select runtergezogen http://www.datasheetcatalog.org/datasheet/maxim/MAX6342-MAX6345.pdf
Christian H. schrieb: > Der hält sowohl > Controller als auch Flash für diese Zeit im Reset. Na, dann ist doch alles Paletti. Was passieren kann, und zwar wenn das Netzteil schwach auf der Brust ist: Im Augenblick nach dem Reset beginnt plötzlich eine höhere Stromaufnahme, und die Spannung bricht nochmals ein. Auf diese Weise hatte ich schon mal µC-Schaltungen, die dann so die ganze Zeit nur noch um den Reset herum "blinkten". Da hilft oft nur ein kräftigeres Netzteil, oder dessen Ausgangsimpedanz mit einem kräftigeren Ladeelko verbessern. Christian H. schrieb: > Über die externen Pull-Down Widerstände am Datenbus > (Controller hat intern hochohmige pull up Widerstände die bei fehlendem > pull down Widerstand die Leitung auf 5V ziehen) werden während der > Start-up Phase bestimmte Parameter konfiguriert (Clock, Bus Mode, Boot > Mode etc..). Wo hast du das her, daß an den Bus Pulldown-Widerstände müssen? Modernere µC brauchen das in der Regel nicht mehr, und wenn, hat man dort eher Pullup-Widerstände. Bei älteren NMOS-Controllern und NMOS-Speicherbausteinen war das nötig, weil diese Sinkströme besser treiben konnten als Sourceströme. Und falls der Bus durch mehrere Bausteine parallel belastet ist, nimmt man Busleitungstreiber.
>Wo hast du das her, daß an den Bus Pulldown-Widerstände müssen? Aus dem Datenblatt :) Über die Beschaltung lässt sich der Controller konfigurieren. >Was passieren kann, und zwar wenn das Netzteil schwach auf der Brust >ist: Im Augenblick nach dem Reset beginnt plötzlich eine höhere >Stromaufnahme, ... Nein, der Fehler tritt direkt beim Einschalten auf und nicht erst beim Reset
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.