Hallo Leute, bei mir sind wohl wieder die Poltergeister am Werk... Wenn ich den Atmel programmiere, zeigt das Display alles schön an. Wenn ich aber VCC (egal ob 12V Autobat oder 9V-Block) unterbreche, zeigt das Display nur die 2 Balken an... Wenn ich dagegen die Masseverbindung unterbreche, dann funktioniert nach Masseverbindung wieder alles. Absobald ich VCC wegnehme, also die Schaltung ausschalte damit, kommen nur noch die 2 Balken. Ich muß erst die Schaltung neuprogrammieren, dann wird erst wieder alles angezeigt. Unnötig zu erwähnen, daß bei den vorherigen Version meiner Spiel-Platine alles reibungslos geht. Bei der aktuellen Version wurden nur ein paar Zusatzsachen raufgebracht, aber an der eigentlichen Atmel Grundschaltung nichts verändert. Sind 4,7k zwischen VCC (5V) und Reset zu wenig? Wer kann mir da bitte helfen? Gruß
Ein kleiner Elko zwischen Reset und Masse wirkt manchmal Wunder. Dann hast du einen definierten Reset. Unnötig zu erwähnen, dass nach Spannungseinbruch das Display wieder richtig initialisiert werden muss. Aber das macht ja sicher der Atmel...
also ich habe einen 7805 mit 100N Eingang/Ausgang. Am Eingang 470µ und Ausgang 220µ. Zusätzlich habe ich noch 4,7µ direkt am VCC-GND vom Atmel. Wie groß sollte denn der Elko sein?
> 4,7µ direkt am VCC-GND vom Atmel.
Das ist zuviel. Der Kondensator bringt nichts mehr.
Größenordnungsmaessig sollte der 100n haben.
Okay, habe ich auch ebend probiert und ihn wieder runtergenommen - 100N hatte ich ja schon. Es bleibt bei den beiden Balken. Es ist zum verrückt werden. Für die reibungslose Funktion sollte der Reset pin auf VCC? Vielleicht den 4,7k Pullup verkleinern?
so, nachdem nun der 4,7µ Elko weg ist, kommen die Balken auch, wenn ich Masse trenne. Chip funktioniert aber noch, da ich Programmieren kann und was auf dem Display erscheint...
Vermutlich initialisierst du dein LCD-Display, bevor es überhaupt bereit ist. Nach dem Anlegen der Spannung brauchen sowohl der ATMega als auch das LCD etwas Zeit, bis sie sinnvoll arbeiten. Beim Display können das ein paar ms sein. Wenn du das Teil vorher versuchst zu initialisieren, gehen diese Befehle ins Leere...
Ratemodus an: Hast du schon mal probiert einen kleinen Kondi an Reset zu hängen, damit der AVR länger im Reset bleibt und das Display mehr Zeit für die Initialisierung hat? Ev. sprichst du das Display beim Programmstart einfach nur zu schnell an.
Habe ebend mit den Fuses probiert zwecks Einschwingzeit: auch kein Erfolg. Wie sollte denn der Elko angeschlossen werden und welche Größe?
vcc | | 4k7 | +--------- Reset | --- --- | | GND ein RC Glied halt. Kannst ja mal den 1µF probieren, den du grade ausgelötet hast. Ansonsten: eine kleine Warteschleife am Anfang des Pgm programmieren.
Mach den Brown-Out Detektor an Deinem Prozessor an, dann kannst Du die externe Reset-Beschaltung vergessen. Gib dem Display laut Hersteller genug Zeit und initialisiere es mit der langen Software-Init (im Datenblatt des HD44780 beschrieben). Das klappt dann immer.
Hallo, Brownout ist an, auf 2,7V. Also das System an sich nutze sich schon 8 Monate, seitdem habe ich auf der Platine nur Zusatzsachen (Fet, Treiberstufe, RS232 etc) angebracht, einzige Veränderung war der 4,7µ am Chip selbst. Bis her noch nie Probleme. Auch die Software ist die gleiche, zu mindest die Initialisierung. Warum geht es denn direkt nach der Programmierung und sonst nicht? Selbst wenn ich die Fuses für den Quarz änder, kommen die Balken
> mit den Fuses probiert zwecks Einschwingzeit
?
PAUSE machen bevor das Display initialisiert wird - nix
einschwingzeit.
Mach da mal nen ~30 bis 50ms Delay bevor Du irgendwas ans Display
schickst!
Stell mal den Brown-Out auf 4V, dann geht der Controller immer vor dem Display in den Reset bzw. erwacht nach dem Display. Wenn Du die lange Init nimmst, wird das Display immer sauber initialisiert, wenn der Controller einen Reset ausgeführt hat. Es kann nämlich sein, daß Du ein bereits (noch) initialisiertes Display erneut initialisierst, was nur mit der langen Init zum Erfolg führt. Außerdem solltest Du wirklich immer genug mit dem Display warten, bevor Du überhaupt Daten an es sendest. Außerdem: Wenn Die Versorgungsspannung zu langsam ansteigt, geht das Display in einen undefinierten Zustand. Deshalb merkst Du das Problem nach dem Ändern des Elkos, der den Spannungsanstieg dämpft. Auch hier hilft die lange Init zuverlässig.
so, habe vor der Displayinitialisierung 50ms eingebaut, nun ist es wieder so, daß Masseunterbrechungen nichts ausmachen, nur die VCC Unterbrechung bring die weißen Balken. Brownout auf 4V, auch keine Veränderung. Hab aber mal den 4,7k ausgelötet am Resetpin(könnte ja defekt sein), und einen per Hand eingebaut: Nun wird die Schaltung vom ISP nicht mehr erkannt und der Prozessor arbeitet auch nicht. Lustig...
>>Hab aber mal den 4,7k ausgelötet am Resetpin(könnte ja defekt sein), >>und einen per Hand eingebaut: Nun wird die Schaltung vom ISP nicht >>mehr erkannt und der Prozessor arbeitet auch nicht. Lustig... 1.) Was meinst du mit "per Hand eingebaut"? 2.) Kann es sein, dass du den Widerstand nun (natürlich irrtümlich) zwischen RESET und GND gesetzt hast? Zum ursprünglichen Problem: Kann es sein, dass deine Schaltung noch über irgend einen Eingang Saft bekommt? Gruß, Magnetus
Bring erst mal die Sache mit dem 4k7 wieder in Ordnung. Der 4k7 muss vom Reset Pin nach Vcc gehen. Damit solltest du wieder beim ursprünglichen Zustand sein. OK. Dann sollten wir mal abklären ob es an der Hochlaufsequnz liegt oder nicht. Du machst also deinen Mambo-Zambo, sodass * der Prozessor läuft * das Display läuft danach klemmst du Vcc ab und wieder an Laut Deiner Aussage läuft jetzt der Prozessor aber am Display siehst du nur die Balken. Jetzt nimmst du dir ein Stück Kabel und verbindest den Reset Pin mal mit Masse. Du gibst also dem Prozessor (und nur dem) einen Reset-Puls: Vcc ----- 4k7 -----+------ Reset | | Kabel | | GND Der Prozessor läuft jetzt neu an und initialisiert jetzt das Display, welches die ganze Zeit Saft hatte und auf die Initialisierung wartet. Eigentlich sollten jetzt die Balken verschwinden und das Display ganz normal arbeiten. Ist das so? Wenn ja, dann liegt es eindeutig daran, dass das Display nach dem Anlegen der Versorgungsspannung zu wenig Zeit hatte hochzukommen und die Initialisierung zu früh erfolgte. Wenn nein, dann liegt der Fehler woanders. Welcher Fall liegt vor?
> Jetzt nimmst du dir ein Stück Kabel und verbindest > den Reset Pin mal mit Masse. Du gibst also dem Prozessor > (und nur dem) einen Reset-Puls: Damit es da keine Missverständnisse gibt. Du stellst eine Verbindung zu Messe her und löst die wieder. Während die Verbindung zu Masse besteht, schickst du den µC in den Reset und beim lösen der Verbindung wird der Reset wieder freigegeben.
Mal ne frage. startet dein avr wirklich neu? also bist du sicher das du das display initialisierst? Ich lasse meine controller immer ne halbe sekunde warten. oft scheint das initialisieren sicherer, jedenfalls wenn ich multiprozessor-anwendungen laufen lassen.
so, also der 4,7k war immer an vcc. Ich habe ihn freiverdrahtet gelegt, um den vorhandenen Widerstand zu testen, könnte ja falscher Wert sein (Der Griff nach dem Strohhalm..) Kein Erfolg Dann habe ich das Osizi angeschmissen, Reset hängt sauber an 5V. Aber sonst tut sich nichts, also läuft der Prozessor nicht an! Ich dachte zuerst nur,daß es das Display ist. Aber die Schaltung an sich läuft nicht. Beim Programmieren geht er runter auf Masse und kommt dann ohne zucken wieder hoch= Schaltung läuft Beim Trennen von Versorgungsspannung/masse geht der Reset auf 5V, zuckt kurz gegen Masse und dann wieder 5V=nichts läuft.... (Wobei dieses Zucken nun nicht immer vorhanden ist) Habe dann per Kabel Reset per Hand auf Masse gesetzt, wie hier geschrieben wurde. Aber nichts passiert, ausser halt am Oszi die Pegeländerung. Der Prozessor läuft also nur nach dem Abschluss des Programmierens an. Ich arbeite mit AVR ISP II USB, also dem halbdurchsichtigen Kasten, habe sowohl abgeklemmt als auch angeklemmt das Problem. Beim angeschlossenen Brenner zuckt Reset ein wenig, liegt wohl am Brenner, da abgeklemmt alles sauber ist. 22P Stützkondensatoren am 8MHZ Quarz (auch interner Oszi geht ja nicht)... Was kann denn das anlaufen eines AVR nach dem Reset verhindern?
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.