Hallo, bin noch Anfänger und hab mir die Testschaltung zum Empfang von Daten via Uart aufgebaut(nach dem Schaltplan aus den Tutorial). Leider funktioniert es nicht und ich bin nicht dahinter gekommen warum. Hab das Programm mit yaap in den Controller(mega8) geschrieben, meine Testschlatung mit dem MAX 332 aufgebaut und alles verkabelt. Leider wird im Hyperterminal absolut nichts angezeigt. Eigentlich sollte ja das Wort 'Test' in einer Endlosschleife übertragen werden. Vielleicht hab ich einen Fehler in meiner Schaltung. Kann sich vielleicht mal jemand mein Platinenlayout(im Eagle-Format) ansehen und gegebenfalls bitte korrigieren? Vielleicht liegt einfach da schon der Fehler! Ich stehe jetzt jedenfalls irgendwie auf der Leitung- wäre sehr dankbar, um hilfe!
Hallo Herbert, deine Schaltung ist falsch - das kann so nicht funktionieren. Der Denkfehler liegt in der Durchnummerierung (am besten das Bild im Attachment anschauen). Du hast also auf der rechten Seite des Chips falsch herum durchnummeriert. Viele Grüße Steffen
Hallo Steffen! danke, da hätte ich wohl lange rumrätzeln können, wo der Fehler liegt. Werde die Schaltung verändern und hoffe, dass es dann funktioniert!
Jo, kein Problem. Falls sie immer noch net funktionieren sollte, einfach nochmals melden.
Hallo! Hab jetzt das Platinenlayout korrigiert, die Schaltung nochmals aufgebaut und leider funktioniert noch immer absolut nichts! Hab zur Kontrolle mein verändertes Layout nochmals angehängt! Könnte es vielleicht sein, dass der Max232 defekt ist?
Hallo Herbert, hab deine Schaltung gerade nochmals überprüft. Das Layout ist richtig so, das sollte funktionieren. Möglich wäre, dass der Max232 durch deine falschen Versuche kaputtgegangen ist. Vielleicht hast du noch einen Ersatzchip?
Hallo Steffen, danke für deine schnelle Antwort! Es ist echt zum Verzweifeln. Alles hat bis jetzt geklappt, nur die Sache mit dem UART nicht. Ja, hab noch einen Max232 als Ersatz, jedoch hatte ich auch den schon für "falsche" Versuche eingesetzt und kann darum nicht sicher sein, ob er nicht auch kaputt ist. Jedefalls hab ich mal den Max232 ausgetauscht und es tut sich noch immer nichts. Hab mal nochmals alle Lötstellen und Leiterbahnen überprüft, da sollte alles ok sein. Die Kondensatoren scheinen auch richtig gepolt zu sein. Die Spannungsversorgung +5V ist da. Das Kabel zur Seriellen Schnittstelle ist das korrekte und sollte auch ok sein, da ich es erst neu gekauft hab. Habe auch mal eine anderen COM-Port probiert, auch nichts! Im Hyperterminal heißt es zwar, dass angeblich eine Verbindung hergestellt wurde, aber es tut sich nichts! Hab mal einen Reset am Mega8 ausgefürt, den Controller gelöscht und das Programm nochmals einprogrammiert. Hat aber nichts genützt. Das Programm aus dem Tutorial ist ja wohl auch korrekt. Hab AVR-Studio 4.07 verwendet, um das Programm zu assemblieren. Alles andere hat mit bis jetzt funktioniert. Ratlose Grüsse
Hallo Herbert, du hast die Platine geätzt? Kannst du vielleicht mal n Foto von der Platinenunterseite posten? Das Tutorial funktioniert so - ich habs selbst daran gelernt. Hatte keine Probleme. Habe allerdings mit dem 4433 gearbeitet. Ich nehme an die Verbindung zum uC stimmt auch (kein TXD / RXD vertauscht) !?! Hast du ein Oszi, mit dem du mal schauen kannst, ob sich auf den Übertragungsleitungen überhaupt was tut?
Hallo Steffen, ja, ich hab die Platine geätzt und chemisch verzinnt. Aber von daher scheint alles ok zu sein. Ich hab mal versucht mit meiner Webcam ein Bild von der Platinenunterseite zu machen, allerdings war die Qualität so schlecht, dass es sich nicht lohnt dieses zu posten. Ja, die Verbindung zum uC stimmt. Hab leider kein Oszi. Aber das Programm im Tutorial wurde umgeschrieben für den Mega8, da sich dort einiges am UART geändert hat. Vielleicht is da ein Fehler?
nur hab ich statt einem 4Mhz Quarzoszillator(wie im Tutorial) ein 8 Mhz verwendet. Aber das dürfte bei der Anwendung des UART wohl egal sein? oder?
Aha, hier liegt das Problem. Wenn du einen 8 MhZ Quarz verwendest musst du das Prog entsprechend anpassen. .equ CLOCK = 4000000 Aus dieser Zeile einfach .equ CLOCK = 8000000 machen - dann sollte es aber eingentlich funktionieren ... Viele Grüße Steffen
Hallo, leider war das wohl nicht das Problem bzw. war das nicht das einzige, mit dem falschen Takt im Programm. Hab jetzt alles probiert, hab sogar testweise mal ein 4433 verwendet und das alte UART Programm aus dem Tutorial. Leider geht immer noch nichts. Scheinbar ist wohl der Max232 doch kaputt. Muss jetzt erst schauen, wo ich einen neuen Max232 herbekomme, um alles weitere zu testen. Danke für deine Hilfe.
wollen wirs hoffen. werd mich auf alle fälle mal nochmal melden sobald ich nen neuen max232 hab und dir sagen, ob dann geklappt hat. kann aber noch etwas dauern... viele grüsse
Um die Funktion des 232 zu prüfen kannst Du folgendes machen: An Pin 3 sollte (gegen Masse, Pin 15) eine positive Spannung von ca. 10V anliegen. An Pin 6 eine negative Spannung von -10V. Ist dies nicht der Fall, dann ist die Ladepumpe (die aus 5V +/- 10V generiert) defekt. Ohne mir die Schaltung angesehen zu haben: Hast Du die Elkos richtig gepolt? Gerne wird der an Pin6 zu Masse verkehrt eingebaut.
ja, die elkos sind richtig gepolt. Also beim nachmessen der Spannungen am max232 direkt in der schaltung bekomme ich bei Pin3 +2,6 V und bei Pin6 -8,23 V
Hi Hebert leg dech einfach mal eine Spannung von -10V oder +10V an die Empfangsseite des RS232 und messe auf der TTL Seite den Pegel. Du solltest dann 5V bzw. 0V messen können. Dann solltet du auf der TTL Seite 0V und 5V anlegen und auf der RS232 Seite die 10V und die -10V messen. Wenn das nicht der Fall ist, ist der Chip kaputt oder irgendwo ist ein Kurzer. Viel Glück mfg Thorsten
Hallo Herbert, sofern der UART softwaretechnisch korrekt angesprochen wird, liegt es uU. am Hyperterm. Es ist dafür berüchtigt... Als Alternative kann ich mttty empfehlen. Wichtig wäre auch, wenn kein Hardware Handshake gebraucht wird, selbiges im Terminalprogramm auszuschalten (im mttty auf "Flow Control..." clicken und alles disablen). Gruß, Claus
Hallo an alle! Danke für eure Tips! Leider hab ich schlechte Nachrichten, hab heute einen neuen Max232 eingebaut und es funktioniert noch immer nicht. Außerdem bin ich dann extra mal an den Com-Port von einem anderen PC gegangen und dort hat auch nichts funktioniert. Auch andere Terminalprogramme als das Hyperterminal hab ich probiert. Jetzt weiss ich aber echt nicht mehr weiter. Könnte mir jetzt nur noch vorstellen, dass das Kabel einen "Macken" haben könnte. Oder was meint Ihr?
Es darfd sich bei dem Kabel nicht um ein gekreuztes handeln - hast du das schon mal nachgeprüft? (also kein Nullmodemkabel) ...
nur um mich nochmals zu versichern. Mein Platinenlayout (Eagel Datei im Anhang) ist also definitiv richtig so? Wollte nur nochmals Fragen, um sicher zu sein, dass der Fehler nicht an einer falschen Schaltung liegt. Könnte das Problem auch am IC-Sockel des Max232 liegen? Hab keine Präzisionsfassung nicht, dass der IC keine richtige Verbindung mit dem Rest der Schaltung hat?
Wie schauts an Pin 3 und Pin 6 aus? Die +2,6V sind definitiv nicht in Ordnung, die -8,23V wären gerade noch OK.
@thkais wird wohl am Besten sein, wenn ich mir nochmal die Platine ätze und die komplette Schaltung nochmals neu aufbaue. Hab mal das Platinenlayout nochmals als GIF angehängt. Schau bitte mal kurz rein, die Layout müsste doch richtig sein oder?
könnte es nicht doch sein, dass das serielle Kabel an allem Schuld ist? War nur ein recht günstiges Kabel. Vielleicht sollte ich mal ein Kabel mit guter Abschirmung verwenden, um die Schaltung mit dem COM-Port des PC zu verbinden.
ja, externer oszi ist aktiviert. Ausserdem hab ich ja bei meinem 4433 dasselbe Problem.
Ahh, ja, als GIF gehts schon besser.... Mir fällt da etwas auf: Der Elko von Pin2 geht mit (-) an die +5V. Der sollte besser an GND angeschlossen werden. Genauso der Elko, der mit (-) an Pin 6 dranhängt: Im GIF hat die andere Seite des Elko keine Verbindung zu irgendwas. Der (+)-Pol dieses Elkos auch an GND anschließen. Bevor Du den Fehler woanders suchst: Erst die Spannung, wie oben beschrieben, an Pin 2 und Pin 6 checken. Wenn die nicht stimmt, kanns nicht funktionieren.
doch der Elko an Pin6 hat eine Verbindung zn GND, ist nur im GIF nicht so gut zu erkennen. Warum der Elko an Pin2 besser an GND anschließen? Das is mir jetzt nicht ganz klar.
Weil der Pin 2 die +10V bereitstellt. Wenn Du den Kondensator von +10V an +5V anlegst, hast Du nur 5V Differenz, der Kondensator hat einfach eine geringere Energiemenge. An Masse angelegt ist es besser, außerdem wird das im Datenblatt auch so angegeben. Bevor Du eine neue Platine ätzt, probiers mal mit Lochraster oder einem Steckboard. Macht weniger Arbeit, falls doch noch etwas zu ändern ist. Ich habe gerade mein Layout nicht zur Hand, heute abend poste ich mal eines.
ok, danke! vielleicht sollte ich eventuell auch mal die Werte der Kondensatoren verändern? Ich hab wie hier im Tutorial 22µF verwendet. Im Datenblatt werden glaub ich 1µF angegeben.
Noch mal zum Kabel: Pin13 des MAX232 ist R1In und geht auf Pin2 der Sub-D Buchse also gleiche Belegung wie beim PC. Dann braucht man doch ein Nullmodemkabel. MfG Steffen
Ich finds einfach ums verrecken net mehr - irgendwo in den Tiefen der Festplatte muß es doch sein..... Ich habe aber Dein Layout nochmal mit nem Datenblatt gegengecheckt. Wenn Du Pin 11 an TXD und Pin 12 an RXD angeschlossen hast, ist (bis auf die Sache mit dem Elko) alles O.K. Die 232 sind mit den Kondensatoren nicht so Pingelig, ich habe meistens 1uF dran, aber zumeist laufen sie sogar mit 100nF. Dein Kabel kannst Du ganz einfach mit einem Durchgangsprüfer überprüfen, es sollte 1:1 durch geschleift sein (Also Pin2 an Pin2, Pin3 an Pin3 usw.) Geh doch mal ganz analytisch vor, um den Fehler einzugrenzen: 1. Bei einer 9-pol. SUB-D Buchse Pin 2 und 3 brücken und direkt auf den COM-Port des PC stecken. Nun sollte jedes Zeichen, das der PC sendet, sofort zurückgesendet werden. Falls nicht: Falsche Schnittstelle, COM-Port evtl. defekt. 2. Kabel an PC anschließen, die "Blind-Buchse" ans Ende des Kabels. Ging es bei 1 und jetzt nicht, isses das Kabel. 3. Kabel an Adapter anschließen, Spannung ans Adapter und Pin 11 und 12 brücken (ohne Controller). Spannung an Pin2 und 6 checken (s.o.). Gings vorher und jetzt nicht, isses die Adapter-Platine. 4. Nun den Controller anschließen. Wenns vorher ging und jetzt nicht, isses der Controller oder die Software. Ist mir auch schon so gegangen, Tagelang einen Fehler gesucht und dann wars ne kalte Lötstelle. Der Teufel steckt im Detail.
@Herbert Nur mal so nebenbei: Man sollte auch die Fuse- bits checken.Der Takt muss vom Quarz kommen und nicht vom internen Oszillator. Sonst macht jedes Uart Macken. Prüfen kannst du das, indem du einfach mal den Quarz abklemmst und dir zB. über eine LED anschaust, ob der Prozi noch läuft. Sollte er natürlich dann nicht ! Thema LED: ist schon ganz praktisch für Monitorzwecke: (hab mir deinen Plan noch nicht angesehen, gehe aber davon aus, dass du keine als monitor Verwendest). Ich lasse mir über verschiedene Lichtzeichen der LED anzeigen, ober der Prozi läuft, wann er etwas sendet und ob er was empfängt. Das ist dann die einfachste Möglichkeit, die Software zu testen. @ Steffen: Wann nehme ich nun ein NUllmodemkabel und wann nicht ? Das würde mich mal interessieren. Hängt das nur davon ab, ob die Rx/Tx vertauscht sind ??
Ein Nullmodemkabel (gekreuzt 2--3 3--2 ) brauche ich, wenn die Belegung des Steckers oder der Buchse am MC mit der des PC´s identisch ist. Bei dem 9-poligen Stecker am PC ist Pin2 RXD und Pin3 TXD. Mit der oben gezeigten Schaltung muss RXD(PC Pin2) mit T1Out (Max232 Sub-D Pin3) und TXD(PC Pin3) mit R1In (Max232 Sub-D Pin2) verbunden werden. Also ein gekreuztes Kabel. Achtung, wenn am Kabel eine Buchse und ein Stecker angeschlossen sind. Die Belegung ist dann gespiegelt, was schnell zu Verwechslungen führen kann. Ein 1:1 Kabel hat meist einen Stecker und eine Buchse. Ein Nullmodemkabel (gekreuzt) hat meist zwei Buchsen. MfG Steffen PS: Masse (Pin5) nicht vergessen.
Woher kommt denn die Weisheit das der Takt vom Quarz kommen muss und nicht vom internen Oszillator? Ich habe in einigen Schaltungen gar keinen Quarz drinnen, verwende die UART und das funktioniert ohne die geringsten Probleme!
Hallo! ja, der externe Oszi ist aktiviert. Korrekt, LEDs für Monitorzwecke hab ich bis jetzt in meiner Schaltung keine vergesehen. @thkais Hab jetzt an einer Buchse Rx und Tx gebrückt und auf das Kabel aufgesteckt. Was ich jetzt über ein Terminalprogramm an Zeichen sende(mit Terminal 1.9b von Br@y++), kommt wieder an den PC zurück d.h. das Kabel ist wohl definitiv ok. Es muss also wohl doch an der Adapterplatine liegen. Werde mir jetzt nochmals die Platine vornehmen.
Ich tippe trotzdem noch auf das Kabel. Der Test mit dem Brücken sagt nur aus, das der PC funktioniert. Wenn es das falsche Kabel ist, dann geht trotzdem nichts. Wie schon mal von mir gesagt es muss ein gekreutztes Kabel sein nicht wie oben behauptet ein 1:1 Kabel. Was ist es jetzt eigentlich für eins? Hat es zwei Buchsen oder eine Buchse und einen Stecker? MfG Steffen
Hab mir gerade das Board noch mal angeschaut. Eingezeichnet ist eine Sub-D Buchse also ist das Kabel wenn´s ein Standartkabel ist 1:1 dann funktiniert das nicht.
Hab gerade mein Kabel mal durchgemessen. Ist ein 1 zu 1 Kabel. Ich hab an meiner Schaltung eine Buchse, an die ich an die Lötstellen wie aufgedruckt an 2 TXD und an 3 RXD angeschlossen hab. Dann hab ich ein Verlängerungskabel mit der Steckerseite an meiner Schaltung und der Buchsenseite an meinem PC. Und bei mir funktioniert das einwandfrei seit dem ersten Versuch ...
@Steffen Ich glaub du hast Recht! Da ist wohl der Fehler. Ich hab eine Buchse eingezeichnet.
OK, schlagt mich. Ich nehme alles zurück und behaupte das Gegenteil. Die Buchse ist in der Schaltung richtig angeschlossen. Ich hab beim ersten mal anschauen die Pins verdreht. Asche auf mein Haupt. MfG Steffen
ich glaub, ich brauch dich nicht zu schlagen g Ich hab einen Sub-D Stecker. Eingezeichnet ist aber eine Buchse
Noch mal zum Test der Schaltung, wenn E$7 (Verbindung zum MC) gebrückt wird, und der Test genauso funktioniert wie mit dem Kurzschlussstecker auf dem Kabel, dann ist die Schaltung auf jeden Fall OK und der MC ist irgendwie falsch angeschlossen. MfG Steffen
Na dann sollte sich das Problem ja gelöst haben. Aber mach dir nix draus das ist mir auch schon passiert und ich hab stundenlang gesucht. MfG Steffen
hoffen wir, dass das jetzt der ganze Fehler war. Leider werd ich es wohl erst morgen probieren können. Wer mich aber auf alle Fälle nochmal melden. naja, ich mach mir zwar eigentlich nichts draus, aber komme mir trotzdem schon vor wie ein idiot.
hab es nicht lassen können und habe heute doch noch schnell ne neue Platine geätzt(gleich zwei sogar, um genau zu sein). Siehe da ... es funktioniert und ganz ohne Probleme!!! Hurra, der UART funktioniert g Das ganze Problem war der Layoutfehler mit der Buchse bzw. dem Stecker. Ich möchte mich nochmals bei allen Leuten hier aus dem Forum für die Unterstützung bedanken. Insbesondere geht mein dank an: Steffen u. thkais aber natürlich auch an alle anderen. Vielen dank! Leute ihr seit einfach spitze!
Hallo Herbert, freut mich, dass wir das Problem gelöst haben. Viele Grüße Steffen
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.