Hallo, Ich hab mir Gestern ein Adapterkabel fürs RN-Control gebastelt, welches ich jetzt eigentlich direkt am Computer (serielle Schnittstelle) anschliessen könnte und mit dem Print befehl Sachen ausgeben könnte. Das Adapterkabel weiss ich das ich es richtig gebastelt habe und die Schaltung mit dem Pegelwandler MAX232 sollte auch funktionieren, denn die ist auf dem RN-control. Nun meine Frage: An was könnte es sonst noch liegen dass es nicht klappt? Auf dem Terminal von Bascom erscheint nichts! Der Code stimmt auch den hab ich 1 zu 1 von einem Buch her kopiert. Die Baudrate ist auch eingestellt wie im Code und im Terminal. Kann es sein das ich die falsche serielle Schnittstelle erwischt habe? Es hat ja zwei? Oder an was sonst? Bitte um Hilfe! Gruss Edwin
Könnte am Win XP liegen. Da braucht man spezielle Porttreiber für ältere Programme die für DOS oder WIN98 ausgelegt sind.
Hi, Das versteh ich jetzt nicht? Ich hab windows XP. Was ist Dos? Und was ist WIN98? Gruss
Hallo Danke für die links Ich hab gleich nochmal eine Frage ob das so richtig sein kann: Wenn ich jetzt mit dem Multimeter die Leitungen (GND, TX, RX) messen gehe, dann stell ich fest, dass wenn ich mit dem minus vom Multimeter zu GND gehe und mit dem plus vom Multimeter zu TX gehe, dann zeigt es mir eine negative Spannung an. Wenn ich es jetzt aber um drehe (minus zu TX, plus zu gnd) zeigt es mir eine normale (positive) Spannung an. Ist das normal? müsste es nicht umgekehrt sein? Lieber Gruss
Das gehört genau so. Du solltest dich zuerst mal mit den Grundlagen der Elektronik vertraut machen und danach noch mit den Pegeln auf der RS232.
Aber ich denke Etwas mit dem Print befehl über RS232 wiederzugeben sei nicht so schwer... Ich poste hier mal noch den Code: $regfile = "m32def.dat" $crystal = 16000000 $baud = 9600 Enable Interrupts Programmstart Print "Hello world" wait 1 Goto Programmstart end
> Das Adapterkabel weiss ich das ich es richtig gebastelt habe Warum weißt du das? Wenn das Kabel angesteckt ist und beide Computer laufen (aber nichts auif der seriellen Schnittstelle tun): Hast du dann auf den beiden Daten-Leitungen einen negativen Pegel in Bezug zu GND? > Die Baudrate ist auch eingestellt wie > im Code und im Terminal. Das ist nur die halbe Miete. Läuft dein µC auch mit der angegebenen Taktfrequenz? > $crystal = 16000000 Du hast einen 16Mhz Quarz auf dem Board und der wird auch verwendet? Hast du das kontrolliert?
Nimm aus der RN-Control den Mega16 heraus, steck in den Sockel zwischen RXD und TXD eine Drahtbrücke. Wenn du dann im Terminalprogramm auf deinem PC etwas eingibst, müsstest du es als Echo wieder zurückbekommen. Wenn das funktioniert weisst du das alles HW-mässig Ok ist. Dann kannst du den Fehler in der SW suchen.
RS232 macht aus 0V +12V und aus 5V -12V, dadurch hat man einen Spannungshub von 24V statt 5V was wesentlich störfester ist. Aber +-12V schaffen die wenigsten Treiber bzw. habe ich noch gar keinen erlebt der das geschafft hat, meistens liegen die um die 9-10V. Wikipedia sagt folgendes: Für die Datenleitungen (TxD und RxD) wird eine negative Logik verwendet, wobei eine Spannung zwischen −3 Volt und −15 Volt (ANSI/EIA/TIA-232-F-1997) eine logische Eins und eine Spannung zwischen +3 Volt und +15 Volt eine logische Null darstellt. Signalpegel zwischen −3 V und +3 V gelten als undefiniert. Die oben angegebenen Spannungen beziehen sich auf die Empfänger (Eingänge). Bei den Sendern (Ausgänge) muss die Spannung mindestens +5 V bzw. −5 V an einer Last von 3…7 kΩ betragen, um genügend Störabstand zu gewährleisten. Üblich ist die Verwendung von +12 V und −12 V.
Hi, Danke euch für die Hilfe! Ich hab einen Fehler entdeckt! Und zwar ist wenn ich TX und RX von GND aus messe dann messe ich nur bei TX eine negative Spannung und bei RX gar keine! Könnte es an dem liegen? Was muss da falsch sein? @Hubert.g: Ich hab das ganze mal ausprobiert, aber wenn ich im Terminal vom dem Programm "Hello World" (oben) etwas eingeben will, geht das nicht! Kann das auch was damit zu tun haben das an RX keine Spannung an liegt? Liebe Grüsse!
Du sollst nur einen Buchstaben eingeben, der geht über TX hinaus und kommt über RX wieder in den PC zurück. Damit hast du den gesamten Leitungszug überprüft, also nur ein HW-Test.
Hi, Das funktioniert auch nicht... und in welchem Terminal muss ich das eingeben? bzw. Der Terminal von welchem Programm... man kommt ja nur zum Terminal, wenn man ein Programm öffnet.. Liebe Grüsse!
Du schickst deine Daten vom µC zum PC, auf diesem muss ein Terminalprogramm laufen um die Daten zu empfangen. Ich verwende zum Testen meisten Hyperterminal oder TeraTerm. Damit kannst du auch Zeichen zum µC schicken und genau das tust du, über die Schleife am µC kommen diese Zeichen wieder zum PC zurück.
Aha. Also ist der Terminal tun emulator von Bascom nicht der richtige? Muss ich mir da auch den Hyperterminal downloaden?
Wenn du in dieses BASCOM Terminal Richtung µC schreiben kannst und auch etwas zurück bekommst, dann sollte es genau so funktionieren.
Aber das funktioniert ja nicht... An was könnte das eigentlich liegen? Wie gesagt RX hat Spannung = 0. Was könnte ich da machen? bzw. messen? Durch den Test mit dem Echo, hab ich jetzt gerausgefunden, dass es an der Elektronik liegt.
Am Kabel Richtung PC gegen GND Pin5 messen, Pin 2 messen, welche Spannung, Pin3 messen, welche Spannung. Dann am Stecker Richtung MAX232 messen, Pin2 messen, welche Spannung, Pin3 messen, welche Spannung. Richtung PC solltest du auf Pin3 etwa -10V messen, Richtung MAX auf Pin2.
Edwin schrieb: > Hi, > Danke euch für die Hilfe! > Ich hab einen Fehler entdeckt! > Und zwar ist wenn ich TX und RX von GND aus messe dann messe ich nur bei > TX eine negative Spannung und bei RX gar keine! Dann kreuze mal dein Kabel aus. An einem Stecker vertauscht du Pin2 mit Pin3
Thomas O. schrieb: > RS232 macht aus 0V +12V und aus 5V -12V, dadurch hat man einen > Spannungshub von 24V statt 5V was wesentlich störfester ist. Aber +-12V > schaffen die wenigsten Treiber bzw. habe ich noch gar keinen erlebt der > das geschafft hat, meistens liegen die um die 9-10V. > Doch die gibs allerdings haben die dann keine eigene Spannungsversorgung die ist eh meist das Problem bei solchen Geschichten.
sollte doch bestimmt heißen, allerdings haben die dann eine eigene Spannungsversorgung. Ja das mag sein ich meinte jetzt aber die Teile mit einer integrierten Ladungspumpe.
Hi RS232 funktioniert, indem ein TX (Transceive oder deutsch Sende) auf ein RX (Receive oder deutsch Empfange) geschaltet wird. Natürlich kann auch nur die TX mit einem Pegel beschaltet werden, da RX ja auf dem Partner der Eingang ist. Hast du nun die Adern so geschaltet, dad RX auf RX und TX auf TX trifft, dann trifft es zu, das du au TX etwas messen kannst. RX auf R kann nichts haben, da auf beiden Seiten Eingang. Tausche auf einem Stecher die Beschaltung an Pin 2 und 3, da behebt evtl. den Fehler. Ansonsten liegt der Fehler dort, wo die spannungslose Ader auf TX trifft. RX-------------------TX PC TX-------------------RX µC Gnd------------------GND Gruß oldmax
Hallo zusammen! @Buchegger: Das Hab ich gemacht. Und es erscheint immer noch nichts auf dem Terminal run emulator @Hubert g.: Ich das alles mal durchgemessen: Pin2 beim Computerstecker: 0V Pin3 beim Computerstecker: -9.56V Pin2 beim Stecker vom RN-Control: 0V Pin3 beim Stecker vom RN-Control: -9.56V Dann hab ich noch zusätzliche Messungen vollbracht und zwar am IC Und zwar am Pin10 und Pin9 von MAX232: Pin10: 4.55V Pin9: 5.0V Hier noch die Pin configruations falls die nicht jeder im Kopf hat: http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15 Und benutzt jemand von euch den Terminal von Bascom? Den Terminal run emulator? Und hat mit diesem Erfolg? Also Pin2 müsste doch auch -9 bis -10V haben? Oder lieg ich da falsch? Grüsse!
@oldmax sry war einbisschen zuspät und konnte es nicht lesen... Also das mit dem Tauschen hat irgendwie nicht funktioniert. Aber ich versteh dann nicht warum sie im RN-Wiki den schaltplan des Steckers anders schreiben: http://www.rn-wissen.de/index.php/RS232 Da steht auch drücklich TX zu Pin3 und RX zu Pin2! Gruss
Hallo Neue Mess ergebnisse! Ich hab jetzt RX und TX auf bei einem Stecker vertauscht und in den Computer eingesteckt und siehe da! 8.67V bei TX Und 10.58V bei RX! Aber leider funktioniert das mit dem Echo auch so noch nicht Ich hab also den Mikrocontroller nochmal rausgenommen und eine Brücke zwischen RX und TX gemacht. Dann hab ich den Terminal vom Programm Helloworld (selbst geschriebenes) aufgerufen probiert ein Buchstabe einzugeben, aber nichts da. Irgendwie trau ich dem Terminal run emulator nicht... aber vielleicht lieg ich da falsch... Gruüsse!
>Da steht auch drücklich TX zu Pin3 und RX zu Pin2! Das ist auch richtig! Zwischen zwei RS232-Schnittstellen von DTEs (z.B. PC, µP, etc) ist von der Definition her eine Modemverbindung vorgesehen. Diese kreuzt die Pins 2 und 3. Für den normalen Anwendungsfall, wie bei dir, kann dies ein Nullmodemkabel erledigen - nichts anderes als ein Kabel, das Pin2 und Pin3 der beiden Stecker kreuzt. Also: TX auf Pin 3 des einen Endgerätes muss mit Rx auf Pin2 des anderen verbunden werden - in beiden Richtungen. >Also Pin2 müsste doch auch -9 bis -10V haben? Oder lieg ich da falsch? Wenn du jeweils an Pin2 0V misst, so ist das dann richtig, wenn beide Geräte nicht angeschlossen sind. Sollte die Verbindung bestehen, so muss an Pin2 des einen Gerätes das TX-Signal des andern anliegen. Erst dann ist dein Kabel richtig.
Häää? Jetzt wurde mir doch vorher gesagt ich solle Pin2 und Pin3 an einem Stecker tauschen. Dann hab ich das gemacht und dann eben 10.58 und 8.67 gemessen als ich beide verbunden hab und jetzt sagst du mir das es am Anfang doch richtig war?!? Langsam versteh ich gar nichts mehr. Wie habt ihr es denn? Könnte nicht jemand mal nachschauen, denn es bringt mir nicht viel wenn jeder etwas anderes behauptet... ausser ich versteh etwas falsch? Ich sag jetzt nocheinmal ganz klar wie ich zuzeit stehe: RX vom MAX232 geht nun zu Pin3 der Sub 9 Buchse TX vom MAX232 geht nun zu Pin2 der Sub 9 Buchse AN RX vom MAX232 messe ich 10.58V, wen die Sub 9 Buchse eingesteckt ist An Tx vom Max232 messe ich 8.67V, wenn die Sub 9 Buchse eingesteckt ist Ich hab den ATmega32 aus der Fassung rausgenommen und eine Brücke im Sockel vom ATmega32 gesteckt zwischen RX und TX. Wenn ich jetzt aber einen Buchstaben in den Terminal emulator eingebe passiert nichts. Hat jemand eine Idee warum das so ist? Liebe Grüsse!
Also wenn du auf RX und TX Spannung misst, dann sollte es mal passen. Suche dir am besten HyperTerminal, oder TeraTerm, die sind beide leicht einzustellen. Stelle auch sicher das du auf der richtigen COM bist, testweise mal umstecken.
Muss ich diese im Internet runter laden? Oder sind die bereits auf dem System vorhanden? Denn leider hab ich kein Internet an meinem Programmiercomputer Als beim Terminal emulator musste ich eigentlich auch nicht viel einstellen. Ich hab einfach mal die Baudrate gleich eingestellt wie ich sie bei meinem Programm hatte... Den Com kann man auch einstellen... diesen hab ich jetzt einfach mal auf Com1 gelassen. Hat die Baudrate was mit dem Computer zu tun? bzw. ist diese von Computer zu Computer unterschiedlich? Ich habs sie im Terminal emulator sowie im im Programm auf 9600 eingestellt
Nachdem ich sehr viel mit RS232,speziell bei fremden Geräten zu tun hatte, man erlebt dabei die wundersamsten Dinge, habe ich mir diesen RS232 Monitor gebaut. Wird einfach ins Kabel eingeschliffen. Es hat mir sehr viel unnötige Suche erspart.
TeraTerm gibt es hier: www.heise.de/software/download/teraterm_pro/51776 HyperTerminal ist bei mir unter Zubehör/Kommunikation drinnen, wird eigentlich mit installiert wenn man es nicht ausschließt.
Hi, Also finde ich Zuberhör unter Systemsteuerung? Dort hab ichs zwar nicht gefunden.. Oder muss ich das mit Exploerer suchen? Oder wo wäre das? Grüsse! PS: Also die Baudrate hat nichts mit dem Computer Eingang zu tun oder sowas?
Edwin schrieb: > Häää? > Jetzt wurde mir doch vorher gesagt ich solle Pin2 und Pin3 an einem > Stecker tauschen. Dann hab ich das gemacht und dann eben 10.58 und 8.67 > gemessen als ich beide verbunden hab Du meinst hoffentlich negative Spannungen (in Bezug auf GND) Wenn du auf beiden Signalleitungen jeweils so um die -9 bis -12V misst, deann passt dein Kabel. Ruhepegel auf der Transmit (Tx) Leitung ist -12V (wird nicht so genau gegessen) und da du das auf beiden Adern messen kannst, ist damit klargestellt dass jeweils Tx von der einen Seite mit Rx von der anderen Seite verbunden ist. Jeder Sender sendet also auf einer Leitung, die auch tatsächlich bei einem Empfänger endet.
Ich verwende XP Start Programme Zubehör Kommunikation Die Baudrate legt nur fest, das beide mit der gleichen Geschwindigkeit Senden und Empfangen.
Edwin schrieb: > Als beim Terminal emulator musste ich eigentlich auch nicht viel > einstellen. Ich hab einfach mal die Baudrate gleich eingestellt wie ich > sie bei meinem Programm hatte... Gut. > Den Com kann man auch einstellen... > diesen hab ich jetzt einfach mal auf Com1 gelassen. Hast du mehrere serielle Schnittstellen in deinem PC? > Hat die Baudrate was mit dem Computer zu tun? bzw. ist diese von > Computer zu Computer unterschiedlich? Ähz nein. Die Baudrate sagt lediglich, wie schnell die Kommunikation ablaufen soll. Logischerweise muessen sich PC und deine RN-Control darüber einig sein, wie schnell gesendet werden darf. Sonst kommt die Gegenstelle nicht mit. > Ich habs sie im Terminal emulator > sowie im im Programm auf 9600 eingestellt Gut. Das heißt noch lange nicht, dass deine RN_Control dann auch tatsächlich mit dieser Baudrate sendet. > $crystal = 16000000 Damit teilst du dem BASCOM Compiler mit, wie schnell deine RN-Control deiner Meinung nach arbeitet. Aber tut sie das auch wirklich? Hast du das kontrolliert?
Edwin schrieb: > Ich hab den ATmega32 aus der Fassung rausgenommen und eine Brücke im > Sockel vom ATmega32 gesteckt zwischen RX und TX. Wenn ich jetzt aber > einen Buchstaben in den Terminal emulator eingebe passiert nichts. > Hat jemand eine Idee warum das so ist? Das ist bedenklich. Hast du Flusssteuerung aktiviert? Die muss aus sein!
Hi, Es ist gegangen!!!!!!!!! Mit dem Terminal Emulator!!!! Tausend Dank euch!!!!! Jetzt kann ich mich endlich meinem Projekt widmen!!!!! Liebe liebe Grüsse!
Edwin schrieb: >Häää? >Jetzt wurde mir doch vorher gesagt ich solle Pin2 und Pin3 an einem >Stecker tauschen. Dann hab ich das gemacht und dann eben 10.58 und 8.67 >gemessen als ich beide verbunden hab und jetzt sagst du mir das es am >Anfang doch richtig war?!? >Langsam versteh ich gar nichts mehr. Wie habt ihr es denn? Könnte nicht >jemand mal nachschauen, denn es bringt mir nicht viel wenn jeder etwas >anderes behauptet... ausser ich versteh etwas falsch? >Ich sag jetzt nocheinmal ganz klar wie ich zuzeit stehe: >RX vom MAX232 geht nun zu Pin3 der Sub 9 Buchse >TX vom MAX232 geht nun zu Pin2 der Sub 9 Buchse Sorry, wenn ich das nochmals aufwärme: Ich habe nur dafür plädiert (wie schon mehrfach hier im Forum), es von vorneherein richtig zu machen. DTEs (PC, µCs, Terminals) sollten alle gleich beschaltet sein (männliche Buchse, RX auf 2 und TX auf 3 beim SUBD9). Die Verbindung zwischen DTEs erfolgt über eine Modemstrecke - im häufig verwendeten Sonderfall ist das ein Nullmodemkabel, welches Tx und Rx kreuzt. So, wie du es jetzt gemacht hast, brauchst du ein 1:1-Kabel zwischen PC und µC. Du hast zwar die notwendige Kreuzung, aber an der falschen Stelle. Wenn du mal zwei µCs miteinander verbinden willst, dann musst du das Kabel in ein gekreuztes umtauschen. Die 1:1-Kabel (aufgebaut wie ein normales Verlängerungskabel) sind nur zwischen DTE und DCE (Modem) einzusetzen, die Modemstrecke kreuzt Rx und Tx. Verlängerungen haben auch als Anschluss einen männlichen und einen weiblichen Steckverbinder. Nullmodemkabel haben im Gegensatz dazu zwei weibliche Stecker. Es dürften eigentlich nur diese beiden Kabeltypen existieren. Und dein PC sowie dein µC sollten männliche Buchsen besitzen. Kabel, die zwei Females besitzen und nicht gekreuzt sind, darf es per Definition nicht geben. Ebenso Verlängerungen (gekreuzt, mit male und female) sind falsch. DTEs haben immer männliche Stecker eingebaut, DCEs immer weibliche. Auch ein Nullmodemkabel ist ein DCE. Das ändert sich auch nicht dadurch, dass man selbst solche Kabel kaufen kann - das ist nur die Ausgeburt des Nichtverstehens einer simplen RS232-Verbindung. Und: hätten das alle von Anfang an richtig gelernt, gäbe es kaum eine Frage zu RS232. Trotzdem freue ich mich mit dir, dass es jetzt funktioniert.
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.