Forum: Mikrocontroller und Digitale Elektronik AT90USB1287 vs.Atmega128 + FTDI FT245R


von Michael K. (kuki)


Lesenswert?

Hi,
ich fange grad mit miener Diplomarbeit an und stehe vor der
Entscheidung einen AT90USB1287 oder Einen Atmega128+Ftdi FT245R zu
verwenden.

meine Anwendung ist daten vom I2c zu lesen und diese an einer PC
Anwendung (C++) Auszuwerten. Das wichtigste ist das ich schnell bin,
ich sollte schon daten mit 400k/s oder mehr vom I2C(laut spec bis zu
3,4Mbit) empfangen können und dann auch diese daten auch am PC
verfügbar haben, um diese dort auszuwerten. Kurz gesagt: die Grundidee
ist den I2C zu Tracen. Am Pc soll eine Anwendung laufen, die dann die
empfangenen Daten auswertet.

Was würdet ihr mir emfpehlen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn Du FT232/FT245 verwendest, musst Du Dich weder um die Entwicklung
eines USB-Devicetreibers für Deinen PC noch um die korrekte
Implementierung des USB-Stacks auf dem Controller kümmern.

Welchen Weg Du beschreitest, solltest Du von der Zeitplanung Deiner
Diplomarbeit und Deiner Programmiererfahrung abhängig machen - den Weg
über USB "selber machen" würde ich an Deiner Stelle nur wählen, wenn
der Rest der Aufgabe für Dich "ein Klacks" ist.

von arc (Gast)


Lesenswert?

Für die Controller gibt es von Atmel, nach einer Registrierung,
Referenzimplementationen bspw. für HID, CDC (Virtual Com Port), Mass
Storage etc.

http://atmel.com/products/usb/forms/avr_usb_soft_form.asp

http://atmel.com/dyn/products/app_notes.asp?family_id=655
http://atmel.com/dyn/resources/prod_documents/doc7619.pdf

von Erwin Reuss (Gast)


Lesenswert?

CDC ist zwar recht einfach in den AT90USB1287 zu implementieren (hab das
gerade diese Woche gemacht), die Datenrate läßt aber zu Wünschen übrig.
Da die Endpoints bei CDC nur 32 Byte groß sind, ist nur ein maximaler
Datendurchsatz von ca. 12,5 Kilobyte/Sekunde möglich, denn das würde ja
auch für 115200 Baud reichen.

An Mass Storage habe ich noch nicht herangewagt, weil man hier doch
eine ganze Menge mehr programmieren muß. Müßte jedoch um einiges
schneller sein.

von Markus (Gast)


Lesenswert?

Hallo Leute,

ich habe auch Samples bekommen und mir eine Platine für ein Mass
Storage Device aufgebaut. Damit will ich Daten auf eine MMC loggen und
über USB wieder auslesen.

So weit so gut. Also die Platine ist aufgebaut und der Controller läßt
sich auch flashen über Atmels Bootloader.

Bei meinen Versuchen meine eigene Software am USB-Bus zum laufen zu
bringen scheitere ich am Datenempfang am Endpoint 0. Ich nehme an, dass
bei der Konfiguration des Endpoints etwas schief geht.
Ich habe auch mehrmals versucht mir die Beispielanwendung von Atmel zu
besorgen, leider braucht man ein Passwort, um die Zip-Archive zu öffnen
und von Atmel meldet sich niemand auf die Registrierung hin.

Meine Bitte wäre nun, dass von Euch jemand code posten könnte, mit dem
ich nachvollziehen könnte, was ich bei der Konfiguration der USB-Zelle
falsch mache.

Vielen Dank im voraus.

von Michael Fogel (Gast)


Lesenswert?

Hallo

Ein Komilitone und ich arbeiten an den Hostfähigkeiten des AT90USB1287.
Ziel ist eine Bibliothek, die die Treiberentwicklung für den USB
einfacher macht. Dazu haben wir uns 2 Atmels besorgt und diese fertig
aufgebaut. Nebenprodukt der bisherigen Arbeit ist die Device
enumeration. Der Control Endpoint 0 funktioniert bis zur configuration.
Mehr geht im Moment nicht, da wir noch keine Anwendung für das Device
haben.
Es steckt alles noch in der Entwicklung, daher macht es keinen Sinn den
Quellcode hier anzuhängen. Entstanden ist das alles ohne den bsp.
Quellcode von Atmel.
Wer sich dennoch dafür interessiert einfach eine Mail an mich.

MFG
Michael Fogel

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.