Forum: Mikrocontroller und Digitale Elektronik Wie stellt man heutzutage eine PC-Kommunikation her?


von Mario Bunt (Gast)


Lesenswert?

Hallo Mitfreunde der Elektronik,

ich habe in den letzten Tagen eine erschreckende Entdeckung gemacht:
anscheinend bin ich in den letzten Jahren nicht mitgekommen, bin also 
total out-of-knowledge ^^

Was die Kommunikation zwischen PC und eigener Hardwarekreationen angeht, 
haben wir früher die seriellen und parallelen Ports ausgelutscht. 
Mittlerweile werden diese an Mainboards allerdings ziemlich rar - 
FireWire und USB übernehmen die Welt.

Und da ich nun vor dem Problem stehe, meine entworfenen Schaltungen von 
PCs aus schalten & walten zu lassen, bin ich eigentlich nicht der 
Meinung, mich großartig in die Protokolle aller Verbindungsarten ala USB 
und FireWire einzuarbeiten, um dann irgendwelche Treiber zu schreiben, 
die mir meine 10 Bit auf dem PC 1:1 auf den Port meines Microcontrollers 
ausgeben.

Ich möchte nicht forsch erscheinen - aber wenn ich softwaretechnisch auf 
dem PC meine paar Bit generieren, will ich die Pegel 1:1 auf meinem 
Eingängen haben o.O meine Google-Suchen haben bisher auch nicht wirklich 
das ergeben, was ich wollte. Nämlich unproblematisch meine H/L-Signals 
irgendwie extern zu bekommen.

Wenn die Möglichkeit bestände, irgendwo irgendwelche USB 
Treiberbausteine herzuzaubern, die für mich den gesamten Handshake 
abwickeln und evtl. sogar noch über die Generic Driver ansteuerbar sind, 
wäre ich wunschlos glücklich.

Kennt ihr da evtl. gescheite Lösungen?
Denn wenn ich bedenke, dass meine Anforderungen (nämlich 1:1 H/L-Levels) 
relativ niedrig sind, denke ich doch, dass es da Möglichkeiten oder 
fertige Treiberbausteine gibt?

Gruß,
Mario :)

von Eric B. (erc)


Lesenswert?

Schaust du hier: http://www.mikrocontroller.net/articles/USB (und 
speziell unter "Via µC ansteuerbare USB-Controller")

Ansonsten gibts ja notfalls auch noch schnittstellen Adapter oder 
erweiterungen für den PC.

von Εrnst B. (ernst)


Lesenswert?

Für die absolute "Frickel-Lösung": Nimm nen USB-Hub mit einzelnen LEDs 
pro Port.
Die Leds lassen sich über einen standardisierten USB-Request einzeln 
ein- und ausschalten.

High/Low Pegel lassen sich da natürlich recht einfach abnehmen, mit 
Optokoppler statt LED auch galvanisch getrennt.

Leider ist das ganze nicht sonderlich schnell, so ~100ms gehen aber.

Und unter Windows ist es evtl. etwas kompliziert, direkt Requests an den 
HUB zu schicken, unter Linux mit Libusb und etwas C oder Perl, Python 
recht simpel.

/Ernst

von Mario Bunt (Gast)


Lesenswert?

Wow, auf sowas muss man erstmal kommen ;)
Nuja, aber mal realistisch gesehen - das ist eigentlich nicht soooo die 
Lösung, die ich mir vorgestellt hab :>

Gruß,
Mario

von Thomas (Gast)


Lesenswert?

Wie siehts mit USB-Seriell-Wandlern aus? Das läuft dann als virtueller 
Com-Port, dessen Ansteuerung wie gehabt funktioniert.

von opacer (Gast)


Lesenswert?

Man nehme z.B. ein CP2103 und hänge an die GPIO-Ports von diesem ein 
Schieberegister. Über die USB-Lib von Silabs lassen sich die GPIO 
(leider nur 4) schalten und somit per schieberegister o.ä. soviele ports 
wie man will hinten dran hängen.

Grüße

von Mario Bunt (Gast)


Lesenswert?

Thomas
> Wie siehts mit USB-Seriell-Wandlern aus? Das läuft dann als virtueller
> Com-Port, dessen Ansteuerung wie gehabt funktioniert.

Hallo Thomas,

genau den Punkt - nämlich usb2[parallel/seriell] - hab ich mir schon 
tagelang durch den Kopf gehen lassen. Herausgekommen dabei ist, dass das 
doch irgendwie zu konventionell ist?!

Also letztendlich ist USB doch entwickelt worden, um den Menschen das 
Leben zu erleichtern. Warum also die Neuerung in ein derbe altes 
Format zurückschrauben, und so dennoch die alte Technologie zu 
verwenden. Versteht mich bitte nicht falsch, genau das wäre meine 
Richtung, auf die ich hinausarbeiten würde - aber ich möchte mich doch 
gerne auf neue Technologien stützen.. Ich denke, dazu sind sie da?

Das ist - ich hoffe ich treff ein passendes Beispiel - wie, als wenn die 
Weltzeit fix um 1 Stunde vorgestellt wird, und wir nun alle BIOS'e 
(Mehrzahl von BIOS? G) auf time()+3600 flashen, anstatt die Uhr 
einfach umzustellen :)

Ich glaub ich versteh die Welt nicht mehr. :(
Gruß, Manu

von opacer (Gast)


Lesenswert?

Dann musst du einen µC mit integriertem USB nehmen wenn USB-2-Uart zu 
konventionell ist. Gibt ja genug ;)

von Uwe .. (uwegw)


Lesenswert?

Mario Bunt wrote:
> genau den Punkt - nämlich usb2[parallel/seriell] - hab ich mir schon
> tagelang durch den Kopf gehen lassen. Herausgekommen dabei ist, dass das
> doch irgendwie zu konventionell ist?!
>
> Also letztendlich ist USB doch entwickelt worden, um den Menschen das
> Leben zu erleichtern. Warum also die Neuerung in ein derbe altes
> Format zurückschrauben, und so dennoch die alte Technologie zu
> verwenden. Versteht mich bitte nicht falsch, genau das wäre meine
> Richtung, auf die ich hinausarbeiten würde - aber ich möchte mich doch
> gerne auf neue Technologien stützen.. Ich denke, dazu sind sie da?

Alles schön und gut, aber USB ist nun mal um Größenordnungen 
komplizierter als eine serielle Schnittstelle. Und wenn man dann als 
Hobbyelektroniker die Datenverbindung nicht als Hauptsache ansieht, mit 
der man sich dann eingehend beschäftigt, sondern als Nebensache, die man 
eben braucht, um die Daten zur Schaltung zu bekommen, dann ist ein FT232 
o.ä. einfach die simpelste Lösung.

Die serielle Schnittstelle ist wirklich sehr alt und sehr simpel. Aber 
dadurch ist sie auch so weit verbreitet. Fast jeder aktuelle 
Mikrocontroller ab einer gewissen Größe hat ein UART eingebaut, und 
einen Software-Emulation ist ansonsten auch recht einfach. Und die 
Datenrate reicht für ein paar Steuerbits locker  aus. Und wer weiß, 
vielleicht entwickelt sich USb ja auch langsam zum Standard für µCs... 
(und in 20 Jahren wird dann von der nächsten Schnittstellengeneration 
auf das alte, aber einfachere USB umgewandelt ;) ...)

Also: wenn du Zeit und Lust dazu hast, beschäftige dich ruhig mit USB! 
Willst du bloß schnell mal eine Verbindung zum PC herstellen, nimm nen 
fertigen Wandler...

von sechsdreizwei (Gast)


Lesenswert?

Ja, USB wurde erdacht um die Bueroinstallation zu vereinfachen. Trotzdem 
ist USB nicht immer zwanglaeufig eine gute Alternative zu Seriell. Wenn 
ich USB gegenueber Seriell stelle, so ist USB sicher zu bevorzugen wenn 
die Datenrate genuegend hoch sein muss. zB zum Anschluss eines Scopes. 
Die 5m Kabel sind moeglicherweise limitierend. Auf der PC Seite sind 
fuer USB Treiber noetig. Die hat man fuer einen PC. Zumindest heute. Und 
morgen ? Hat auch noch jemand einen Spektrumanalyzer mit 3.5" Floppy 
rumstehen ? Man beachte dass eine USB Ansteuerung eines Geraetes in der 
Regel nicht offengelegt ist, dh man kann in 10 Jahren nicht schnell 
einen PIC oder AVR programmieren um das USB Geraet anzusprechen. Daher 
sollte man die seriellen Verbindungen nicht zu schnell verdammen oder 
wegwuenschen.

von Morin (Gast)


Lesenswert?

Für die höheren Funktionen eines Gerätes brauchst du immer das Wissen, 
wie diese anzusteuern sind - ob die Kommunikation auf niederer Ebene nun 
über USB oder serial port oder was auch immer läuft.

von otti234 (Gast)


Lesenswert?

Hallo, schau mal unter 
http://www.obdev.at/products/avrusb/powerswitch-de.html nach..USB 
Powerswitch..

Gruß, Otti234

von Peter (Gast)


Lesenswert?

Wie wärs mit dem USB-Modul 2.6 von http://www.brain-technology.de

Habe allerdings keine Erfahrung damit, war lediglich ein Artikel im 
Oktoberheft der Elektronik.

von Peter (Gast)


Lesenswert?

Sorry, der Link war leider falsch.
So ists besser :
http://www.braintechnology.de/braintechnology/usb_fastinterface26.html

von Stefan Schütte (Gast)


Lesenswert?

Moin,

USB-Seriell-Konverter sind aber auch nicht der Weisheit letzter
Schluss! Mein Bruder versuchte gestern über ein solches Gerät
eine Logo! zu programmieren und bekam einfach keine Verbindung
zustande. Ein Probelauf mit meinem Laptop klappte problemlos, was
an meinem antiquarischen Laptop MIT serieller Schnittstelle lag.

Stefan

von Frank Büttner (Gast)


Lesenswert?

Die einfachste Lösung für jemand wie dich mit Erfahrung bei serieller 
Schnittstelle usw. ist sicher ein UART_to_USB Chip. Meine Empfehlung: 
FTDI FT232R. Den gibt es bei Reichelt zu bestellen. Funktioniert absolut 
problemlos.

Eine wirklich sehr gute Alternative die ich einfach mal generell hier 
erwähnen möchte: SiLabs CP2102.
Beitrag "CP2102 (USB->RS232-Bridge)"

Gruß
Frank

von Rema A. (rema-andante)


Lesenswert?

Hallo Mario,

schau Dir doch mal USBProg an:

http://www.embedded-projects.net/usbprog

Grüße aus Sachsen
rema

von Mario Bunt (Gast)


Lesenswert?

Hallo :)

Aaaalso, meiner Meinung nach ist
> http://www.obdev.at/products/avrusb/powerswitch-de.html
definitiv genau das, was ich gesucht habe ;)

Ich werd mir nun erstmal ein paar Treiberbausteine auf Vorrat brennen - 
super, danke.

Nicht nur, dass sogut wie keine Zusatzbeschaltung nötig ist, es kommt 
auch direkt das raus, was vorne reingeht ;)

Um mich meiner Artikulationsweise vom ersten Post anzuschließen: das ist 
1:1 genau das, was die Welt braucht.

Gruß,
Mario

von Tobias P. (hubertus)


Lesenswert?

Nervig finde ich persönlich noch, dass es kaum mehr Notebooks gibt, die 
noch eine RS232 und einen Centronics-Port haben.
Die meisten halbwegs kaufbaren Teile haben nur USB und Ethernet, was ich 
ziemlich sch.eisse finde. Im Moment besitze ich noch ein hp nc6120 
Notebook - mit RS232. Das ist aber schon ziemlich alt und fällt mir wohl 
bald mal auseinander. Die nächste Serie von hp, die gebaut wurde - die 
nc6320 - haben noch RS232. Die sind aber auch bereits abgekündigt. 
Nachher wird es keine Maschinen mehr mit RS232 geben. Ich frage mich, ob 
es dann auf der ganzen Welt noch irgendwo einen Hersteller von Notebooks 
mit RS232-Anschluss gibt?

Ich brauche die Schnittstelle zum Programmieren von diversen 
Mikrocontrollerboards. Zudem soll's ein Notebook sein, damit ich meine 
Software auch unterwegs bei mir habe.
Wisst ihr, ob es noch Hersteller von Notebooks mit RS232 gibt? am 
liebsten noch mit Centronics, das wäre absolut perfekt.
Zahlbar sollte das ganze auch noch sein. Und USB-RS232-Wandler will ich 
nicht verwenden - das ist mir wirklich eine zu hemdsärmlige Lösung.

Grüsse
 Tobias

von Martin Cibulski (Gast)


Lesenswert?

Hallo,

für Notebooks gibt es PCMIA-Steckkarten mit seriellen Schnittstellen.

Damit habe ich aus AVRStudio über AVRISP programmieren können,
mit einem USB-Seriell-Wandler ging das nicht.

Gruß,
Martin Cibulski

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Wie schon erwaehnt wurde: der FT232 ist eine sehr gute Loesung, da recht 
einfach vom Mikrocontroller per USART ansteuerbar und theoretisch bis 
zur vollen Baudrate von 3MBit/s also doch schon ne Menge Holz. Ich geb 
zu der FT232 ist im Moment recht zickig bei mir aber ich stehe auch noch 
am Anfang damit, im Moment trennt er sich staendig ohne erklaerbaren 
Grund vom Bus nach einer Datenuebertragung... ein weiterer Nachteil ist 
wohl der hohe Preis von ca. 6EUR. Ausserdem sollte man mit SSOP-packages 
umgehen koennen, mit Lochraster und co is da nix ;)

Greets,
Michael

von Tobias P. (hubertus)


Lesenswert?

@Martin:
Das wäre nicht schlecht so ne PCMCIA-Karte!
ist das dann eine wirkliche, echte original RS-232-Schnittstelle?

Mit USB/Seriell-Adapter habe ich äusserst schlechte Erfahrungen gemacht. 
Ausserdem dünkt mich, es ist eine etwas unprofessionelle Bastellösung, 
mit der ich einfach nicht glücklich bin - gibts nichts besseres?

@Martin: Wie sieht es eigentlich mit dem Centronics-Port aus?

von Εrnst B. (ernst)


Lesenswert?

Bei PCMCIA isses ne echte Schnittstelle, bei den Nachfolgerformat 
Express-Card muss man vorsichtig sein:

auf dem Anschluss der Express-Card liegt sowohl eine PCIe-Lane als auch 
ein USB2.0 Port.
Der Hersteller kann es sich also einfach machen, und dir einen billigen 
USB->RS232 Converter im teuren Expresscard Gehäuse verkaufen.

von Tobias P. (hubertus)


Lesenswert?

Wo gibts denn solche Adapter?
Sowas habe ich noch nirgends gesehen.

von Εrnst B. (ernst)


Lesenswert?


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
Noch kein Account? Hier anmelden.