PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datentransfer ohne com-Port



solo
01.02.2005, 20:40
Hallo zusammen!

Ist es möglich Daten auf meinen CCRP5 auch ohne com Port zu übertragen? Leider habe ich nämlich keinen com Anschluss mehr an meinem Notebook!
Es sollte doch kein Problem sein dies über eine USB-Schnitstelle zu bewerkstelligen! Vielleicht hat mir jemand ne Schaltung? Selbst bin ich noch nicht in der Lage so etwas zu realisieren.
Geht so was eventuell auch über Bluetooth, Funk oder Infrarot?

mfg Solo

Mobius
01.02.2005, 20:52
Das Problem kenn ich... Ist echt zum "An die Decke gehen"...

Also, was mir jetzt einfallen würde, wäre ein IR <--> Com für deinen Robbi zu batseln... Die Schaltung ist nicht wirklich schwer, doch du wirst um die Nutzung eines µCs nicht vorbeikommen (außer jemand kennt ein anderes Baustein als den MAX3100, der seriell <--> IR konvertieren kann) Doch das löst nicht wirklich dein Problem, dass du auch ein Programm brauchst, der dein IR-Port statt dem Com-Port nutzt...

Also, das was ich über den MAX3100 herausgefunden habe ist:
Er nutzt ein SPI-Port zum Datenaustausch zwischen IR-Modul und µC und diesen brauchst du auch wegen seines seriellen Ports... Mit mehr kann ich leider auch nicht dienen :(

MfG
Mobius

solo
01.02.2005, 21:13
Danke erstmal, aber leider hilft mir das noch nicht wirklich weiter und wirft neue Fragen auf! Muss dazu sagen bin ein absoluter elektronik Laie und weiß nicht was MAX3100 und µCs geschweige denn Spi-Port sind.

S 8-[ l 8-[

F1
02.02.2005, 00:48
Hallo.

Warum holst Du Dir Du Dir nicht eine RS232 für Deinen Laptop? Zum einen gibts das Adapter-Lösungen für USB, zum anderen PCMCIA Karten mit rs232. Kosten tut so eine Karte ca 40-50€.

Hier noch ein kopierter Text aus einem anderen Forum. Den genauen Link habe ich leider nicht mehr.


Autor: Mark Hämmerling - mikrocontroller.net(at)emcad.de
Datum: 13.09.2004 17:00

Salut,

also Olaf hat's ja schon angesprochen, aber ich will nochmal kurz was
dazu sagen, damit es verständlicher wird.
Das Problem bei USB ist, daß Daten höchstens in einem Raster von 1ms
gesendet/empfangen werden können (immer initiiert vom Host). Dafür sind
recht große Pakete möglich (während man bei UART/RS232 ja nur byteweise
asynchron die Daten rausschiebt).
Die bekannten USB/UART-Wandler haben natürlich integrierte Puffer, die
große Datenblöcke problemlos schieben können. Also jede 1ms wird ein
Paket an den Hardware-Converter per USB geschickt. Die Hardware puffert
die Daten und schickt sie dann nacheinander raus.
Das Problem mit dem 1ms-Raster tritt dann sehr unangenehm zutage, wenn
Deine entsprechende Anwendung Daten im "Ping-Pong"-Verfahren sendet
und empfängt. Bei UART kein Thema. Sobald dort die Bits angekommen
sind, kann sofort die Antwort erfolgen. Aber bei USB kann die Antwort
der Hardware ja erst im folgenden Raster erfolgen. Damit hast Du
schonmal eine Verzögerung um ca. 1ms. Wenn die Anwendung das bei jedem
Byte macht (diese Art des Acknowledge ist nicht unüblich), brauchst Du
mindestens (eher mehr, kommt auch auf den Scheduler des OS an) 2ms je
übertragenem Byte. Wenn dann die Anwendung noch besonders zickig ist
und UART-typische Timings erwartet und bei einer Antwortverzögerung von
ca. 1ms schon das Handtuch wirft, dann hast Du schlechte Karten. Aber
normalerweise sollten - ich sag mal - 95% der gewöhnlichen Programme
funktionieren. Aber Du wirst nur bei den allerwenigsten der restlichen
5% die Möglichkeit haben, das Problem im Quellcode selbst zu beheben.
Ich selbst hab bisher ganz gute Erfahrungen (eben mal abgesehen von den
miesen Timings beim Ping-Pong, wo man aber teilweise durch Ändern der
Latenzzeiten noch etwas optimieren kann) gemacht. Aber auch schon ein
Gerät gehabt, was mit einem FTDI Hub-Controller (in einem
USB/Serial-Converter) nicht funktioniert hat: Ein AcerModem 56k. Hat
mich sehr überrascht. Vielleicht ist das Autobauding des Modems nicht
mit dem Converter zurechtgekommen.

Also eine echte RS232 kann so ein Converter freilich nicht ersetzen,
aber für die meisten Anwendungen sollte es reichen - auch wenn mit
drastischen Geschwindigkeitseinbußen gerechnet werden muß - je nach
Anwendung.

Und überhaupt... bevor Du 500 Euro mehr ausgibst, hol Dir doch einfach
eine PCMCIA-RS232 Karte. Zumindest von Exsys gibt's sowas, allerdings
auch nicht wirklich billig. Vielleicht findest Du noch was
günstigeres.

Viele Grüße,
Mark

Weja
02.02.2005, 11:25
bei Reichelt gibts ein USB SERIELL Konverter für 10,30 €,
das sollte doch reichen.
Gruß
Weja

solo
02.02.2005, 12:39
Das ist doch mal was erfeuliches! Ist zwar ein bischen klobig aber what shells!

Danke für dei Lösung.

Falls jemand noch was anderes weiß, nur her damit!

mfg Solo

P.S.: Und so sieht der Konverter aus. Der Preis ist meiner Meinung nach auch gerechtfertigt.

02.02.2005, 15:49
bei Reichelt gibts ein USB SERIELL Konverter für 10,30 €,
das sollte doch reichen.

Nein! Muss nicht reichen. Ein USB-RS232 Adapter kann zu Problemen führen. Siehe den ellenlangen Text in meinem letzten Posting. Dort wird auch erklärt warum dies zu Problemen führen kann.

Eine PCMCIA-Karte ist zwar teurer aber dafür hat man auch eine echte COM-Schnittstelle und kein virtuellen Murks

Trabukh
02.02.2005, 15:54
Also der Adapter von Reichelt funktioniert in beide Richtungen super. Außerdem ist er 9-polig, und nicht 25-polig wie auf dem Bild.
Garantieren kann ich das allerdings nicht, bei mir war es aber so.

Gruß, Trabukh

F1
02.02.2005, 16:20
Also der Adapter von Reichelt funktioniert in beide Richtungen super.
Mit "irgendeiner" Gegenstelle oder mit einem "CCRP5" (was immer das ist)?

Falls das Kommunikationsprogramm dann auch noch dasselbe ist müsste es funktionieren.

Kenne nämlich Geräte, da klappt das nicht mit usb<-->rs232 nicht.

Man kann es ja mal mit einem Adapter versuchen. Wenn es zu Fehlern kommt weisst Du ja was es sein könnte.

FoCus
02.02.2005, 20:43
Das Problem ist das die USB<>Seriell Wandler im Polling Modus arbeiten. Willst du nun Daten hin und her schicken, die hohe Buslast erzeugen, kann das leicht zu einer Überlastung von den Dingern führen.

Gruss
Michael

thewulf00
02.02.2005, 20:54
Hi,

ich mache auch USB<->Controller. Das geht mit dem 30-Euro-Bausatz (191003-WE) von Conrad.
Da kommt hier USB rein (mit einer mitgelieferten DLL von jeder Programmiersprache aus beschreibbar), und dort digitale (und analoge) I/Os raus. Perfekt. Nur der Preis ein bisschen hoch, aber sonst SUPER.
Nur zu empfehlen.

Grüße
wulfi

FoCus
02.02.2005, 21:05
Wenn du viel Aufwandt betreiben möchtest holst du dir von Prolific einen pl2303x und deren virtuellen Comport Treiber dann kannst du das Ding ansprechen wie einen ComPort

Als Treiber kannst du auch von http://www.helmholz.de/download/software/index.de.php den SSW 7 USB-Treiber nehmen

Gruss
Michael

solo
03.02.2005, 09:04
Hab hier noch einen USB <-> Serial Konverter gefunden ist von Conrad kostet satte 39,95 Euros.

Ziemlich teuer fur so ne kleine Schaltung!

Übrigens die CCRP5 ist ein Roboter den es im Hause Conrad für 99,- gibt.

mfg solo

Minifriese
03.02.2005, 10:34
Moin moin!

Ich mache bei AVRs normalerweise sowas wie das beruehmte "printf-debugging", schicke also an interessanten Stellen im Programm Werte ueber USART an ein Terminalprogramm am PC. Neulich hab ich so eine Meldung mal versehentlich so in eine Schleife gesetzt, so dass sehr schnell seeeehr viele Telegramme rausgingen. Ein paar Sekunden nach dem Verbinden des Terminalprogramms hat sich mein Laptop mit einem netten Bluescreen verabschiedet. Das ganze war reproduzierbar :-), und tritt nicht auf, wenn ich "moderate" Datenmengen an den PC sende. Kann das mit dem 1ms-Raster zusammenhaengen, das F1 oben erwaehnt hat? Ich benutze naemlich auch so einen USB-RS232-Adapter...
Nils

solo
06.02.2005, 10:06
Weiß jemand wo ich den Schaltplan für den Konverter von Conrad auftreiben kann ? Leider finde ich nichts!

solo
09.02.2005, 09:42
Habe noch ein weiteres Modul (auch von Conrad) gefunden. Meines Wissens eigentlich fast die gleiche Schaltung nur billiger!?
Verstehe den eigentlichen Unterschied nicht vielleicht kann mir das einer von euch erkläre?

Vielen Dank und Grüße

Solo

albundy
09.02.2005, 16:02
Das untere Modul stellt nur TTL Signale am Ausgang bereit.
Für eine echte RS232 Schnittstelle fehlt der RS232 Treiber IC, der TTL auf +/- 12V umsetzt.