Forum: Mikrocontroller und Digitale Elektronik FT232H Multi-Protokoll?


von Mutluit M. (mutluit)


Lesenswert?

Hi,
weiss jemand ob der FT232H gleichzeitig SPI, I2C und UART bedienen kann?
Wenn ja, wie ist das auf der anderen Seite gelöst? Tunneling-Protokoll 
o.ä?
Hat jemand Erfahrung damit unter Linux und könnte darüber berichten?

von Uwe Bonnes (Gast)


Lesenswert?

Du erzeugst SPI und  I2C ueber eine Art Bitbanging on steroids. Fuer den 
Uart und Bitbanging on steroids gibt es aber nicgt zusammen. Erst mit 
dem 2232 kannst Du eine Kanal fuer UART und den anderen fuer Bitbanging 
on steroids verwenden.

von Frank K. (fchk)


Lesenswert?

Das "Bitbanging on steroids" nennt sich MPSSE bei FTDI.
Der FT4232 hat zwei MPSSE-Einheiten, der FT2232 nur eine.

Siehe Dokumentation bei FTDI. Wer lesen kann, ist im Vorteil.

fchk

von Mutluit M. (mutluit)


Lesenswert?

Und ihr seid sicher, dass wir alle vom selben Baustein bzw. Modul reden?
Sorry, mein Fehler; ich hätte konkreter werden sollen:ich meinte so ein 
fertiges FT232H-Modul wie das hier:
https://www.ebay.de/itm/CJMCU-FT232H-high-speed-Multifunction-USB-to-JTAG-UART-FIFO-SPI-I2C-module-new/283500781508
genannt "CJMCU FT232H high-speed Multifunction USB to JTAG UART/ FIFO 
SPI/ I2C module".

: Bearbeitet durch User
von X2 (Gast)


Lesenswert?

Was hindert dich daran ein Datenblatt anzuschauen? Oder die Doku zum 
Treiber, gibt es bei FTDI alles, sogar umsonst.

von Mutluit M. (mutluit)


Lesenswert?

X2 schrieb:
> Was hindert dich daran ein Datenblatt anzuschauen? Oder die Doku zum
> Treiber, gibt es bei FTDI alles, sogar umsonst.

Das habe ich schon, bin aber noch nicht ganz schlau daraus geworden,
denn heisst es kann zwar so viele Sachen, aber kann es alle gleichzeitig 
oder nur einen davon?

: Bearbeitet durch User
von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Mutluit M. schrieb:

> Das habe ich schon, bin aber noch nicht ganz schlau daraus geworden,
> denn heisst es kann zwar so viele Sachen, aber kann es alle gleichzeitig
> oder nur einen davon?

Kleiner Hinweis: Guck' Dir an, welcher Pin im jeweilgen Modus eine 
bestimmte Funktion übernimmt. Wenn beispielsweise ein und der selbe Pin 
das SPI-Taktsignal und den JTAG-Takt darstellt, wird es dann möglich 
sein, gleichzeitig JTAG- und SPI-Interface zu "spielen"?

Grüßle
Volker

: Bearbeitet durch User
von Mutluit M. (mutluit)


Lesenswert?

Volker B. schrieb:
> Mutluit M. schrieb:
>
>> Das habe ich schon, bin aber noch nicht ganz schlau daraus geworden,
>> denn heisst es kann zwar so viele Sachen, aber kann es alle gleichzeitig
>> oder nur einen davon?
>
> Kleiner Hinweis: Guck' Dir an, welcher Pin im jeweilgen Modus eine
> bestimmte Funktion übernimmt. Wenn beispielsweise ein und der selbe Pin
> das SPI-Taktsignal und den JTAG-Takt darstellt, wird es dann möglich
> sein, gleichzeitig JTAG- und SPI-Interface zu "spielen"?

Also, wenn man für jedes von SPI, I2C, UART, JTAG etc. jeweils eines 
solcher Module benötigt, dann ist es doch viel zu teuer, oder etwa 
nicht?

Ich hätte erwartet dass man daran quasi alle solche externen Sensoren 
anschliessen kann und am PC bzw. MCU alles dann über ein einziges 
Protokoll steuert, welches via USB an dieses Modul geht und von dort an 
die daran angeschlossene Sensoren, und vice-versa...

Man lese auch mal folgenden Text:
https://www.adafruit.com/product/2264
Es scheint doch auch das gleiche zu sagen was ich oben geschildert habe, 
oder etwa nicht?

: Bearbeitet durch User
von Schorsch X. (bastelschorsch)


Lesenswert?

Der FT232H kann das alles, nur eben nicht unbedingt zur gleichen Zeit. 
Mit einer eigenen Ansteuerung könnte SPI und I2C evtl. zusammen gehen. 
Ich hab immer nur eins davon nacheinander benutzt. Für mehrere eben mit 
einem FT4232, da geht z.b. 3x Uart, davon einer mit RS485 Ansteuerung 
und 1x SPI. Ansteuerung mit der DLL von FTDI und Lazarus.

von Mutluit M. (mutluit)


Lesenswert?

Schorsch X. schrieb:
> Der FT232H kann das alles, nur eben nicht unbedingt zur gleichen Zeit.
> Mit einer eigenen Ansteuerung könnte SPI und I2C evtl. zusammen gehen.
> Ich hab immer nur eins davon nacheinander benutzt. Für mehrere eben mit
> einem FT4232, da geht z.b. 3x Uart, davon einer mit RS485 Ansteuerung
> und 1x SPI. Ansteuerung mit der DLL von FTDI und Lazarus.

Ja gut, danke für den Überblick; ich muss dann noch etwas mehr 
recherchieren.

von Mutluit M. (mutluit)


Lesenswert?

Volker B. schrieb:
> Mutluit M. schrieb:
>
>> Das habe ich schon, bin aber noch nicht ganz schlau daraus geworden,
>> denn heisst es kann zwar so viele Sachen, aber kann es alle gleichzeitig
>> oder nur einen davon?
>
> Kleiner Hinweis: Guck' Dir an, welcher Pin im jeweilgen Modus eine
> bestimmte Funktion übernimmt. Wenn beispielsweise ein und der selbe Pin
> das SPI-Taktsignal und den JTAG-Takt darstellt, wird es dann möglich
> sein, gleichzeitig JTAG- und SPI-Interface zu "spielen"?

Gleichzeitig SPI und I2C zumindest sollte aber gehen.
Muss ich noch mehr recherchieren.
Schön wäre eine voll-programmierbare Konfiguration... :-)

von FTDI Usa (Gast)


Lesenswert?

Mutluit M. schrieb:
> Gleichzeitig SPI und I2C zumindest sollte aber gehen.

Unabhängig davon ...  hast du dich schon einmal damit aus-
einandergesetzt was auf der Treiber-Seite noch auf dich zukommt?

von Jim M. (turboj)


Lesenswert?

Mutluit M. schrieb:
> Muss ich noch mehr recherchieren.

Das auf jeden Fall.

IIRC gehen bei SPI und I²C via MPSSE nur bestimmte Pins,
und die haben billige USB2UART Adapter meistens nicht alle rausgeführt.

Die Software Seite ist auch nicht ohne, man kann z.B. sich in OpenOCD 
anschauen wie die JTAG machen (das ist SPI sehr ähnlich).

von Mutluit M. (mutluit)


Lesenswert?

FTDI Usa schrieb:
> Mutluit M. schrieb:
>> Gleichzeitig SPI und I2C zumindest sollte aber gehen.
>
> Unabhängig davon ...  hast du dich schon einmal damit aus-
> einandergesetzt was auf der Treiber-Seite noch auf dich zukommt?

Ich dachte ich könne MPSSE benutzen bzw. darauf aufbauen. Ginge das 
nicht?

von FTDI Usa (Gast)


Lesenswert?

Mutluit M. schrieb:
> Ich dachte ich könne MPSSE benutzen bzw. darauf aufbauen. Ginge das
> nicht?

FTDI liefert ja eine DLL-API, doch die verlangt noch einiges von dir.

von Mutluit M. (mutluit)


Lesenswert?

FTDI Usa schrieb:
> Mutluit M. schrieb:
>> Ich dachte ich könne MPSSE benutzen bzw. darauf aufbauen. Ginge das
>> nicht?
>
> FTDI liefert ja eine DLL-API, doch die verlangt noch einiges von dir.

Ist das nur für Windows?
(Wie ich eingangs schrieb, brauche ich eine Lösung unter native Linux, 
also kein WINE usw.).

von void (Gast)


Lesenswert?

Mutluit M. schrieb:
> Man lese auch mal folgenden Text:
> https://www.adafruit.com/product/2264
> Es scheint doch auch das gleiche zu sagen was ich oben geschildert habe,
> oder etwa nicht?

Zitat: “little swiss army knife for serial protocols to your computer!”
Dann schildere dochmal bitte wie du das Messer, die Schere, den 
Schraubendreher und den Korkenzieher gleichzeitig benutzt. Möchtest du 
lieber im Handbuch des Taschenmessers oder auf einer 
Werbe/verkaufswebseite nachlesen?

von FTDI Usa (Gast)


Lesenswert?

Mutluit M. schrieb:
> Ist das nur für Windows?

Schau in der Doku der DLL nach. Ich weiss es nicht.

von Mutluit M. (mutluit)


Lesenswert?

void schrieb:
> Mutluit M. schrieb:
>> Man lese auch mal folgenden Text:
>> https://www.adafruit.com/product/2264
>> Es scheint doch auch das gleiche zu sagen was ich oben geschildert habe,
>> oder etwa nicht?
>
> Zitat: “little swiss army knife for serial protocols to your computer!”
> Dann schildere dochmal bitte wie du das Messer, die Schere, den
> Schraubendreher und den Korkenzieher gleichzeitig benutzt. Möchtest du
> lieber im Handbuch des Taschenmessers oder auf einer
> Werbe/verkaufswebseite nachlesen?

Also, wie auch Eingangs geschrieben, ging ich davon aus dass alles 
gleichzeitig über eine USB-Verbindung stattfindet (bzw. Sub-Kanäle über 
diese eine Verbindung, also quasi Tunneling o.ä.), zumal das "Multi 
Protocol Synchronous Serial Engine (MPSSE)" sowas zu implizieren 
scheint.

Ich denke aber es müsste machbar sein dass man mehrere solcher 
Protokolle (SPI, I2C, UART etc.) gleichzeitig über eine Verbindung 
macht, sofern die HW es hergibt (genug Pins etc.).
Ähnlich wie beim Ethernet: da können doch auch viele verschiedene 
Protokolle darüber laufen (IP, UDP, TCP, ARP etc..)
Man ist ja nur an den Daten interessiert, nicht an Strömen oder 
Spannungen :-)

: Bearbeitet durch User
von FTDI Usa (Gast)


Angehängte Dateien:

Lesenswert?

Mutluit M. schrieb:
> Ist das nur für Windows?

Eigentlich braucht man wirklich nur nachschauen.
Ist alles selbsteklärend. Nur lesen muss man selber.

von Christian R. (supachris)


Lesenswert?

Nö, pro MPSSE geht immer nur ein Protokoll gleichzeitig. Wenn man die 
MPSSE aktiviert, muss man ein Byte angeben, welches das Protokoll 
bestimmt, 0x02 war glaube SPI usw.
JTAG und SPI z.B. teilen sich die Pins.

von void (Gast)


Lesenswert?

Mutluit M. schrieb:
> Also, wie auch Eingangs geschrieben, ging ich davon aus dass

Wie du hier regelmäßig beweist, gehst du ständig von irgendwas aus ohne 
auch nur das Handbuch aufgeschlagen zu haben. Kein sinnvolles Vorgehen.

Mutluit M. schrieb:
> zumal das "Multi Protocol Synchronous Serial Engine (MPSSE)" sowas zu
> implizieren scheint.

Das einzige was hier impliziert wird ist, dass mehrere serielle 
Protokolle funktionieren. Ob gleichzeitig oder wechselseitig steht da 
nicht.

Mutluit M. schrieb:
> Ähnlich wie beim Ethernet: da können doch auch viele verschiedene
> Protokolle

Hier behauptet keiner, das Ethernet oder USB das nicht könnten. Aber der 
von dir genannte FT232H kann das eben nicht.

von -gb- (Gast)


Lesenswert?

So, also den Stein kann man schön über die API ansprechen. Ist auch 
nicht so irre schwer. Im Datenblatt steht schön drinnen wie man den 
Stein konfigurieren kann, also welche Pins in welchem Modus verwendet 
werden. Der FT232H kann erstmal nur eine Sache. Der FT2232H kann schon 
zwei Dinge gleichzeitig. Ich weiß aber nicht ob das hier sinnvoll ist 
den FTDI zu verwenden. Der ist eher für hohen Durchsatz gedacht.
Ich würde einen Mikrocontroller verwenden. Da gibt es viele die schon 
USB eingebaut haben und auch sehr viele haben mehrere SPI, I2C, UART, 
... Anschlüsse die auch gleichzeitig verwendet werden können.

von X2 (Gast)


Lesenswert?

Mutluit M. schrieb:
> Ähnlich wie beim Ethernet: da können doch auch viele verschiedene
> Protokolle darüber laufen (IP, UDP, TCP, ARP etc..)
> Man ist ja nur an den Daten interessiert, nicht an Strömen oder
> Spannungen :-)

Bei Ethernet läuft aber all dass von dir genannte über das gleiche 
physical layer.

Wenn du dir irgendwann mal angeschaut hättest wie SPI oder I2C 
funktioniert, würdest du nicht von sowas ausgehen...

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Mutluit M. schrieb:
> Ich denke aber es müsste machbar sein dass man mehrere solcher
> Protokolle (SPI, I2C, UART etc.) gleichzeitig über eine Verbindung
> macht, sofern die HW es hergibt (genug Pins etc.).

Natürlich geht das aus USB-Sicht problemlos. Die einzelnen Datenströme 
kann man auf USB-Endpoints aufteilen. Wenn die nicht ausreichen, kann 
man sich mit eigenen Paketen was basteln.
Das Problem hast du aber schon selbst genannt:

> sofern die HW es hergibt (genug Pins etc.).

Der FT232H wird einfach nicht genug Pins oder interne Logik haben, um 
all das zu können. Es hindert dich aber niemand, das mit einem 
ausreichend großen Mikrocontroller selbst zu implementieren.

von MartinH (Gast)


Lesenswert?

Ist jetzt ja paradox, wenn ich das schreibe, aber trotzdem.... es nervt 
nämlich... man sucht hier ne Lösung, weil man gerade mal nicht klar 
kommt, was nicht versteht und auf die Erfahrung anderer hofft... und 
dann gibt es hier immer Leute, die haben zwar auch keine Lösung, geben 
dann aber diese unendlich hilfreichen Tipps wie RTFM. Echt klasse!

von Gustl B. (-gb-)


Lesenswert?

Und es gibt immer wieder Leute wie dich die zwar nach einer Lösung 
suchen, aber keine oder zu wenige Details preisgeben um ihnen sinnvoll 
helfen zu können.
Die Frage mit der dieser Thread gestartet wurde ist ja geklärt worden, 
für welches Problem suchst du eine Lösung?

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.