Forum: Mikrocontroller und Digitale Elektronik MAX 232 stört Takt vom Atmega8


von Rene (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich habe das Problem, dass scheinbar ein MAX232A meinen ATmega8 aus dem 
Takt bringt. An den Ausgang PC3 des Atmega ist eine LED angeschlossen, 
die rythmisch im Sekundentakt an- und ausschaltet. Dies funktioniert 
einwandfrei, sowohl mit dem internen Takt, als auch mit einem extern 
angehängenen 7,37 MHz Quarz. Programmiert wurde der ATmega8 mit BASCOM.

Do
   Portc.3 = Not Portc.3
   'Print "Test"
   Wait 1
Loop

Sobald ich allerdings einen MAX232A an den ATmega an die PINS RxD und 
TxD anschließe, flackert die led in unterschiedlichem Takt, manchmal 
viel schneller, manchmal leuchtet sie durchgehend. Wenn ich versuche 
über den MAX232A Daten über die RS232 Schnittstelle zu schicken, kommen 
diese nur Teilweise an. Ein einzelnes Byte wird noch empfangen, ein 
mehrere Byte langes Signal kommt Teilweise an. Zudem wird nichtmal 
ansatzweise eine Sekunde zwischen dem Schicken gewartet. Sobald der 
MAX232 aus dem Sockel gezogen wird, läuft alles wieder einwandfrei 
(ausser das Senden ;))

Was kann das sein, was mache ich falsch?

Ich habe sowohl einen Ersatz ATmega8 ausprobiert, wie auch einen Ersatz 
MAX232A und einen Ersatzquarz. Ich hab jetzt keine Idee mehr, woran das 
liegen kann....

Vielen Dank schonmal für eure Antworten!

P.S. Ich bin offensichtlich Anfänger in der 
Mikrocontrollerprogrammierung ;)

von Karl H. (kbuchegg)


Lesenswert?

Wenn eine SChaltung, in der SChwingkreise enthalten sind (wie zb dein 
MAX) eine Digitalschaltung stört, dann liegt es praktisch immer daran, 
dass mit den Blockkondensatoren irgendwas nicht stimmt.
Und siehe da: du hast gar keine!


Zwischen Vcc und GND am µC: 100nF, dicht ans Gehäuse (Pins 7 und 8)
Zwischen AVcc und GND am µC: 100nF dicht ans Gehäuse (Pins 20 und 22)
Zwischen Vcc und GND am MAX: 100nF dicht ans Gehäuse (Pins 15 und 16)


Schon interessant: Wenn jemand hier eine Schaltung veröffentlicht, mit 
der Bitte da mal drüber zu schauen, dann kann man in 90% aller Fälle 
ohne sich die Schaltung anzusehen sofort mit 'Blockkondensatoren' 
antworten :-) Das ist wie der Fehler mit Variablen in einer ISR und 
main(). Da kann man auch ohne Ansehen des Programms einfach mal ein 
volatile ins Blaue hinein von sich geben und liegt bei >90% aller Fälle 
richtig.

von Rico (Gast)


Lesenswert?

verwendest du elkos zur beschaltung des max232 oder normale 
Kondensatoren?

von Rene (Gast)


Lesenswert?

Vielen Dank für die Antworten!! =)

Und siehe da, kaum hab ich 3 Kondensatoren mehr drangelötet, schon 
funktioniert es!
Da die Stromversorgung über einen 78L05 läuft und da schon ein 100 nF 
Kondensator zwischen +5V und Masse wahr, hätte ich nicht gedacht, dass 
noch mehr Kondensatoren nah an den Bauteilen benötigt werden... War denn 
jetzt das Problem, dass der Kondensator ca 2,5 cm entfernt von den dem 
Mikrocontroller und dem MAX232 war, oder dass es nur einer war, damit 
ich es für die Zukunft weiß... ;)

Für den MAX232A habe ich Keramikkondensatoren verwendet.

von Karl H. (kbuchegg)


Lesenswert?

Rene schrieb:

> Mikrocontroller und dem MAX232 war, oder dass es nur einer war, damit
> ich es für die Zukunft weiß... ;)

Jeder Digital-IC benötigt an seinen Versorgungsspannungspins einen 
Abblockkondensator. Wenn so ein IC durchschaltet, braucht er kurzzeitig 
(Nanosekunden) viel Strom. Dieses 'Stromziehen' führt zu ganz kurzen 
Spannungseinbrüchen auf der Versorgungsspannung. Die 'Störung' braucht 
auch Zeit um sich auf der Leitung auszubreiten. Daher will man die 
Störung so schnell wie möglich direkt am IC weghaben, indem der Kondi 
dort den Spannungseinbruch sofort ausgleicht. Je weiter weg der Kondi 
ist, und je mehr IC Störungen produzieren, desto wirkungsloser wird ein 
entfernter Kondi.

von Rene (Gast)


Lesenswert?

Also liegt es wirklich an der Entfernung. Das hätte ich bei 2,5 cm nicht 
gedacht, da sich Strom mit zwei drittel c fortbewegt. Aber ok, für die 
Zukunft weiß ich es jetzt =) Vielen Dank!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Das Ganze nennt sich dann Stützkondensator oder Blockkondensator oder 
Entkopplungskondensator. Die letzten beiden Bezeichungen treffen dann 
eher die andere Richtung: diese kurzen Umschaltstromspitzen sollen nicht 
als Störung auf der ganzen Platine herumgammeln. Das haben sie bei dir 
quasi getan: vom Mäxchen zum uC.

Hier eine kurze Betrachtung zum (durchaus kontroversen) Thema:
http://www.lothar-miller.de/s9y/categories/14-Entkopplung

Und so gehört ein Quarz angeschlossen:
http://www.lothar-miller.de/s9y/categories/33-Quarz

von Falk B. (falk)


Lesenswert?


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.