Archiv verlassen und diese Seite im Standarddesign anzeigen : Serielle Schnittstelle - was ist falsch???
Import-Script
19.01.2002, 11:25
Hallo <BR>ich versuche zur Zeit meinem Robbi mit Hilfe eines FT639 Servocontroller IC's einen Roboterarm zu bauen. Der IC wird seriell angesteuert über 2400 Baud und stopbit. Ich hab' jetzt mit Hilfe des Code Generators von www.erikbuchmann.de eine Software geschrieben, die alle daumenlang die Zahl 117 seriell ausgibt. Wenn der servo Controller freundlcherweise auch mal die Zahl empfangen würde würden sich die Servos in ihre Grundposition stellen. Ich hab' mein Problem schon im roboterwelt.de Forum gepostet, aber die konnten mit meinem Listening bisher nix anfangen ;o) <BR> <BR> <BR>INCLUDE 89c2051.mc <BR>; Initialisierung <BR>;--------------------------------------------------------------- <BR>org 0h <BR>JMP start <BR> <BR>start: <BR>; serielle Schnittstelle aktivieren <BR>; 2400 Baud, Modus 1 <BR> mov TL1, #243 <BR> mov TH1, #243 <BR> <BR>; die SFR's initialisieren <BR> mov SP, #20h <BR> mov SCON,#82 <BR> mov TMOD,#32 <BR> mov TCON,#64 <BR> <BR> <BR>call pause <BR> <BR> <BR> main: <BR>; der ic startet immer im setup mode <BR>MOV A, #117 ;active Mode <BR> <BR>call serial_out ;senden <BR>call pause ;päuschenmachen <BR> <BR>JMP start ;wieder von vorne anfangen <BR> <BR>serial_out: <BR>; auf Abschluß des letzten Sendevorganges warten <BR> JNB SCON.1,serial_out <BR> CLR SCON.1 <BR>; senden <BR> MOV SBUF,A <BR> RET <BR> <BR> Pause: <BR> MOV R0,#255 <BR> Schleife2: <BR> MOV R1,#255 <BR> Schleife3: <BR> NOP <BR> NOP <BR> DJNZ R1, Schleife3 <BR> DJNZ R0, Schleife2 <BR>RET <BR> <BR> <BR>Wäre wirklich super wenn mir jemand helfen könnte!!! Ich hab' schon sehr viel Zeit investiert - ohne Erfolg...... <BR>Das ganze läuft übrigens mit einem 12 Mhz Quarz <BR> <BR>Vielen Dank <BR>Christian
Import-Script
19.01.2002, 12:35
Hi Christian, <BR>Du solltest erstmal untersuchen wo der Fehler ist. <BR>Ein Terminalprogr. am PC aufmachen, auf 2400,8,N,1 stellen und dein µC Signal in RXT einspeisen . Es muß ein kleines "u" (wenn Hex dann $75)empfangen werden. Wenn ja, µC io. Mit fällt gerade ein, wenn du keinen RS232 Treiber benutzt, mußt du das µC Signal inv.(extern wegen Stopbit) <BR>Noch ein Gedanke, will der FT639 ein Startbit? Normalerweise ja, aber wissen kann man nie. Nun kannst du mit der selben Terminaleinst. und <BR>TXT -> FT639(RXT)den Servokontr. ansteuern, indem du lauter kleine u' s sendest. Zum Ansteuern des FT639 über PC brauchst du allerdings einen RS232-Umsetzer (Max232 o.ä.). <BR>So mehr fällt mir momentan nicht ein. <BR>Viel Erfolg Uwe
Import-Script
19.01.2002, 12:49
Hi Uwe <BR>vielen Dank für deine Antwort!!!! <BR>Kann den MC direkt an die serielle Schnittstelle des PC's anscließen, ohne Pegelwandler??? <BR>Von einem Startbit ist im Datenblatt nicht die rede: <BR><A HREF="http://www.ferrettronics.com/docs/FT639/ft639.pdf" TARGET="_top">http://www.ferrettronics.com/docs/FT639/ft639.pdf</A> <BR>Der IC, kann, wenn er mit einer Dioden und 2 Widerständen beschalten wird auch direkt von der seriellen Schnittstelle angesteuert werden. Es gibt unter www.ferretronics.com eine Software für den PC, mit der sich der IC bei mir einwandfrei steuerun lässt. Ich hab' noch nie mit einem terminalprogramm gearbeitet - aber so schlimm kanns schon nicht sein. <BR> <BR>Vielen Dank für deine Hilfe!!!! <BR> <BR>mfg Christian
Import-Script
19.01.2002, 13:10
Hi Christian, <BR>Also wenn du keinen Pegelwandler für den FT brauchst,(Testsoftw. geht ja auch ohne) mußt du das µC Signal inv., denn <BR>TTL-H = 5V; RS232-H = 0 bis - 24V <BR>Gruß Uwe
Import-Script
19.01.2002, 13:30
Hi Uwe <BR>Danke für deine Hinweise!!! <BR>Tut mir leid, aber ich bin nicht so bewandelt - vielleicht kannst du mir das bitte noch mal etwas genauer erklären..... <BR> <BR>1. Woher krieg ich ein dafür geeignetes Terminalprogramm? hab' mir gerade von computerchannel absolute telnet runtergeladen, ich blicks aber wohl nicht so ganz. <BR> <BR>2. wie kann ich das Signal invertieren??? Invertieren heißt doch nur aus einer 1 eine null machen und aus einer 0 ein 1 oder hab' ichs mal wieder nicht so ganz überrissen??? <BR> <BR>Naja OK ich probier mal ein wenig rum...... vielleicht geht's ja jetzt auf einmal - wer weiß??? <BR> <BR>Freu' mich auf deine Antwort!!!! <BR> <BR>mfg <BR>Christian
Import-Script
19.01.2002, 16:38
Mit dem HyperTerminal müsste es funktionieren (bei jedem Windows dabei) <BR> <BR>mfg <BR>Mike
Import-Script
19.01.2002, 16:47
Hyperterminal ist bei jedem Window's dabei. <BR>Lasse einfach Hypertrm.exe mal suchen. <BR>Übrigens Protokoll bitte auf "ohne" stellen. <BR>Zum Inv. einfach ein Gatter oder Transist. an den µC-Ausgang und dann erst zum PC. Die meisten PC's kommen auch mit 5P und 0,8V klar obwohl ja eigentlich nicht richtig. <BR>Gruß Uwe
Import-Script
19.01.2002, 20:08
Hallo <BR>vielen Dank für eure Hinweise!!!!!!!!!! <BR>Irgendwie bin ich zu minderbemittelt um die Sache zum Laufen zu bringen....... <BR>1. Mir gelingt es nicht, daten vom MC in das Hypererminalfenster zu bringen <BR> <BR>2. Mir gelingt es nicht, Daten an diesen Servocontroller IC zu schicken ( com2 konnte nich geöffnet werden. bitte überprüfen sie die Anschlusseinstellungen. - welche denn??????) <BR> <BR>wenn ich s mir recht überlege bringt es doch gar nicht all zuviel, wenn ich es schaffe vom Hyperterminal diesen IC anzusteuern. Es ist mir ja möglich mit der Software von Ferretronics den Roboterarm zu steuern, also funktioniert wohl der IC und die Beschaltung ist OK. Irgendwie muss also der Fehler in dem Programm sein, oder auf der Kabelverbindung liegen - die Kaberlverbindung besteht aus 2 Drähten - 1 für gnd und 1 für serielle Schnittstelle (das hab' ich schon 6x ausgemeseen, da kann ich ja nicht viel falsch machen). Die 2. Feherlmöglichkeit muss also dieses Programm sein. Aber was kann man da falsch machen??? Könnte vielleicht die Baudratenberechnng einen Fehler haben??? (ich verwende einen 12 Mhz Quarz). Das ganze ist doch echt Idiotensicher - das müsste doch sogar bei mir auf Anhieb klappen. <BR> <BR>Ich hab' allein heute den halben Tag damit verbracht diesen IC anzusteuern, aber er will einfach nicht. <BR> <BR>Vielleich hat ja noch jemand eine kreative Idee - bin für alles dankbar (Danke schonmal, dass du dir das lange Posting durchgelesen hast.....) <BR> <BR>Schönen Sonntag!!!!! <BR> <BR>mfg <BR> <BR>Christian
Import-Script
19.01.2002, 20:19
Hallo Christian, <BR> <BR>wenn das, womit es funktioniert PC-Software ist, dann brauchst Du auf alle Fälle einen Pegelwandler. <BR>Wenn Du da nicht sehr erfahren bist, nimm den MAX232, damit stimmen die Pegel auf alle Fälle. <BR> <BR>Auch ist es sinnvoll erst zu überprüfen, ob man mit dem PC kann, dann klappts auch mit dem Roboterarm. <BR> <BR> <BR>Peter
Import-Script
19.01.2002, 20:49
Hallo Peter <BR>zuerst mal danke für dein Posting!!! <BR>Der FT639 braucht keinen Pegelwandler. Der kann laut Datenblatt direkt von einem MC angesteuert werden, oder aber über zwei widerstände und eine Diode vom Computer angesteuert werden. Das mit dem Computer funktioniert ja auch einwandfrei unter Verwendung der von ferretronics bereitgestellten Software. <BR> <BR>Das mit dem PC blick ich ja eben nicht.... <BR> <BR>Naja ich versuh's mal wieder (hab' gerade wieder mut gefasst, da ich sonst einen Deutschaufsatz schreiben muss....) <BR> <BR>mfg
Import-Script
19.01.2002, 20:51
Hey ich hab's gerade geschafft!!!!!!!!! <BR>Allerdings nur über den PC, aber immerhin....... <BR>Ich sende also diese u (diesmal hat's ohne Fehler funktioniert, keine Ahnung was ich jezt anders gemacht habe) und dann funktionierts - alle Servos gehen auf Position Null - die Frage ist nur, was mir dise Erkenntnis jetzt bringt....... <BR> <BR>Naja dann stürz ich mich mal auf meinen MC..... <BR> <BR>mfg <BR> <BR> <BR>PS: Bin immer noch für Tipps jeder Art dankbar!!!!!
Import-Script
19.01.2002, 22:19
Hi Leute <BR>ich bin zwar immer noch nicht beim Erfolg, aber immerhin hab' ichs nach einer kleinen Mahlzeit geschafft Daten einzulesen über das Hyperterm. <BR>Ich lass den MC gerade endlos oft die 117 senden und sehe dann auf meinem Bildschirm lauter $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$. Naja immerhin - oder??? <BR>Was sagt mir das jetzt???? <BR>Vielleicht das die Baudrate falsch eingestellt ist. Ich probier mal ein wenig rum.... <BR> <BR>Vielen Dank für eure Unterstützung !!! <BR> <BR>mfg Christian
Import-Script
20.01.2002, 12:04
Hi Christian, <BR>Langsam geht's vorwärts! Also das Einlesen sollte auch ohne MAX gehen, aber Garantie gebe ich natürlich keine.(jeder PC ist anders) Wichtig ist nur Sign. inv.! Den Inv. brauchst du vermutlich später auch noch. Ich habe mal schnell was gezeichnet was RS232 sehr nahe kommt, hoffentlich klapt es mit dem Bild. Bitte keine geerdeten Meßmittel benutzen !!!(Schutzleiter!) <BR>Was du jetzt auf dem Bildschirm hast, sieht nach falscher Baudrate aus. Zu den Registern deines µC's mußt du mal die Spezi's fragen, ich kenne ihn nicht. Wird die Baudrate nur über die beiden Reg. eingestellt oder gibt es noch irgendwo Vorteiler?(bei mir ist das so) <BR>Gruß Uwe <BR><IMG SRC="http://progshop.com/elektronik/diskussion/messages/6028/2196.gif" ALT="RS232-INV.">
Import-Script
20.01.2002, 17:47
Hi <BR>vielen Dank für die ganzen Mühen die ihr euch wegen mir gemacht habt!!!! (danke Uwe für deinen Schaltplan!!!). Es funktioniert zwar immer noch nicht, aber ich hab' ein Lösung: <BR> <BR>Ich kleiner Krapfen hätte wohl besser gleich in der FAQ von ferretronics.com nachschauen sollen, da steht nämlich: <BR> <BR>Q: Why won't the FT639 respond to an Atmel 89C55 8051? <BR> <BR>A: The 8051 sends a voltage of 0 volts out for a start bit of 0 and a voltage level 5v for a stop bit of <BR>1. This means that logic level 0 = 0 volts and logic level 1 = 5V. Our chip uses logic level 0 = 5V and logic level 1 = 0V. If you put a simple inverter in the circuit, then it will work correctly. Look on a scope and the com line going to the FT639 should be zero volts before sending a byte and zero volts after. You should see a 5V start bit. <BR> <BR>Ich hoffe nicht, dass sowas schon mal einer von euch gepostet hat, und ich hab's nur falsch verstanden (das mit dem invertieren hat sich doch immer auf den PC bezogen , oder?????) <BR> <BR>Naja ich hoffe, dass ich jetzt vorwärts kommen, ic hab' aber keine Zeit es jetzt auszuprobieren, weil ich noch meinen Deutschaufsatz fertig schreiben muss....... <BR> <BR>Vielen Dank an alle Antworter!!!!!!!!!!!!!!!!! <BR> <BR>schönen Sonntag Abend noch und einen guten start in die neue Woche!!!!!! <BR> <BR>mfg <BR>Christian
Import-Script
20.01.2002, 18:32
Wo gibt es denn denn FT639 ??? <BR> <BR>MFG <BR>Martin
Import-Script
20.01.2002, 18:59
Hi <BR>den gibt's bei <A HREF="http://www.sytec-net.de/" TARGET="_top">http://www.sytec-net.de/</A> <BR>Allerdings sauteuer (bis ich ihn in den Händen halten durfte bin ich 49,-DM losgeworden - inklusive Porto + verpackung + Mwst.) <BR> <BR>Software für BS und PC gibt's bei www.ferretronics.com (da gibt's den ic glaub' ich auch) <BR> <BR>mfg <BR>Viel Erfolg damit!!!!
Import-Script
20.01.2002, 19:54
Juhuuuuuuuuuuuuuuuuuuuuuuuuuu es funktioniert nun endlich!!!!!!!!!!!!! <BR>Ich hab' mir einen einfachen Inverter gemacht, fast wie von Uwe vorgeschlagen (Danke Uwe) und jetzt funktiniert es!!!! <BR>Immerhin die Servos gehen in Ausgangsposition - die Postion zu ändern kann ja nicht mehr so schwer sein............... <BR> <BR>Vielen Dank an alle,die mir geholfen haben, oder es versucht haben!!!! <BR>ich versuch's mal postiv zu sehen - ich hab' bei der ewigen Fehlersuch immerhin etwas Erfahrung mit seriellen Schnittstellen und Hyperterminal usw. sammeln könnnen!!!!! <BR>Das dumme ist nur, dass mein Aufsatz immer noch nicht fertig ist, aber der wird schon noch.... <BR> <BR>mfg <BR>der gut gelaunte Christian
Import-Script
20.01.2002, 20:52
Hi Christian, <BR>Das mit dem Inv. hatte ich schon in meinem 2. Posting gemeint. Na egal Hauptsache es geht jetzt. <BR>Viel Erfolg Uwe
Import-Script
24.01.2002, 20:31
Hallo <BR>schon wieder zurück - neues Problem: <BR>dieser bekloppte IC frisst immernur mein erstes byte - ich vermut ich hab' irgendwie ein stop oder startbit nicht, was die normale rs232 vom PC schon hat. Ich hab' schon wieder ewig viel rumprobiert , aber es will mal wieder nicht - kann mir jemand sagen, wass ich jetzt schon wieder falsch mache???? <BR>Im Datenblatt steht ja dass, der IC ein stopbit bracuht, aber ich hab' irgendwo gelesen, dass es auch reicht, wenn der MC die Zeit wartet, die die Übertragung des stopbits gedauert hätte - also einfach 5ms Pause. Vom startbit ist nicht die rede im Datenblatt, aber vielleicht brauch ich das ja unbedingt...... <BR> <BR>Wäre echt super nett... <BR> <BR>Vielen Dank <BR>mfg
Import-Script
24.01.2002, 22:33
Hallo leute <BR>hab' fast genau 2 stunden gebraucht um selbst draufzukommen: <BR> <BR>nach jedem senden muss noch ein <BR> <BR>setb p3.1 <BR>call 0.41ms <BR> <BR>hin, damit das signal auch vom ft693 verstadnen wird. (setb wird nochmal durch Hardware invertiert) - dummer Fehler von mir.... <BR> <BR>mfg <BR>Christian
Import-Script
27.01.2002, 18:36
Überigens: Bei www.erikbuchmann.de findet sich unter Code-Generator eine Software Rs232c. Die kann per Option das Signal + Stop-Bit Invertieren.
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.