Hallo,
ich bin auch der Suche nach der Lösung für folgende Problematik:
Ich besitze einen ATmega32, der über Tastendruck zwei Relais ansteuern
kann (beide jeweils getrennt, also zwei Taster für zwei Relais). Die
sehr simple Software ist mir jedoch nicht genug, gerne würde ich die
Relais auch via USB oder über das Netzwerk anstuern. Mein Probem ist,
ich habe keine Ahnung wie ich die Treiber hinbekommen kann. Wie erstelle
ich die Kommunikation (am liebsten USB, kein RS232, da die Software
universell an verschiedenen Notebooks betrieben werden soll und kein
einer mehr über diese Schnittstelle verfügt)?
Wie schaffe ich es der Software zu sagen, sende über USB high oder low,
bzw. empfange high oder low (und wie teile ich dem PC überhaupt mit,
dass ein Gerät eingesteckt wurde, wie es z. B. USB Sticks tun)?
Vielen Dank für eure Hilfe
"einfach" eine USB UART Bridge mit einem FTDI Chip basteln.
einen Treiber mit Codebeispielen für zig Programmiersprachen gibt es bei
FTDI auf der Homepage.
tom schrieb:> Hallo,>> ich bin auch der Suche nach der Lösung für folgende Problematik:
***google
>> Ich besitze einen ATmega32, der über Tastendruck zwei Relais ansteuern> kann (beide jeweils getrennt, also zwei Taster für zwei Relais). Die> sehr simple Software ist mir jedoch nicht genug, gerne würde ich die> Relais auch via USB oder über das Netzwerk anstuern. Mein Probem ist,> ich habe keine Ahnung wie ich die Treiber hinbekommen kann. Wie erstelle
Wenn du keine Ahung hast dann eher was fertiges kaufen.
> ich die Kommunikation (am liebsten USB, kein RS232, da die Software> universell an verschiedenen Notebooks betrieben werden soll und kein> einer mehr über diese Schnittstelle verfügt)?>> Wie schaffe ich es der Software zu sagen, sende über USB high oder low,> bzw. empfange high oder low (und wie teile ich dem PC überhaupt mit,> dass ein Gerät eingesteckt wurde, wie es z. B. USB Sticks tun)?>> Vielen Dank für eure Hilfe
Wenn du selber bauen willst, dann gibt es viel, VUSB, USB Seriel Wandler
oder vielleicht per Netzwerk?
danke an alle die sich gemeldet haben, jedoch habe ich die problematik
wohl falsch erklärt. mir geht es darum zu erfahren, wie die
kommunikationssoftware auszusehen hat. also z. B. in C?
hat jemand ein beispiel?
tom schrieb:> danke an alle die sich gemeldet haben, jedoch habe ich die problematik> wohl falsch erklärt. mir geht es darum zu erfahren, wie die> kommunikationssoftware auszusehen hat. also z. B. in C?>> hat jemand ein beispiel?fuelre F. schrieb:> "einfach" eine USB UART Bridge mit einem FTDI Chip basteln.>> einen Treiber mit Codebeispielen für zig Programmiersprachen gibt es bei> FTDI auf der Homepage.
Eumel schrieb:
"mit Codebeispielen für zig Programmiersprachen gibt es bei
FTDI auf der Homepage."
hmm.. ich hab mich durchgewühlt.. du siehst warscheinlich sachen, die
ich nicht sehen kann, oder wo sind codebeispiele in c, etc.??
Ich kenn die Codebeispiele nicht.
Der springende Punkt beim FTDI liegt darin, dass du dich um den USB-Teil
überhaupt nicht kümmern musst.
Der FTDI Treiber installiert einen virtuellen Com-Port am PC, so dass
das PC-Programm den Mega anspricht, so als ob er an einer seriellen
Schnittstelle sitzen würde.
Auf dem Mega hingegen hängt der FTDI Chip, der vom Mega wie eine
serielle Schnittstelle über die USART angesprochen wird.
D.h. aus Sicht des/der Programmierer handelt es sich um eine ganz
normale Kommunikation über eine serielle Schnittstelle. Dass da ein USB
Kabel dazwischen sitzt, darum muss sich keines der beiden Programme
kümmern. Das behandeln der FTDI-IC mit seinem am PC installierten
Treiber komplett eigenständig.
Und das ist auch gut so. Denn so einfach eine serielle Kommunikation
auch ist, so kompliziert ist eine reine USB-Kommunikation. Die willst du
dir mit Sicherheit nicht antun, wenn es eine Möglichkeit gibt, wie man
da trivial drumm herum kommen kann.
Hinweis:
Derartige FTDI-Bridges gibt es auch fertig in Form von Zwischensteckern,
die am PC in einen USB Port eingesteckt werden und die dann eine normale
9-polige SUB-D Buchse haben, an der man ein normales RS232 Kabel
anstecken kann.
Der FTDI ist für deinen ATmega nichts anderes als ein UART-Teilnehmer.
Dank des FT232-Bausteins (den es z.B. bei Watterott für kleines Geld
fertig auf der Platine gibt) weis dein ATmega garnicht dass er an einem
USB eines PCs hängt.
Du brauchst nur deinen UART auswerten, wie es z.B. in diesem Tutorial
gezeigt wird.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
Den Rest erledigt der FT232 von FTDI.
Du solltest übrigens mit den Spannungen aufpassen.
Versorge deinen Mikrocontroller und die Relais nur über USB, wenn du das
Power-Management machst.
(Nur Einschalten wenn das Betriebssystem sein OK gegeben hat,...)
Ansonsten versorge deine Schaltung besser über ein eigenes Netzteil.
Verbinde dabei aber KEINESFALLS die Versorgungsspannung des
Mikrocontrollers mit den +5V des USB!
Olaf Dreyer schrieb:> http://www.libusb.org>> ist das was Du suchst.
Ich bezweifele ich ganz ernsthaft, daß es das ist, was er sucht.
Da ist ja garkein fertiger C-Code für genau sein Problem dabei, den er
einfach per Copy&Paste in sein Projekt einfügen könnte...
Hi will hier nicht lange diskutieren, aber er suchte eine Anlaufstelle
um die Kommunikation auf dem USB zu verstehen. Nicht Vorschläge wie es
einfacher geht. Ich habe das auch mit libusb hinbekommen und ich brauche
keine krude Seriell-Emulation.
Gruß
Olaf
Olaf Dreyer schrieb:> Hi will hier nicht lange diskutieren, aber er suchte eine Anlaufstelle> um die Kommunikation auf dem USB zu verstehen.
Lies dir das Eröffnungsposting durch.
Ich hab nicht den Eindruck, dass er so weit ist, sich auf die
technischen Feinheit von USB einlassen zu können.
> Nicht Vorschläge wie es> einfacher geht. Ich habe das auch mit libusb hinbekommen und ich brauche> keine krude Seriell-Emulation.
Hier weiß keiner, was und wie groß dein Vorwissen war, um die libusb in
Betrieb zu nehmen. Aber alleine dieser Teil der Original-Fragestellung
> Wie schaffe ich es der Software zu sagen, sende über USB high oder> low, bzw. empfange high oder low (und wie teile ich dem PC überhaupt> mit, dass ein Gerät eingesteckt wurde, wie es z. B. USB Sticks tun)?
sagt mir, dass es selbst mit einer USART für ihn noch schwer genug ist.
Hier im Forum muss man oft genug zwischen den Zeilen lesen. Die Wünsche
sind da nämlich des öfteren erheblich größer als das Können der
Fragenden.
Da hast Du sicher Recht, Karl Heinz,
was sein (scheinbares) Vorwissen betrifft, ich wollte ja nur die Frage
nach
der Handhabung der USB-Schnittstelle beantworten.
Dann kann er vergleichen und entscheiden, welche Weg für Ihn der
richtige ist.
Gruß
Olaf
hallo,
ich finde das thema sehr interessant und hab das mit der usb-lib mal
versuchen wollen. leider werde ich davon erschlagen. ich habe eine
serielle rs232 verbindung zu meinem chip und alles klappt super mit zb
hyperterminal.
wie kann ich aber werte mit anderer software auslesen? ich schreibe ein
java programm und es wäre gut, die werte vom chip einlesen zu können -
wie gesagt rs232 und hyperterminal funktioniert.
leider fehlt mir die übertragung in meine eigene software - wäre toll,
wenn jdm einen tipp hat.
danke
Denis schrieb:> wie kann ich aber werte mit anderer software auslesen? ich schreibe ein> java programm und es wäre gut, die werte vom chip einlesen zu können -> wie gesagt rs232 und hyperterminal funktioniert.
java+seriell wäre librxtx das stichwort (für linux + windows verfügbar)
tom schrieb:> Wie schaffe ich es der Software zu sagen, sende über USB high oder low,> bzw. empfange high oder low
Das hat mit USB wenig zu tun. Über USB werden kein high oder low im
Sinne von Schaltzuständen geschickt. Das ist Aufgabe der Software,
Kommandos über USB zu verschicken, die am Empfänger nach Interpretation
in Schaltpegel umgesetzt werden. Wenn du einen µC nimmst, der von Haus
aus USB unterstützt, z.B. einen ATmega32U2, wie er auf dem Arduino Pro
Micro drauf ist, kannst du dir einen Haufen Zirkus sparen.