Forum: Mikrocontroller und Digitale Elektronik Schneller 8bit Treiber gesucht


von Dirk E. (dirk_1980)


Lesenswert?

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?

von Harry L. (mysth)


Lesenswert?

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
von Jens G. (jensig)


Lesenswert?

Dirk E. schrieb:
> Also 5MHz rein und raus.

Und das mit open Collector? Was für ein PullUp-R ist denn da vorgesehen?

von Johannes (zuberjo)


Lesenswert?

Vllt würde auch ein 8:1 Multiplexer IC reichen. Die sind ausreichend 
schnell und sind deutlich einfacher handzuhaben als ein serieller IO 
Extender

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Wenns wirklich so schnell sein muss, dann halt irgendein olles CPLD.

Gruss
WK

von Jörg R. (solar77)


Lesenswert?

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
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Motopick (motopick)


Lesenswert?

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.

von Hp M. (nachtmix)


Lesenswert?

Dirk E. schrieb:
> 8bit io ic mit open collector

Oder Tri-State Ausgängen.

von Clemens L. (c_l)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

Der übliche Unsinn oder gar Trollerei. Bravo!

von Rainer W. (rawi)


Lesenswert?

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
von Wastl (hartundweichware)


Lesenswert?

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 Harald A. (embedded)


Lesenswert?

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.

von Bruno V. (bruno_v)


Lesenswert?

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)

von Rainer W. (rawi)


Lesenswert?

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
von Dirk E. (dirk_1980)


Lesenswert?

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.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

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?

von Dirk E. (dirk_1980)


Lesenswert?

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.

von Frank K. (fchk)


Lesenswert?

Dirk E. schrieb:
> Das man mit oc nicht gut hi speed machen kann ist mir klar.

Und push-pull mit Tristate geht nicht?

fchk

von Peter D. (peda)


Lesenswert?

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

von Dirk E. (dirk_1980)


Lesenswert?

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.

von Pandur S. (jetztnicht)


Lesenswert?

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

von Rainer W. (rawi)


Lesenswert?

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.

von Bruno V. (bruno_v)


Lesenswert?

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.

von Dirk E. (dirk_1980)


Lesenswert?

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.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

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?

von Harry L. (mysth)


Lesenswert?

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.

von Dirk E. (dirk_1980)


Lesenswert?

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.

von Dirk E. (dirk_1980)


Lesenswert?

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
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

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
von Dirk E. (dirk_1980)


Lesenswert?

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
von Wastl (hartundweichware)


Lesenswert?

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.

von Wastl (hartundweichware)


Lesenswert?

Merkt es denn immer noch keiner welches unverbindliches
und teils widersprüchliches Geschwafel vom TO daherkommt?

Kopfschüttel

von Bruno V. (bruno_v)


Lesenswert?

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.

von Dirk E. (dirk_1980)


Lesenswert?

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.

von Axel S. (a-za-z0-9)


Lesenswert?

Dirk E. schrieb:
> Ohne Infos keine Antwort

Tja. Das gilt auch in die andere Richtung.

von Jörg R. (solar77)


Lesenswert?

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
von Wastl (hartundweichware)


Lesenswert?

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

von Jörg R. (solar77)


Lesenswert?

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
von Roland E. (roland0815)


Lesenswert?

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.)

von Richard W. (richardw)


Lesenswert?

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
Noch kein Account? Hier anmelden.