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 :)
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.
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
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
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
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
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...
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.
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.
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.
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
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
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
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
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
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
@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?
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.