Forum: Mikrocontroller und Digitale Elektronik Störungen bei UART - Übertragung


von Hans Huber (Gast)


Lesenswert?

Schönen Abend,

mein Programm zum senden von Daten via UART funktioniert auf dem SDK 500 
ohne Probleme. Jedoch auf einer selbst entworfenen Schaltung nicht! Die 
Daten werden falsch übertragen, sprich wirres Zeugs wird ausgegeben, es 
sieht so aus als wie wenn die Baudrate nicht übereinstimmen würde. Bsp: 
statt 'Test' --> 'Esxo'

Kann mein Problem durch irgendwelche Störungen von Bauteilen auftreten?

MfG Hans

von idee (Gast)


Lesenswert?

Die Lösung ist 43

von Purzel H. (hacky)


Lesenswert?

Ja. Wenn die Baudrate nicht stimmt. Welcher Quarz wird denn verwendet 
und wie wird das Baudrate register geladen ?

von spess53 (Gast)


Lesenswert?

Hi

>Die Lösung ist 43

Eher 42.

@Hans Huber (Gast)

Bist du sicher, das du die gleiche Taktquelle hast?

MfG Spess

von holger (Gast)


Lesenswert?

>Kann mein Problem durch irgendwelche Störungen von Bauteilen auftreten?

Kann schon sein, aber ich tipp auf falsche Fuse Settings.

von Hans Huber (Gast)


Lesenswert?

Habe den selben Quarz am SDK 500, sowie auf meiner Platine!
Nehme den am SDK 500 programmierten ATmega mit auf meine Platine, also 
mussen alle Einstellungen wie Fuse Settings passen.
Beide Quarze funktionieren, hab auch schon den beim SDK 500 verwendeten 
getestet.

von Hans Huber (Gast)


Lesenswert?

Störungen wodurch?

von holger (Gast)


Lesenswert?

>Störungen wodurch?

Nix Störungen.

Schaltplan zeigen. Wahrscheinlich den MAX232 vergessen
oder sonst ein Unsinn. Baudrate falsch schliesse ich immer
noch nicht aus.

von Hans Huber (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist ein Teil des Schaltplanes.
Max232 habe ich nicht vergessen ;)

Die Baudrate muss ja richtig eingestellt sein, da ich ja den selben 
ATmega mit dem selben Programm verwende.

von holger (Gast)


Lesenswert?

>Hier ist ein Teil des Schaltplanes.

Das ist kein Schaltplan, das ist ein Witz.
Ich tipp auf fehlende Masse irgendwo.

von Chris (Gast)


Lesenswert?

Ein MAX232A benötigt 100nF und keine 10µF für seine Ladungspumpen.

von Hans Huber (Gast)


Lesenswert?

Danke für das kompliment, hab es hald nicht mit "paint" gezeichnet, 
werde es nächstes mal berücksichtigen.
Habe noch einmal die masse überprüft, müsste stimmen.

von Reinhard R. (reinhardr)


Lesenswert?

Plan A:
Hast du ein Oszi mit dem du nachsehen kannst was sich auf der Leitung 
tut?

Plan B:
Du kannst die Tx Leitung und GND von deinem Board mit dem Pegelwandler 
auf dem STK-500 verbinden (ist AFAIK gejumpert) und nachsehen was da 
passiert.


Was du auch immer probieren kannst, ist auf dem PC mal kurz die Baudrate 
verstellen und nachsehen was dann ankommt. Wenn die Baudrate nicht passt 
ist, sind verstümmelte Übertragungen ganz normal.


Reinhard

von Hans Huber (Gast)


Lesenswert?

@Chris: habe meine Schaltung der Skizze vom  AVR - Buch (AVR - RISC, 
Franzis) entnommen. Laut dieser Skizze ist zwischen C1+ und C2- ... ein 
10µF Kondensator, sowie zwischen C2+ und C2-, VCC und V+ und V- und GND.

Der einzige 100nF Kondensator wird zwischen VCC und GND geschaltet. Ist 
diese Skizze falsch?

von Hans Huber (Gast)


Lesenswert?

@Reinhard R.:

Danke für deine Tipps.
Die Baudrate hab ich verstellt, kommt aber auch nur wirres Zeugs.
Werde morgen mal die Leitung mit dem Oszi messen.

von Reinhard R. (reinhardr)


Lesenswert?

Am leichtesten tust du dich mit dem Oszi vermutlich wenn du Zeichen mit 
gleichmäßigen Bitmustern über die Leitung schickst, z.B. 'U' (01010101) 
oder '3' (00110011).

Reinhard

von Hans Huber (Gast)


Lesenswert?

Ok, werde mich daran hatlen. Danke =)

von Chris (Gast)


Lesenswert?

Hans Huber schrieb:
> @Chris: habe meine Schaltung der Skizze vom  AVR - Buch (AVR - RISC,
> Franzis) entnommen. Laut dieser Skizze ist zwischen C1+ und C2- ... ein
> 10µF Kondensator, sowie zwischen C2+ und C2-, VCC und V+ und V- und GND.
>
> Der einzige 100nF Kondensator wird zwischen VCC und GND geschaltet. Ist
> diese Skizze falsch?

Auch Bücher enthalten Fehler :-) Schaue nach, was der Hersteller deines 
MAX232(A) in seinem Datenblatt angibt. Normalerweise gilt:
MAX232: 1µF
MAX232A: 100nF

Wenn Du nun tatsächlich einen MAX232A verbaut hast und um den Faktor 100 
zu groß bist bei den Cs, so kann das natürlich zu Problemen mit den 
Ladungspumpen führen. 100nF zwischen Vcc und GND ist in jedem Falle ok.

von Peter L. (Gast)


Lesenswert?

9 statt 8 Datenbits?

von oldmax (Gast)


Lesenswert?

Hi
Also, wenn ich's mal kurz bemerken darf. Wenn ein Controller in einer 
Schaltung seinen Dienst tut und in einer anderen nicht, dann schließe 
ich mal Software und Parameter aus. Es kann dann eigentlich nur ein 
Hardwarefehler vorliegen. IC falsch gesteckt, falschen Quarz eingesezt, 
MAsse irgendwo vergessen, aber doch nicht Software. Die ändert sich 
nicht, wenn ich den µC irgendwo anders einsetze. Also, ich würd mal 
kontrollieren, ob Schaltplan mit Schaltung übereinstimmt.
Gruß oldmax

von oldmax (Gast)


Lesenswert?

Hi
Hab grad noch mal drübergesehen. Der Reset hängt frei, soll das so sein 
? Ich weiß, es gibt Pull-Up's aber ist der auch an ?
Gruß oldmax

von spess53 (Gast)


Lesenswert?

Hi

>Ich weiß, es gibt Pull-Up's aber ist der auch an ?

Da sich der interne Pull-Up am Reset nicht abschalten lässt, wird er 
wohl an sein.

MfG Spess

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.