Forum: Mikrocontroller und Digitale Elektronik TUSB3410


von Jörg Maaßen (Gast)


Lesenswert?

Hallo,

hat jemand schon Erfahrung mit dem USB->Seriell Controller TUSB3410 von
Texas Instruments.

Gruß Jörg

von Jens Renner (Gast)


Lesenswert?

Das nicht, aber es gibt auch den FT232BM von FTDI (für den Fall, dass Du
eine Alternative suchst):
http://www.ftdichip.com/Documents/ds232b11.pdf
http://www.ftdichip.com/Documents/dg232v20.pdf
http://home.t-online.de/home/holger.klabunde/usb/usb.htm

von Jörg Maaßen (Gast)


Lesenswert?

Danke Jens,

Klasse direkt mit Praxisteil.

Ich hab zwar nicht nach einer Alternative gesucht aber der FT232BM
scheint Klasse zu sein.

Gruß Jörg

von Thomas Zepf (Gast)


Lesenswert?

Ja ich habe schon einiges mit den TUSB Chips gemacht.
Für eine reine RS232 Lösung würde ich in den meisten
Fällen wohl aber den FTDI Chip nehmen.
Allerdings hat der FTDI Chip ein paar Schwachstellen
die man kennen sollte (PingPong Betrieb)

Falls du einen Treiber schreiben kannst sind die TUSB
Chips eine gute alternative und vor allem wesentlich
leistungsfähiger. (der TUSB5052 hat 2 x UART + GPIO)


Thomas

von R2D2 (Gast)


Lesenswert?

Die beiden TUSB-ICs sehen ja von den Daten ganz gut aus.
Man muss sich aber die Software dafür selber schreiben, wenn ich das
richtig verstanden habe.
Gibt's dafür nen Gratis-Compiler?
Weil nur für einmal programmieren eines solchen IC's einen Compiler zu
kaufen ist doch ziemliche Verschwendung.

Mfg,

R2D2

von Jens Renner (Gast)


Lesenswert?

Das Treiber-Schreiben bezog sich bestimmt auf die Inbetriebnahme am PC.
Das USB-Device muss ja als solches erkannt werden, bzw. dass es sich
dabei um eine serielle Schnittstelle handelt.

von R2D2 (Gast)


Lesenswert?

Wenn ich das richtig verstanden habe muss man sowohl die PC als auch die
Treiber für den internen 8052 µC selber programmieren. Dafür hat der ja
auch die 16K-Code-Ram.

von
http://focus.ti.com/docs/prod/productfolder.jhtml?genericPartNumber=TUSB3410
hab ich diese Infos:
General Features
Integrated 8052 microcontroller with
256 × 8 RAM for internal data
10K × 8 ROM (with USB and I2C boot loader)
16K × 8 RAM for code space loadable from host or I2C port
2K × 8 Shared RAM used for data buffers and endpoint descriptor blocks
(EDB)
Four GPIO pins from 8052 port 3
Master I2C controller for EEPROM device access
MCU operates at 24 MHz providing 2 MIPS operation



PC-Treiber gibts für Windoof gibt auf der TI-HP.

R2D2

von R2D2 (Gast)


Lesenswert?

Hallo!

Jetzt muss ich mir selber antworten :)
Ich hab auf http://www.ibrro.de/downlo.html einen Linuxtreiber und eine
Firmware gefunden. Die Firmware wurde mit dem SDCC entwickelt. Also
gibt es einen passenden Compiler. Das macht diese ICs ziemlich
interessant für meine Projekte.

Auch diesen Beitrag hab ich noch gefunden:
http://www.ussg.iu.edu/hypermail/linux/kernel/0305.0/0257.html

Vielleicht hilfts ja jemandem.

R2D2

von Thomas Zepf (Gast)


Lesenswert?

Mit Linux kann ich nicht so viel anfangen. Ich habe nur Win
Erfahrungen.
Alle TUSBs habe einen x52 core (ohne Timer2) und zwischen 6k
und 16 k CodeRam das nach einem Reset aus einem I2C EEprom
mit Code gefüllt wird. Manche der TUSB Chips haben zusätzlich
noch einen external Mode, dann kann man das Teil mit jedem
C51 Controller betreiben.
Für die Firmware Entwicklung gibt es also genügend Tools
(SDCC, Keil usw)
Auf der PC Seite braucht das Device eben auch einen
Treiber. Für USB -> Serial gab es einen Beispiel Treiber
von MS der aber inzwischen vom Netz genommen wurde, da er
nur unter 98 geht. Google nach POSUSB sollte helfen
Für die Treiber Übersetzung ist VC++ >=5.0 + DDK von
MS notwendig.
Alternativ gibt es bei www.thesycon.de einen usbio Treiber
der mit fast jedem Device verwendet werden kann.

Thomas

von Rolf Hofmann (Gast)


Lesenswert?

Hallo,

@Thomas.

Ich habe enorme Probleme den FTDI232 bei 57600Bd auf Speed su bringen.
Gerade wegen Ping-Pong geht die effektive Datenrate enorm in die Knie,
ich schätze ca. 19200Bd effektiv. Gibt es da kein Heilmittel?
Sporadisch liest man da von Timing, Timeouts etc. die man verändern
soll. Wie und was ist aber nicht zu erfahren. Irgendwelche Ideen?

Als serielle Schnittstelle allgemein ist das Ding ja garnicht
schlecht.
Aber den sprichwörtliche USB-Speed kann man sich damit in die Haare
schmieren :-(

Weitere Frage. Das erwähnte Texas Chip, hat das nicht auch mit PinPong
zu kämpfen. Ist das nicht ein allgemeines USB1.0 Problem, bzw. auch
in Windows vergraben??

Rolf

von Matthias (Gast)


Lesenswert?

Hi

das ist ein grundsätzliches Problem des USB da er Daten ähnlich wie
Ethernet nur als Pakete senden kann. Und diese Pakete haben Vorne und
Hinten noch zusätzliche Daten (Adresse, Cheksumme usw.) dran. Wird
jetzt pro Block nur ein Byte übertragen geht die Datenrate natürlich in
den Keller. Dazu kommt noch das der USB ein reiner Master/Slave-Bus
ist.

Matthias

von Thomas Zepf (Gast)


Lesenswert?

wegen des FTDI Chips:
ja der Chip ist gut solange du relativ viele Daten überträgst.

Ansonsten gilt: der Chip hat einen Timeout von 15ms. Ich habe dazu
schon mal in einem anderen Thread etwas geschrieben.
Falls du es irgenswie machen kannst:
Die Win API hat sowas wie eine Break Char Funktion
(An den genauen Namen erinnere ich mich nicht)
Du soltest als letzes Zeichen immer dieses Break Zeichen übertragen,
damit ist es lt FTDI möglich den Buffer zu flushen.
Das funktioniert natürlich nicht wenn du das Protokoll nicht
ändern kannst.

Mit USB hat das ganze wenig zu tun eher mit der Art und Weise
wie die Übertragung im Treiber gemacht wird.
Die FTDI Lösung ist ein Kompromiss zwischen möglicht wenig
NAKS und damit Bus Bandbreite und einfachem Handling via Readfile.

Wenn du den Treiber selbst machst, kannst du da in die andere
Richtung optimieren (Bei TI musst du das sowiso selber machen)
Allerdings ist das nich so ganz trivial.
Am USB Bus hast du eine Auflösung von 1ms d. h im optimalen Fall
2 ms Latenz. Ich ereiche mit den TUSB Chips (Midi) hier etwa 5ms.

Thomas

von Rolf Hofmann (Gast)


Lesenswert?

Hallo,

@Thomas,
wenn ich das richtig verstehe, müsste der WIN Treiber geändert werden?
Ich habe Zugang zu einem Tool "WinDriver" mit dem man sich sozusagen
eine eigene DLL stricken kann ohne Internas des MS-DSK zu kennen,
ähnlich dem Teil von Thesys.

Kommentar?

Rolf

von Thomas Zepf (Gast)


Lesenswert?

@Rolf
Ich kenne WinDriver jetzt nicht im Detail...
Als ich das zum letzten Mal angeschaut habe, war es noch
nicht für USB geeignet (Power Managment fehlte, PnP unzureichend)

Ohne Kenntnisse der DDK Internas ist es aber m.E
unmöglich gute (schnelle) Treiber zu machen. Wir sprechen
hier von Timing Optimierungen.
Was ohne DDK sowieso nicht geht ist die Generierung
der virtuellen Com Ports.

Thomas

von Rolf Hofmann (Gast)


Lesenswert?

Hallo,

@Thomas,

Danke für die Info. Also sollte es möglich sein auch den FTDI mit
einer speziellen DLL auf speed zu bringen!?

VCP brauche ich nicht.

Rolf

von Thomas Zepf (Gast)


Lesenswert?

Wenn du von FTDI die Protokoll Internas zu den Bulk Eps bekommst
sollte das möglich sein. Ich bezweifle allerdings,dass die die
Infos rausrücken. Mit einer DLL gehts auf jedenfall nicht.
Du musst da schon einen Treiber machen..
Thomas

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.