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
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.
>Störungen wodurch?
Nix Störungen.
Schaltplan zeigen. Wahrscheinlich den MAX232 vergessen
oder sonst ein Unsinn. Baudrate falsch schliesse ich immer
noch nicht aus.
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.
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.
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
@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?
@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.
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
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.
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