Forum: Mikrocontroller und Digitale Elektronik USB-Devicecontroller per AVR


von Helmut (Gast)


Lesenswert?

Guten Abend

Zur Einleitung: Habe da ne kleine Steuerung (Herzstück ist ein AVR) die
div. Messdaten ermittelt und per serieller Schnittstelle an den Computer
ausgibt. So habe auch ne kleines Windowsprogramm geschrieben was die
Messdaten am Bildschirm ausgibt.
Habe mir jetzt gedacht, das ganze per USB zu übertragen ist besser
(Steuerung ist im Rechner verbaut d.h. ich muss ein Kabel zu COM1
führen --> USB hätte ich auf dem Mombo d.h muss kein Kabel mehr aus dem
Rechner führen).
So man könnte einen FDTI-Chip verwenden --> dieser Chip erzeugt eine
virtuelle COM Schnittstelle, also USB nach seriell(wenn ich richtig
liege)!
Da ich aber ein Perfektionist bin möchte ist aber ein "vollwertiges
USB-Gerät" d.h. ich brauche einen USB-Devicecontroller (hat div.
Gründe das ich keinen Converterchip FDTI will).
Laut I-Net kann man einen AVR so programmieren das er ein
USB-Devicecontroller ist z.B. IgorPlug-USB
www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm!

So die Schei.e ist nun das ich (Schande über mich) nett wirklich mit
Englisch klar komme.
Hat jemand von euch schon mal so was gemacht? Hat jemand Links in
deutscher Sprache wo auf das Thema eingehen?
Gibt es fertige USB-Devicecontroller Chip`s??
Es muss doch möglich sein ein vollwertiges USB-Grät zu bauen, oder
nicht?

Herzlichen Dank @ all

P.S. Hoffe man versteht auf was ich raus will!

von Stefan (Gast)


Lesenswert?

Dieser Igor-USB ist meines Wissens eine
Low-Speed-Software-USB-Emulation. Das würde ich nicht unbedingt
nehmen.

Die FTDI-Chips kannst Du auch direkt ansprechen, aus einem
Windows-Programm heraus, ohne den Umweg über einen virtuellen COM-Port.
Die haben einiges an Treibern, schau mal auf deren Homepage. FTDI kannst
Du auch > 115kb ansprechen, bis 1Mbaud auf dem UART-Ausgang sind laut
FTDI-Entwickler einstellbar.

Wenn es wirklich kein FTDI sein soll: von Philips gibt es noch ein IC
für den IIC-Bus, von National den U..9604 (die 2 Buchstaben sind mir
entfallen). Die Programmierung ist aber deutlich anspruchsvoller als
bei der FTDI-Lösung.

Wenn Du nur eine einfache Verbindung zu Deiner Hardware brauchst: nimm
den FTDI. Wenn Dir "Pipes" etwas sagen und Du der Meinung bist, Du
brauchst mehrere davon für Deine App., dann schau Dir die komplexeren
Lösungen von National oder Philips an (es gibt auch noch andere
Anbieter ..).

Stefan

von Rahul (Gast)


Lesenswert?

USB-Devicecontroller gibt es inzwischen eigentlich von jedem
Controller-Hersteller.
Einfach mal auf den Hersteller-Seiten gucken.
Das einzige Problem an diesen Chips ist ihre Beschaffbarkeit für
Privatkunden...

von Tobi (Gast)


Lesenswert?

kann man die ftdi chips nicht auch ohne virtuellen comport benutzen? war
vor kurzem glaub ich mal ein beispiel projekt in irgendeinem thread.
würde keinen stress auf uC seite und weniger auf treiber seite bedeuten

von Mark de Jong Electronics (Gast)


Lesenswert?

Hallo,

Ich arbeite gerade auch mit der FTDI chip (denn FT245BM), und ja es ist
ganz einfach daten zum/vom uController zu senden.

Auch ohne virtuele Com/Lpt port.

(etwas vereinfacht):

Senden zum PC:
einfach daten im FDTI schreiben, und am PC werden die dann empfangen

Senden zum uC:
einfach daten zum FDTI chip schicken, und dort auslesen.

Das schonste ist das mann eigene PIDs bei FTDI reservieren (gratis)
kann, und selbst benutzten (privat oder commerciel)

Grüße Mark,

von Andreas Hesse (Gast)


Lesenswert?

Hallo,

es gibt noch die Cypress-Controller (Buch: "Messen Steuern Regeln mit
USB" von B.Kainka ->  http://www.b-kainka.de/usb.htm)

Diese Chips sind wohl mit einem 8051 Kern ausgestattet, der via USM
programmiert werden kann.
Die Elektor hat das wohl auch mal vorgestellt.
Ich habe allerdings keine Erfahrung mit diesem Chip, da ich auch den
FT245 verwende.
 Gruss
Andreas

von Henning (Gast)


Lesenswert?

Mark:
>senden an den uC: einfach Daten an den FTDI chip schicken

hmm und wie macht man das so? es muss doch im System irgendeine
Schnittstelle geben, die man da im eigenen Programm ansprechen kann.
Es muss sie geben! ;) Ich finde nur irgendwie nix...

Ich programiere in delphi, vieleicht weis ja jemand einen rat dazu,
thx!

und wohin werden die daten empfangen, die der PC erhält?

Gruß Henning

von Henning (Gast)


Lesenswert?

hmm hab dazu doch was gefunden über nen anderen thread und dann durch
google
Torry hat da was zu bieten: scheint sogar original vom Hersteller
http://swiss.torry.net/otherhardware.htm

von Matthias (Gast)


Lesenswert?

Hi

es gibt zwei Möglichkeiten mit dem FTDI-Chip zu kommunizieren.

1. Virtueller COM-Port
Der Treiber bindet den Chip als virtuellen COM-Port in Windows ein.
Dann kann man einfach über die entsprechenden API-Funktionen mit dem
Chip sprechen.

2. DLL-Treiber
Der Treiber bindet den Chip als normales USB-Gerät in Windows ein und
ermöglicht die Kommunikation über eine DLL die der Treiber mitliefert.


Matthias

von Helmut (Gast)


Lesenswert?

@ Matthias

Punkt 2 klingt ja sau gut --> das wusste ich nett das sowas geht mit
FDTI. Somit kommt der Chip doch in Frage! Schon weil die Dinger so
leicht zu beschaffen sind werden die Dinger jetzt mehr und mehr
interessant für mich. Tja da es die Dinger nur als SMD gibt muss ich
wohl in den sauren Apfel beissen --> habe noch nie SMD verlötet und SMD
in einer Versuchsschaltung auf nem Steckboard???

Hat jemand ein paar Links wo man sich mal genauer informieren kann über
FDTI --> Funktion, Beschaltung usw.?
Nach möglichkeit auf deutsch --> mein Englisch ist so was von Sche..e!

Thanks @ all

von Stefan (Gast)


Lesenswert?

http://www.ftdichip.com/FTDriver.htm

Hmmm auf Deutsch wirds schierig ... probier doch lieber, Dich durch das
Technik-Englisch durchzubeissen. Die Elektroniker haben alle einen sehr
begrenzten Wortschatz ;-))

Wie wärs mit einem SMD-auf-DIL-Adapter?

Viel Erfolg, Stefan

von Helmut (Gast)


Lesenswert?

@ Stefan

SMD auf Dil Adapter? So was gibt es? Das ist ja geil!
Habe mir jetzt gedacht " ätz ne Platine wo der SMD-Chip verlötet wird
und dann alle Pins des IC´s auf Stecker führen.
Tja mein English --> bin ganz ehrlich, früher in der Schule hat mich
Englisch immer angekotzt. Dachte immer wozu das ganze. Jetzt denke ich
"hätte ich Arsch besser acht gegeben!!!!
Seh es  selber bei meinem Projekt jetzt --> jedes Datenblatt auf
Englisch --> hätte ich doch besser acht gegeben.
Werde ich schon schaffen --> zur Not ne Übersetzungssoftware --> das
Englisch wird mich nicht scheitern lassen --> das wäre ja noch schöner!

von Tobi (Gast)


Lesenswert?

"ätz ne Platine wo der SMD-Chip verlötet wird
und dann alle Pins des IC´s auf Stecker führen."

so was gibts fertig geaätzt zu kaufen mit lötpunkten zur aussenwelt.
wegen dem lötstoplack ist das imo was einfacher

mal bei z.b conrad in der platinen kategorie suchen

von Stefan (Gast)


Lesenswert?

Wo es die fertigen Adapter gibt, weiss ich jetzt leider nicht auswendig.
So wie es Tobi beschrieben hat, geht es aber auch: bei Reichelt oder
Conrad, Pfostenstecker dran und als normales Bauteil weiterbehandeln.

So wie Dir ging es mir auch mit Englisch in der Schule. Das
Techniker-Englisch ist aber wirklich ein paar Klassen tiefer
angesiedelt, einfach unvoreingenommen drangehen. Denke immer dran:
viele von den Datenblättter-Schreiberlingen reden zuhause japanisch,
französisch oder deutsch ;-)

Stefan

von Olaf (Gast)


Lesenswert?

So ein eigener USB Controller ist schon was schoenes. Ich bin gerade
dabei den USB9604 am Mega8 zu verwenden. (soll heissen es geht noch
nicht :-) Ohne gute Englishkenntnisse ist das aber sinnlos. Das ganze
USB Gehampel ist wirklich nicht ohne und man muss dazu einiges an
Grundlagen gelesen haben.

IgorUSB ist eine Ueberlegung wert, aber man sollte dann auch mal
ueberlegen! Der Nachteil dieser reinen Softwareloesung ist das sie
staendig Rechneleistung im Controller verbraucht. Es gibt aber sicher
auch Anwendungen wo man damit schnell faehrt. Ich habe den IgorUSB
unter Linux nach 2-3 Tagen laufen gehabt. Davon kann man bei verwendung
eines eigenen USB Controllers nur traeumen.

Olaf

von Henning (Gast)


Lesenswert?

zum ansprechen des FTDI chip über die dll:
was sind das für treiber? einfach installieren und das eigene programm
starten? oder muss man mehr aufwand treiben um die Plug&Pray
Schnittstelle an nem fremden PC zum laufen zu bekommen?

bekommt man den FTDI auch bei reichelt? welcher händler ist sonst zu
empfehlen?

Welchen, der beiden, bin ich mir noch nicht sicher, denn:
Bin ich richtig in der Annahme, das ich beim parallelen betrieb
(FT245BM) eine wesentlich höhere Datenrathe erreiche, beim seriellen
(FT232BM) jedoch stressfreier programmieren kann (die UART regelt das
schon...)?

von Matthias (Gast)


Lesenswert?

Hi

FT232:
Weniger Pins am AVR. Max. 2MBaud -> 1,6MBit maximal.

FT245:
Mehr Pins am AVR. 6 MBit überhaupt kein Problem.

Matthias

von Henning (Gast)


Lesenswert?

reichen den 1,6Mbit in den meißten fällen? oder brauch man mehr? geht zB
um ne übertragung einer logdatei (heizungssteuerung)

von Joern Gerhard (Gast)


Lesenswert?

Ne, Daten auf nen Port geben und ne Leitung am FT245 anziehen ist wohl
genauso simpel, wie den UART zu benutzen. Der Vorteil des 232 ist das
er wirklich transparent RS232 ermöglicht (mit DTR, RTS usw), was du ja
aber gar nicht willst.
Also ruhig den 245 nehmen - der kann 8MBit (1MByte) im Gegensatz zu den
1MBit des 232.

Geben tut es die z.B. bei www.segor.de oder an vielen anderen Stellen
(bei reichelt und Conrad nu gerade nicht).

Bei ELV gibt es auch fertige Platinen (nicht gerade billig) aber mit
deutschen Dokus und auch ne USB2.0 Adapterplatine mit ner deutschen DLL
dazu, die es sehr einfach macht (aber ebenfalls gegen nicht gerade sehr
wenig Geld).

Ansonsten noch ein Tip für "nur deutschsprachige":
mal in ne Bibliothek gehen und die ELV-Zeitschrift sowie die Elektor
durchstöbern - da waren diverse Projekte schon damit mit Platinen und
allem was nötig ist!


cu joern

von Surri (Gast)


Lesenswert?

Hi,

also ich arbeite beruflich mit dem FTDI Chip und ich kann den nur
wärmstens empfehlen. Auch der Treiber ist einsame Spitze, was ihr nicht
machen solltet ist einen Fremdtreiber verwenden. Das haben wir zu Anfang
gemacht, das ist ein ziemleicher Aufwand weil der FTDI Chip in jedes 64
Byte Paket 2 Byte Statusinformationen packt, die kann man dann von Hand
ausfiltern. Wenn man den fertigen FTDI Treiber verwendet dann bekommt
man davon gar nix mit.

Ich nutze den Treiber unter Delphi, gibt es zum Download auf der FTDI
Seite fertige Units, einfach ins Projekt einbinden und Spass haben, ist
echt easy.

Surri

von Rufus T. Firefly (Gast)


Lesenswert?

Igor (der Typ mit dem IgorPlug) hat draufgelegt:

Lest Euch mal die Applikationsschrift Nr 309 von Atmel durch, die ist
von Igor und beschreibt einen USB-Seriell-Adapter, der mit recht
kleinen AVR-Controllern (2 kByte ROM) aufgebaut werden kann.
Da sowohl die Gerätesoftware als auch ein Treiber für Windows komplett
im Sourcecode vorhanden ist und ausserdem beschrieben wird, wie man die
Gerätesoftware um eigene Funktionalität erweitern kann, ist das
vielleicht doch gar nicht sooo uninteressant.

Komplettdownload (Artikel, Software etc.) bei Igor:
http://www.cesko.host.sk/downloads/USB%20to%20RS232%20Application%20Note.zip
(etwa 3 MByte)

Sicher ist ein dedizierter USB-Controller für vieles besser (allein,
wenn es darum geht, USB mit mehr als 1.5 MBit/sec zu betreiben), aber
für viele kleine Projekte dürfte dies Igor-Seriell-Lösung die ideale
Grundlage sein ...

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.