Forum: Mikrocontroller und Digitale Elektronik Immer nur 2 Balken im Disp nach Unterbrechung VCC


von Mike (Gast)


Lesenswert?

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ß

von SupaChris (Gast)


Lesenswert?

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...

von Mike (Gast)


Lesenswert?

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?

von Karl heinz B. (kbucheg)


Lesenswert?

> 4,7µ direkt am VCC-GND vom Atmel.

Das ist zuviel. Der Kondensator bringt nichts mehr.
Größenordnungsmaessig sollte der 100n haben.

von Mike (Gast)


Lesenswert?

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?

von Mike (Gast)


Lesenswert?

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...

von Daniel M. (usul27)


Lesenswert?

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...

von Karl heinz B. (kbucheg)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

Habe ebend mit den Fuses probiert zwecks Einschwingzeit: auch kein
Erfolg.
Wie sollte denn der Elko angeschlossen werden und welche Größe?

von Karl heinz B. (kbucheg)


Lesenswert?

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.

von TravelRec. (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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

von D. H. (slyd)


Lesenswert?

> 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!

von TravelRec. (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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...

von Magnus Müller (Gast)


Lesenswert?

>>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

von Karl H. (kbuchegg)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

> 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.

von Sebastian Heyn (Gast)


Lesenswert?

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.

von Mike (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.