V-USB selber machen

Gast #2041303
Lesenswert?

Möchte über meinen PC zu einem ATMEGA88 kontakt über die USB aufnehmen.
Auf der PC-Seite dachte ich mir eine Virtuelle COM so ist die Software 
der PC-Seite das kleiner übel.

Die Fragen die sich mir stellen sind folgende:

Gibt es ein Programm mit dem ich den Gerätetreiber schreiben kann?
Wo kann ich mich über V-USB einlesen ( möchte keine weiteren Chips 
verwenden)?

Suche keine Lösungen sondern Wegweiser!
Persönliche Seite #2041366
Lesenswert?

U87ER schrieb:
> Gibt es ein Programm mit dem ich den Gerätetreiber schreiben kann?

Du brauchst keines, wenn Du eine der Standardgeräteklassen verwendest, 
die mit Low-Speed-USB verwendbar sind, also HID oder CDC.

> Wo kann ich mich über V-USB einlesen ( möchte keine weiteren Chips
> verwenden)?

Wie wäre es mit
http://www.obdev.at/products/vusb/index-de.html ?
#2041402
Lesenswert?

U87ER schrieb:
> So sollte ich wohl erst mal das Forum wechseln und in einen englischkurs
> gehen? In der Schule sind wir halt noch nicht so weit.

Macht nichts.
Technische Dokumentationen sind nicht auf dem Niveau eines Charles 
Dickens. Die sind einfach zu lesen und enthalten keinen gefinkelten 
Satzbau. Für die ersten paar Dinge wirst du ein Wörterbuch benötigen, 
mit welchem die Fachtermini übersetzt werden können. Falls das nicht 
gelingt, steht selbstverständlich auch das Forum zur Verfügung um den 
einen oder anderen Begriff zu erläutern oder zu erklären.
Abgesehen davon kommt man mit Schulenglisch der ersten beiden 
Einsteigerjahrgänge gut über die Runden, zumal in techn. Doku immer nur 
dieselben 100 englischen Wörter benutzt werden.
Wenn Japaner, deren Muttersprache nun weiß Gott wesentlich weniger 
Ähnlichkeit mit Englisch aufweist als das Deutsche, damit zurecht 
kommen, dann wirst du das auch.
Gast #2041414
Lesenswert?

So werde ich es mal versuchen.

Danke.

Aber ich glaube das wird nix :-(

Mit der RS232 sache bin ich gut zurechtgekommen mit hilfe des Forums und 
der Beschreibungen aber mit USB wird das wohl ein Kampf. Wollte das doch 
genau so machen als hätte ich so ein FT Chip dazwischen. Mich um nix 
kümmern müssen.
Persönliche Seite #2041487
Lesenswert?

Du solltest die V-USB-Implementierung nicht auf dem µC laufen lassen, 
auf dem Du Dein restliches Programm laufen lässt, weil die 
V-USB-Implementierung recht heikel im Umgang mit den Ressourcen des 
Controllers ist. Daher: Nimm einen Tiny45, pack da das V-USB 'rein und 
schließe den an der seriellen Schnittstelle Deines '88 an, dann musst Du 
auf dem '88 nichts weiter berücksichtigen oder ändern. Ja, ist ein 
zusätzlicher Chip, aber einfacher zu verarbeiten (DIP!) als ein FT232.
Persönliche Seite #2041578
Lesenswert?

U87ER schrieb:
> Möchte über meinen PC zu einem ATMEGA88 kontakt über die USB aufnehmen.
> Auf der PC-Seite dachte ich mir eine Virtuelle COM so ist die Software
> der PC-Seite das kleiner übel.

Ok, eine Virtuelle COM gaukelt dem System eine COM-Schnittstelle vor, 
auch wenn das Gerät am USB hängt.

> Gibt es ein Programm mit dem ich den Gerätetreiber schreiben kann?

Ja, wird aber hier nicht benötigt. Da die Treiber bereits vorhanden 
sind.

> Wo kann ich mich über V-USB einlesen ( möchte keine weiteren Chips
> verwenden)?

Keine weiteren Chips = OBdev, da der A88 keinen USB-Port hat.
Beitrag "Re: V-USB selber machen"

> Suche keine Lösungen sondern Wegweiser!
Der Wegweiser ist, den A88 mit einem Programm auszustatten, welches 
mittels obdev eine gewisse Geräteklasse (COM-Port) abbildet.
Gast #2041583
Lesenswert?

Ich will doch was lernen und nix fertiges kaufen.
Will doch nur auf dem PC eine 1 eingeben. Und LED 1 soll leuchten
2 eingeben und LED 2 soll leuchten. 0 alle LED's gehen aus. Geht über 
RS232 schon. Nun wollte ich weiter lernen und das über USB machen.
Gast #2041617
Lesenswert?

Ich lese hier aber immer wieder dinge in Englisch oder mit C 
geschrieben. Englisch kann ich noch nicht so gut und ich dachte mit 
Assenbler wäre ich richtig.

"Assembler ist für den Einstieg "von der Pike auf" am besten geeignet. 
Nur wenn man Assembler anwendet, lernt man den Aufbau eines 
Mikrocontrollers richtig kennen und kann ihn dadurch besser nutzen;"

Habe ich im Tutorial so gelesen.

Also sollte ich wohl erst mal C lernen.
Im Tutorial steht aber
"Vorausgesetzt werden Grundkenntnisse der Progammiersprache C."

Also muss ich erst C für den PC lernen um dann C für den ATMEL zu lernen 
um dann weiter lernen zu können?

Da war ich bis jetzt mit meinem Delphi und dem Assembler schon recht 
weit, dachte ich.

Was mach ich nun?
#2041624
Lesenswert?

U87ER schrieb:
> Ich will doch was lernen und nix fertiges kaufen.

Aber offenbar übersteigt das noch deine Fähigkeiten.
Oder wie soll ich mir sonst diverse Fragen in dem Thread erklären.

Sache ist aber auch: USB ist nicht so einfach. Das ist schon 
Königsklasse und du musst in deinem Programm in der Lage sein Timings 
einzuhalten.

Wer Autobasteln will, fängt auch nicht damit an als erstes den Brennraum 
seiner Zylinder zu modifizieren.
USB und RS232 sind völlig verschiedene Welten. Du gehts ein bischen mit 
der Attitüde ran (kommt mir vor): Da brauch ich nur in 1 oder 2 
Konfigurationsregister ein paar Bit umstellen und dann passt das schon. 
Dem ist aber nicht so.

Dein einfachster Ausweg um mittels USB zwischen PC und µC eine 
Datenverbindung herzustellen sind diese fertigen Adapter. Sie rüsten so 
gesehen auf dem PC eine RS232 nach und dann greift wieder alles was du 
in Tutorien über RS232 liest. Wenn du am Anfang deiner Karriere stehst, 
sind sie deine beste Option um erst mal mit dem lernen weiterzukommen.

USB zu RS232 ist ungefähr so wie
Schnurtelefon mit ein paar Joghurtbecher im Gegensatz zu 
Satellitentelefon.
Es reicht einfach nicht, einfach nur die Schnur länger zu machen, wenn 
man zum Satelliten will.
Gast #2041631
Lesenswert?

Was ist eine Attitüde????


OK das was ich machen wollte ist wohl noch zu groß für mich sehe ich das 
richtig?

Was kann ich sonst noch so machen?
Mit der RS232 komme ich klar.
Mit ein und ausschalten auch.
LCD Display geht mit dem Tutorial gut.

einen Bootloader schreiben geht das oder ist das auch zu groß?
Gast #2041633
Lesenswert?

> Also muss ich erst C für den PC lernen um dann C für den ATMEL zu lernen
> um dann weiter lernen zu können?

Nicht zwingend, aber es erleichtert das Verständnis doch sehr. Der 
Unterschied zwischen Pascal (Delphi) und C ist auch nicht so groß, das 
man völlig umdenken müsste.
mfG ingo
#2041644
Lesenswert?

U87ER schrieb:
> Was ist eine Attitüde????

Einstellung

> OK das was ich machen wollte ist wohl noch zu groß für mich sehe ich das
> richtig?

Wenn wir das was du machen willst richtig einschätzen: Ja das ist noch 
zu viel und zu schwer.

USB zu RS232 ist ungefähr so wie
Schnurtelefon mit ein paar Joghurtbecher im Gegensatz zu
Satellitentelefon.
Es reicht einfach nicht, einfach nur die Schnur länger zu machen, wenn
man zum Satelliten will.

> Was kann ich sonst noch so machen?
> Mit der RS232 komme ich klar.
> Mit ein und ausschalten auch.
> LCD Display geht mit dem Tutorial gut.

Was ist mit Kommandoübertragung und Auswertung über die RS232?
Kannst du auf dem PC ein graphisches Frontend machen, mit dem man LED 
ein/ausschalten kann, Texte auf dem LCD anzeigen, einen Messwert vom ADC 
anfordern und auf dem PC darstellen kann. Und zwar alles in einem 
Programm und wenn geht auch dann noch wenn mitten in der Übertragung das 
Kabel ab und wieder angesteckt wird?


> einen Bootloader schreiben geht das oder ist das auch zu groß?

Kommt drauf an, wie gut du bist.
Gast #2041654
Lesenswert?

Karl heinz Buchegger schrieb:
> Was ist mit Kommandoübertragung und Auswertung über die RS232?


Ja das mach ich schon sogar mit mehr als einem Zeichen also
"LED 1 an"
"LED 1 aus"
u.s.w.

> Kannst du auf dem PC ein graphisches Frontend machen, mit dem man LED
>
> ein/ausschalten kann, Texte auf dem LCD anzeigen,

Ja das geht super und war nicht so schwer

> einen Messwert vom ADC
>
> anfordern und auf dem PC darstellen kann. Und zwar alles in einem
>
> Programm und wenn geht auch dann noch wenn mitten in der Übertragung das
>
> Kabel ab und wieder angesteckt wird?

Ja aber das umrechnen des Messwetes mache ich mit dem PC da ich noch 
nicht genau verstanden habe wie ich mit dem Atmel rechnen kann.
#2041693
Lesenswert?

U87ER schrieb:

>> Was ist mit PWM?
>
> Du meinst ein High zeitlich anderst zu machen als ein Low.

Jep. Und zwar einstellbar.

> Habe ich noch
> nicht gemacht aber mir fällt auch keine Anwendung dafür ein.

zb LED dimmen, zb Motoren ansteuern, zb.

Es gibt viele Anwendungen dafür. Überhaupt - 'Timer' das ist ein weites 
Feld, von dem du viel mehr hast als von einem Bootloader.

Und dann natürlich 'rechnen im µC'. Auf Dauer ist das kein Zustand, wenn 
du dazu immer den PC brauchst. Dein "Voltmeter" soll auf dem LCD die 
Spannung, Frequenz oder was auch immer ausgeben.

2 Lichtschranken an den µC. Die eine startet eine Stoppuhr, die andere 
stoppt sie. Verwendung: Fallzeiten messen, Durchfahrzeiten eines 
Modellautos messen. Daraus die Geschwindigkeit berechnen, etc.

Rundenzähler für die Autorennbahn.

Oder Menüsysteme. Kannst du zb 8 blinkende LED mit 3 Tastern und einem 
Menü am LCD unabhängig voneinander konfigurieren (Blinkzeiten 
einstellen).

Da gibt es noch jede Menge Zeugs, die wesentlich wichtiger sind, als ein 
Bootloader.
Gast #2041713
Lesenswert?

Habe hier noch so eine RGB-LED hat zwar 6 Beine ( 1 Rot, 1 Grün , 2 
Blau, 2 Plus ) aber damit kann ich doch mal ein Farbspiel machen mit PWM 
und PC Software.

Mit dem Rechnen dachte ich mir wäre für mich noch zu schwer. Dachte 
V-USB wäre einfacher.

Soll ich dir zeigen wie ich das mit der LED mache damit du mir sagen 
kannst ob ich schon ein Bootloader oder was größeres machen kann.
Gast #2041804
Lesenswert?

Ich dachte mir das so. Ich mache eine Software auf dem PC welches ein 
Farbspectrum hat. Wenn man nun mit der Maus auf eine Farbe klickt nimmt 
die LED diese Farbe an. Heller und Dunkeler ist in dem Farbspectrum mit 
drin. So eine Kreis mit allen farben halt.

Das ganze wird über die RS232 übergeben und die PWM stellen sich ein.

Habe eben mal die Vorwiederstände berechnet für die LED.

R=U/I
U=Uin-Uout

R=(5-2,25)/0,02
Rot  = 2,25V bei 20mA an 5 Volt = 150Ohm (137,5Ohm)

R=(5-2,35)/0,02
Grün = 2,35V bei 20mA an 5 Volt = 150Ohm (132,5Ohm)

R=(5-4,25)/0,02
Blau = 4,25V bei 20mA an 5 Volt =  39Ohm (37,5Ohm)

Jetzt muss ich mir noch ein Protokoll ausdenken. Aber ich denke mal

RxxxGxxxBxxx

Wobei xxx immer ein Wert zwischen 000 und 255 ist also so
R001G000B020

Rot ganz wenig
Grün garnicht
Blau nur ein wenig

Jenachdem wie die geforderte Farbe halt ist.

Kann ich hier einen neuen Beitrag erstellen und das beschreiben was ich 
mach oder ist soetwas nicht gewollt. Würde Software Schaltplan und 
PC-Software natürlich weiter geben.
#2042354
Lesenswert?

Hallo,

die Anregung CDC-232 mit dem atTiny45/85 zu verwende, ist ja schon 
gekommen.

Die Firmware für f=16,5MHz die beiden atTiny habe ich dir eben noch mit 
der aktuellen VUSB Lib vom 20100715 über setzt,

siehe Anhang.

Je nachdem, ob du Linux oder Win*OS verwendest, wird noch ein Treiber 
benötigt !

http://www.recursion.jp/avrcdc/driver.html

Ich habe selbst drei atMega48 CDC 232 am laufen.

.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren