Forum: Mikrocontroller und Digitale Elektronik Kommunikation PC <-> AT90USB, ein paar Fragen noch.


von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Ich bastle seit ein paar Tagen mit dem AT90USB1287 herum und weiss nun 
auch endlich, was ich machen will :P

Nun möchte ich die Kommunikation mit dem PC so einfach wie möglich sein. 
Ich habe mir den Code von Atmel angesehen und das CDC-UART-USB-Teil 
soweit von allen Host-Features und Board/STK-spezifischen Sachen 
befreit, dass ich da auch einnigermassen durchsteige, aber alles in 
allem ist mir das viel zu gross und aufgebläht, nur um einen virtuellen 
COM-Port zu haben...

Dann habe ich mich mal an den Code von hier gesetzt und mir den Code von 
http://www.ssalewski.de/AT90USB_firmware.html.de angesehen, der ist 
allerdings mit ca. 4kB auch noch recht gross, um "nur" ein paar Bytes zu 
übertragen...

Gibt es denn keine einfachere Möglichkeit Daten mit dem PC 
auszutauschen? Gefunden habe ich zumindest mal nichts...

Wie die Daten ausgetauscht werden (HID, virtueller ser.-Port, ...) ist 
mir eigentlich egal, solange das für mich nachvollziehbar ist (am besten 
natürlich wenn es mit freien libs/codes klappt).

von holger (Gast)


Lesenswert?

>Dann habe ich mich mal an den Code von hier gesetzt und mir den Code von
>http://www.ssalewski.de/AT90USB_firmware.html.de angesehen, der ist
>allerdings mit ca. 4kB auch noch recht gross, um "nur" ein paar Bytes zu
>übertragen...

Sonst hast du sie noch alle? Nimm doch den UART und einen
USB-Seriell Wandler. Dann kommste mit 100 Byte aus.

von Lazlo Panaflex (Gast)


Lesenswert?

4kb? Nimm einen UART uC, wie mein Vorschreiber bereits erwähnt. Ich 
füttere meine damit: 
http://www.sparkfun.com/commerce/product_info.php?products_id=9115 
kostet 9.60€ und läuft absolut zuverlässig.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>Sonst hast du sie noch alle? Nimm doch den UART und einen
>USB-Seriell Wandler. Dann kommste mit 100 Byte aus.
Hast DU noch alle Latten am Zaun? Muss mich hier doch nicht 
beschimpfen lassen, Asi!
Du hast NULL Ahnung von dem Teil, wie man sieht und meinst hier 
irgendwas schreiben zu müssen. Ich kauf mir keinen speziellen 
USB-Controller, wenn ich dann nen USB-Chip reinhänge, Vollidiot

Tut mir leid, dass ich hier so ausfallend werde, aber Trolle wie der 
sind übel...
Wenn jemand Sinnvolles zu sagen hat, wär ich froh, Leute wie er werden 
ab jetzt ignoriert ;)

von holger (Gast)


Lesenswert?

>Hast DU noch alle Latten am Zaun? Muss mich hier doch nicht
>beschimpfen lassen, Asi!

Grins;)

>Du hast NULL Ahnung von dem Teil, wie man sieht und meinst hier
>irgendwas schreiben zu müssen. Ich kauf mir keinen speziellen
>USB-Controller, wenn ich dann nen USB-Chip reinhänge, Vollidiot

DU hast Null Ahnung. USB wird bei dem Controller
hauptsächlich in Software gemacht. Deshalb ist das Programm so groß.

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Na geht doch auch freundlicher...

>DU hast Null Ahnung. USB wird bei dem Controller
>hauptsächlich in Software gemacht. Deshalb ist das Programm so groß.

Die AT90USB haben unterstützende Hardware drin, sodass man sich keine 
großen Sorgen mehr um die Geschwindigkeit und Timings machen muss, die 
Aufbereitung der Daten geschieht in der Software und das nimmt einem 
sehr viel Arbeit beim Programmieren ab.
Ich hab ne Frage zu nem USB-Controller, du schickst mich zu nem 
USB-RS232.
Wär das gleiche, wenn ich dich nach der A7 frage und du mich an HBF 
München schickst.

Will von Wandlern gar nix mehr hören und von dir auch nicht.

von Stefan Salewski (Gast)


Lesenswert?

@Autor:  Nils S.

Bitte nicht in dem Tonfall!

4 kByte ist für die USB-Firmware des AT90USB schon sehr gut, ich war 
selbst überrascht, dass avr-gcc das so klein bekommt. Bei 64 kByte Flash 
hast Du ja auch noch 60 kByte frei -- Du musst natürlich ohne den 
Debugging Code compilieren. Sonst musst Du eben einen Chip nehmen bei 
dem man nicht den ganzen USB-Kram programmieren muss, etwa die 
FTDI-Chips. Neben meiner und Atmels USB-Firmware gibt es natürlich auch 
noch die von MyUSB/Lufa, die ist von der Benutzung her eventuell 
einfacher, aber wohl eher umfangreicher. Aber er bietet auch deutlich 
mehr Funktionen, Windows, HID, usw. Meine Firmware ist eben wirklich 
eine Minimalversion, von mir auch nur unter Linux mit LibUSB getestet.

http://www.fourwalledcubicle.com/LUFA.php

von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

>4 kByte ist für die USB-Firmware des AT90USB schon sehr gut, ich war
>selbst überrascht, dass avr-gcc das so klein bekommt.
An sich ist das ja wirklich nicht viel, allerdings braucht das viel 
Einarbeitung wenn man fremden Code nimmt und ein Vielfaches von Viel, 
wenn man Eigenen will, daher wollte ich wissen, obs da noch was 
einfacheres und kleineres gibt.

Das abgespeckte UART<->USB Beispiel von Atmel hat bei mir, für den 1287 
compiliert, 4468 Bytes Program und 163 Data. Allerdings läuft das bisher 
nur auf dem AT90USBKey, auf meiner eigenen Hardware nicht, habe auch 
kein grosses Interesse dran, das dort zum Laufen zu bekommen.

edit : Habe meinen 16Mhz Quarz in der eigenen Hardware gegen einen 
8Mhz, wie auf dem USBKey, getauscht, nun funkioniert dort der Atmel-Code 
auch.

Es lässt sich sicher noch um einige Bytes abspecken, wenn ich mal schaue 
ob ich den Scheduler noch rausbekomme und die Messages entferne, die 
beim Bewegen des Joysticks/Drücken des HWBs an den virtuellen seriellen 
Port gesendet werden.
Ich weiss nicht wie das mit der Lizenz von Atmel aussieht, habe nämlich 
ziemlich viele Kommentare usw. entfernt und Quell-Dateien 
zusammengefasst, sonst würde ich da schnell das Archiv anhängen.
Wenn Interesse besteht, kann ich das ja noch "Atmel-konform" machen und 
posten.

>Neben meiner und Atmels USB-Firmware gibt es natürlich auch
>noch die von MyUSB/Lufa
omg, ich dachte immer das MyUSB/Lufa wäre soetwas wie vusb ( 
http://www.obdev.at/products/vusb/index-de.html ), darum habe ich mir 
das gar nicht näher angesehen, werd ich jetzt nachholen.

>Meine Firmware ist eben wirklich
>eine Minimalversion, von mir auch nur unter Linux mit LibUSB getestet.
So wie es bisher aussieht, wird es darauf hinauslaufen, dass ich deine 
Firmware verwende/ändere/als Vorlage benutze/...
Das was ich will ist klein und Linux :D


>Bitte nicht in dem Tonfall!
siehe:
>Tut mir leid, dass ich hier so ausfallend werde, aber Trolle wie der
>sind übel...  .... Leute wie er werden ab jetzt ignoriert ;)
:)

von Stefan Salewski (Gast)


Lesenswert?

>An sich ist das ja wirklich nicht viel, allerdings braucht das viel
>Einarbeitung wenn man fremden Code nimmt und ein Vielfaches von Viel,
>wenn man Eigenen will,

Ja sicher. Um USB etwas zu verstehen muss man einiges lesen, etwa die 
ersten 100 Seiten des Buches von H.J. Kelm, das gibt es jetzt ja schon 
für 7 Euro. Und das Datenblatt zum AT90USB.

Oder man versucht es ohne die Interna zu verstehen, indem man einfach 
fertigen Code minimal modifiziert, etwa den von Atmel oder LUFA.

Oder man nimmt Chips die fast alles intern machen, etwa die von FTDI.

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.