Hi, Ich bin gerade dabei ein Projekt mit einem esp32 zu machen und mir gehen die pins aus. Als Lösung wäre ein 8bit io ic mit open collector und gleichzeitigen einlesen. Das Problem ist nicht so was zu finden, sonder die Geschwindigkeit. I2c ist zulangsam und spi finde ich kein ic. Ich muss senden und empfangen in unter 0,2us. Also 5MHz rein und raus. Kennt jemand was passendes?
Dirk E. schrieb: > Ich muss senden und empfangen in unter 0,2us. > Also 5MHz rein und raus. Sportlich! Das sind bei serieller Übertragung min.40 MHz Takt. Mein erster Gedanke war ein MCP23S08. Der kann aber nur 10 Mhz Takt. https://ww1.microchip.com/downloads/en/DeviceDoc/21919a.pdf
:
Bearbeitet durch User
Dirk E. schrieb: > Also 5MHz rein und raus. Und das mit open Collector? Was für ein PullUp-R ist denn da vorgesehen?
Vllt würde auch ein 8:1 Multiplexer IC reichen. Die sind ausreichend schnell und sind deutlich einfacher handzuhaben als ein serieller IO Extender
Harry L. schrieb: > Dirk E. schrieb: >> Ich muss senden und empfangen in unter 0,2us. >> Also 5MHz rein und raus. > > Sportlich! > Das sind bei serieller Übertragung min.40 MHz Takt. Und das kann der ESP32? Aus der 74xx Reihe fällt mir keiner ein der geeignet wäre, bidirektional und Open Collector.
:
Bearbeitet durch User
Dirk E. schrieb: > Ich muss senden und empfangen in unter 0,2us Nur interessehalber: warum müssen die 8 Bit in 200ns eingelesen und ausgegeben sein?
Wenn man nach "SerDes-ICs" sucht, wird man eine reiche Auswahl finden. O.C. kann man natuerlich vergessen. Die an einen ESP32 anzuschliessen, koennte allerdings etwas knifflig werden.
Dirk E. schrieb: > Ich muss senden und empfangen in unter 0,2us. Das ist nicht so einfach möglich. Bitte erkläre genau, was das für ein Protokoll ist, insbesondere, ob es für das Umschalten zwischen Senden und Empfangen ein separates Signal gibt, und ob mehrere Pins gleichzeitig aktiv sein müssen.
Dirk E. schrieb: > Als Lösung wäre ein 8bit io ic mit open collector und gleichzeitigen > einlesen. Wie groß ist dabei jeweils die kapazitive Last an den Ausgängen? Müssen die Eingänge über Schmitt-Trigger verfügen?
:
Bearbeitet durch User
Alle die ernsthaft auf die Problemstellung des TO eingehen sollten mal ihre Scheuklappen abnehmen. Wer so ungenau eine anpruchsvolle Problemstellung vorlegt, der könnte was sein? Also Scheuklappenträger: der Weg ist umsonst.
Von deinen bisherigen Beiträgen aus gesehen also kein Troll. ESP32 mit Expander „5MHz rein raus“ klingt irgendwie falsch. Wenn man Dir helfen soll müssten mehr Fakten auf den Tisch.
Dirk E. schrieb: > spi finde ich kein ic. … > Also 5MHz rein und raus. Das ist die standardanwendung für schieberegister. Hier halt 2, eines zum Rücklesen. Schieberegister=SPI. Geschwindigkeit passt auch. (Ein CPLD/FPGA oder ein größerer Prozessor wären vermutlich sinnvoller)
Wastl schrieb: > Alle die ernsthaft auf die Problemstellung des TO eingehen > sollten mal ihre Scheuklappen abnehmen. Wer in einer Zykluszeit von unter 0.2µs senden und empfangen möchte und im gleichen Zusammenhang von "open collector" spricht, sollte erstmal das Problem auf der Analogseite erkennen, bevor er sich darüber wundert, dass er da keine ICs mit passender Geschwindigkeit findet. Da geht es um Lastkapazität und Treiberleistung für den Off-Zustand. Was für ein Signal soll erfasst werden und was hängt am Ausgang alles dran. Ein bisschen mehr Hintergrundinformationen wären zur Lösung hilfreich, wahrscheinlich mehr als die direkte Frage nach einem IC für den vermeintlichen Lösungsweg.
:
Bearbeitet durch User
Na gut. Also ich will einen sagen wir mal speziellen emulator bauen. Denn brauche ich relativ dringend, jetzt! Realistisch mit Software und Hardware in 4-6 Wochen. Die normalen Zugriffszeiten auf die pins sind 0.75us. Also etwas unter 1,5MHz. Würde nur gerne mindestens die doppelte Anzahl von Zugriffen schaffen. Der esp32 schafft das alles bisher nur ich habe nun 4 pins zu wenig (war erst etwas kleiner geplant). Ob das ganze was ich nun vor habe funktioniert wird sich dann zeigen weil ich auf die pins vom esp32 nun deutlich schneller zugreifen muß. Das ist aber erst der übernächste Schritt. Jetzt brauche ich erstmal die langsamen neuen Pins, weil ohne geht es gar nicht. Ein weiterer Prozessor oder fpga würde gehen, aber ist halt nicht so bequem wie ein spi schieberegister. Ausserdem kann ich dann nicht mehr so einfach die Firmware tauschen. Die Lösung mit 2 ICs könnte gehen. Also lesen und setzten getrennt. Auch wenn das ein Spaß wäre das zu Layouten. An was hast du denn gedacht? Wenn ich kein passendes ic finde dann kommt halt ein dicker ARM stm32h7 drauf. Da habe ich hier genug herum liegen. Aber ich wollte gern die ganzen netten Kommunikations Sachen vom esp32s3 nutzen. Gut denn kann ich auch an den Arm dran hängen aber dann wird es langsam ein herum gebastel mit dem selben Firmware Problem. Ist sowieso mit der pin Erweiterung schon eine Notlösung.
Dirk E. schrieb: > Also ich will einen sagen wir mal speziellen emulator bauen Willst du nicht auf den Punkt "Open Collector" eingehen, der hier bereits als größter Knackpunkt identifiziert wurde?
Das man mit oc nicht gut hi speed machen kann ist mir klar. Du fragst ja auch nicht bei einem avr Prozessor der mit 24MHz läuft ob die pins die Signale sauber übertragen können. Du gehst da auch davon aus das man das alles berücksichtigen sollte. Ich muss die pins halt schalten können und wenn der pullup das nicht packt, nun dann war es halt zu schnell. Aber wenn man die pins nacheinander an wirft muß das halt in der richtigen Zeit passieren. Egal wie die Signale aussehen.
Dirk E. schrieb: > Das man mit oc nicht gut hi speed machen kann ist mir klar. Und push-pull mit Tristate geht nicht? fchk
Harry L. schrieb: > Sportlich! > Das sind bei serieller Übertragung min.40 MHz Takt. DEr 74F299 kann 70MHz. https://www.digikey.de/de/products/detail/rochester-electronics-llc/74F299SCX/12117435
Tristate geht perfekt, wenn man das für jeden pin einzelnen machen kann. Beim 74F299 habe ich das im ersten Datenblatt noch nicht gesehen. Da muss ich mir noch ein besseres besorgen mit mehr Infos und was man besser lesen kann. Solange der esp32 mir die Daten per spi senden kann mache ich auch 70MHz. Das einzige was jetzt Spaß macht ist die 5v und 3v3 Anpassung. Am besten wäre wenn wirklich alle Pins 5v tolerant wären. Aber ich suche mal weiter.
Allenfalls ein Serial-to-Parallel wandler .. zB 74 HVC 595 ? Ich verwende die wenn ich zuwenig Pins habe, und die Pins nichts koennen muessen. Di kann man gut kaskadieren, zB 24bit Outputs
Dirk E. schrieb: > Tristate geht perfekt, wenn man das für jeden pin einzelnen machen kann. Was soll jetzt der Unterschied zwischen Tri-State-Ausgang und Open-Drain-Ausgang sein, wenn man von ersterem nur den Low-Side-Treiber benutzt? Open-Kollektor musst du wahrscheinlich schon ziemlich suchen. > Beim 74F299 habe ich das im ersten Datenblatt noch nicht gesehen. Der besitzt genau ein gemeinsames Output Enable Signal für alle Bits. Da hast du im Datenblatt nichts übersehen.
Dirk E. schrieb: > Ich muss die pins halt schalten können und wenn der pullup das nicht > packt, nun dann war es halt zu schnell. > Aber wenn man die pins nacheinander an wirft muß das halt in der > richtigen Zeit passieren. Egal wie die Signale aussehen. OC ist nicht für schnelles Schalten gedacht, egal ob das IC für 100MHz spezifiziert ist. Darum ist es auch relativ selten und Du musst u.U. noch 8 Transistoren oder ein drittes IC hinten dranhängen. Die 3.3/5V-Pegel sind für viele Logicfamilien kein Problem, z.B. 74HCT. Da brauchst Du dann nur für Din (bzw. Dout) eine Anpassung.
Also nach geschätzten 30 Datenblätter bin ich jetzt am Layouten mit einem stm32h7. Da habe ich die volle Kontrolle über die Pins und muß mir keine Sorgen machen wie ich alles zum Laufen bekomme. Der Code ist zum Glück recht schnell auf dem stm Porttiert. Es gibt hübsche io Treiber die eigentlich alles perfekt machen, also gnd oder open für jeden pin einzelnen, incl input. Aber die sind alle nur bis 10MHz angegeben. Klar wäre es schöner gewesen ich hätte WLAN und Bluetooth gehabt, aber vielleicht mache ich so eine kleine esp Platinen am Rand drauf und hänge die per serial dran. Bzw kommt jetzt noch ein ftdi oder ähnliches drauf um usb zu machen. Ja der stm32 kann das selber, aber das wirft mir mein Timing durcheinander. Wobei Layouten kann ich es ja. Wenn ich das ganze soweit fertig und veröffentlicht habe, kann gern jemand das erweitern. Danke an alle die mir beim Suchen geholfen haben.
Mir ist immer noch nicht klar, wie die hohe Frequenz mit Open-Collector (bzw. Open-Drain beim STM32) möglich gemacht wird. Sicher nicht mit glitzerndem Feenstaub. Aber wie sonst?
Wie ich bereits sagte: Harry L. schrieb: > Sportlich! So ein H7 setzt da nochmal locker ne Zehnerpotenz drauf wenn man nicht bereits über profundes Grunlagenwissen und Erfahrung mit der STM32-Familie verfügt. Schon beim Layout ist der deutlich unverzeihlicher als ein ESP32.
Im Grunde geht es bei kleinen Prozessor. Mach mal ein Programm das nur aus Port an/aus besteht. Je nachdem wie schnell der das macht kommt halt was gut messbares oder etwas was man noch gerade als Signal erkennen kann raus. Am Ende ist es immer der Umgang mit dem pin was entscheiden ist. Nur hier geht es halt um das Problem das ich die Pins untereinander in der richtigen Zeit schalten können muß. Ein Hi-speed an/aus ist bei oc, wie gesagt, quatsch.
Der h7 ist Kinderspielzeug. Gut man muß den halt kennen. Beim Layout sind eigentlich nur 2 Kondensatoren extrem wichtig, sonst ist das Teil ein emv störsender bei 480MHz.
:
Bearbeitet durch User
Dirk E. schrieb: > Ein Hi-speed an/aus ist bei oc, wie gesagt, quatsch. Jetzt bin ich ganz verwirrt. Warum wolltest du ein paar MHz mit Open-Collector schalten, obwohl dir der Quatsch klar ist? Willst du das immer noch tun? Wenn nicht, was willst du denn? (nicht MAOAM)
:
Bearbeitet durch User
Ich muß es einfach machen können, ob es sinnvoll ist ist eine andere Sache. Es ist aber wiederum sinnvoll die Pins einzeln nach einander setzen zu können um irgend ein spezielles Signal zu erzeugen. Wenn ich soweit bin dann wird das hier schon gezeigt. Denke aber das ich bis dahin noch ein paar andere Fragen haben werde und dann rücke ich auch mit allen Infos raus, weil ohne wird mir bei einem mir schon bekannten Software Problem niemand helfen können. Geht aber nur um die Frage was für ein Protokoll das Gerät zur Verfügung stellen muß und wo man das am besten einbinden kann. Ohne Infos keine Antwort!
:
Bearbeitet durch User
Sherlock 🕵🏽♂️ schrieb: > Jetzt bin ich ganz verwirrt. Das kommt davon wenn man sich mit aufgesetzten Scheuklappen in ein phantasievolles, nicht konkretes Problem hineinversetzt. Ich würde mich ganz schön verarscht vorkommen.
Merkt es denn immer noch keiner welches unverbindliches und teils widersprüchliches Geschwafel vom TO daherkommt? Kopfschüttel
Dirk E. schrieb: > Wenn ich soweit bin dann wird das hier schon gezeigt. Lass Dich nicht aufhalten. Selbst verrennen (wovon ich nicht ausgehe), ist besser als nicht starten.
Erstaunlich wie man hier wieder behandelt wird. Wenn man nichts passendes bieten kann, dann wird halt mal das Konzept infrage gestellt. Ich brauche das genau so Punkt! Wie gesagt ich brauche das Teil dringend und lasse mich von niemandem abhalten.
Dirk E. schrieb: > Erstaunlich wie man hier wieder behandelt wird. Wenn man nichts > passendes bieten kann, dann wird halt mal das Konzept infrage gestellt. > Ich brauche das genau so Punkt! Das ist genau der richtige Tonfall um Hilfe zu bekommen👍🤔 Natürlich wird ein Projekt hinterfragt, was daran ist verwerflich? Und bei deiner fadenscheinigen Beschreibung kommen nunmal Vorschläge die aus unserer Sicht logisch erscheinen. Die schlechte Beschreibung beginnt schon mit der Titelzeile. Du schreibst „Treiber“, dabei geht es um eine bidirektionale Kommunikation. Im Eröffnungsthread gibst Du nicht an ob die beiden Wege durch getrennte Bausteine umgesetzt werden können. Nur um 2 Punkte zu nennen.. > Wie gesagt ich brauche das Teil dringend und lasse mich von niemandem > abhalten. Dann sind hier sicherlich einige User auf deine schnelle Lösung gespannt.
:
Bearbeitet durch User
Jörg R. schrieb: > Dann sind hier sicherlich einige User auf deine schnelle Lösung > gespannt. Siehe: Dirk E. schrieb: > Wenn ich kein passendes ic finde dann kommt halt ein dicker ARM stm32h7 > drauf. Da habe ich hier genug herum liegen. Dirk E. schrieb: > Also nach geschätzten 30 Datenblätter bin ich jetzt am Layouten mit > einem stm32h7. Dirk E. schrieb: > Der h7 ist Kinderspielzeug. > Gut man muß den halt kennen. > Beim Layout sind eigentlich nur 2 Kondensatoren extrem wichtig Ich: ROFL
Wastl schrieb: > Jörg R. schrieb: >> Dann sind hier sicherlich einige User auf deine schnelle Lösung >> gespannt. > > Siehe: Ich sehe was der TO geschrieben hat. Funktionierend umgesetzt habe ich noch nichts. Wastl schrieb: > Ich: ROFL Mach dich nicht schmutzig. Es ging mir auch generell darum wie der TO hier auftritt, was Du vor lauter lachen nicht verstanden hast. Und hier noch ein Kommentar von Dir Betreff TO: Wastl schrieb: > Merkt es denn immer noch keiner welches unverbindliches > und teils widersprüchliches Geschwafel vom TO daherkommt? > > Kopfschüttel Macht aber nix, deine Kommentare stechen im allgemeinen nicht besonders hervor, wie man auch in diesem Thread erkennen kann.
:
Bearbeitet durch User
Dirk E. schrieb: > Erstaunlich wie man hier wieder behandelt wird. Wenn man nichts > passendes bieten kann, dann wird halt mal das Konzept infrage gestellt. > Ich brauche das genau so Punkt! > Es geht nicht ums in Frage stellen, sondern deine Beratungsresistenz. oder kurz. Sturheit. Ich muss jetzt mit dem Kopf durch die Wand... > Wie gesagt ich brauche das Teil dringend und lasse mich von niemandem > abhalten. Viel Vergnügen. Zieh' dir schon mal die Erratas. Du wirst in 4..6 Wochen nicht fertig sein. Wetten? (Dafür ist das HAL Framework und der STM selber viel zu buggy.)
Deine Anforderungen klingen extrem, gleichzeitig stellst du nur unzureichend Informationen bereit. Wie soll man da sinnvoll mit überlegen? In unter 0,2us senden/empfangen ist sehr schwammig. Was genau soll innerhalb von 0,2us passieren? Was passiert an deinem Pin? Soll die Portrichtung auch innerhalb von 0,2us umkonfiguriert werden? Und wie viele Pins betrifft das gleichzeitig? Und warum tust du mit deinem Projekt überhaupt so geheimniskrämerisch? Zu erzählen was du vorhast, kann dir unter Umständen viel Arbeit ersparen weil irgendjemand etwas ähnliches vielleicht schon gelöst oder gesehen hat. Kann auch Widerspruch produzieren, das musst du aushalten.
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.