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?
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.
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
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
Was hindert dich daran ein Datenblatt anzuschauen? Oder die Doku zum Treiber, gibt es bei FTDI alles, sogar umsonst.
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
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
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
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.
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.
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... :-)
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?
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).
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?
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.
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.).
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?
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
Mutluit M. schrieb: > Ist das nur für Windows? Eigentlich braucht man wirklich nur nachschauen. Ist alles selbsteklärend. Nur lesen muss man selber.
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.
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.
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.
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...
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.
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.