Forum: Mikrocontroller und Digitale Elektronik IC das den ersten Eingang der auf HIGH geht erkennt und den rest sperrt?


von Patrick G. (patrick_g390)


Lesenswert?

Guten Abend,

Ich habe folgendes Problem das ich (amliebsten) mit einem IC lösen würd, 
finde aber leider kein passendes.

Nun meine Frage:

Gibt es ein IC das zb 8 Eingänge hat und sobald an einem Eingang ein 
High Pegel anliegt alle anderen eingänge gesperrt werden und das IC 
meinem microcontroller sagt welcher Eingang als erstes HIGH war?
und dann zb. noch ein reset Pin um alle Eingänge wieder freizuschalten.

Konkretere Infos gibt es noch nicht, bin aktuell erstmal dabei ein 
Konzept für mein Projekt zu entwerfen und zu schauen was ich wie lösen 
könnte.

Sprich letzendlich gehts erstmal dadrum von mehreren Eingängen den 
ersten der HIGH wird rauszufiltern.

Gibt es hier jemand der dafür eine Idee hat?

Vielen Dank schonmal.

von Jörg R. (solar77)


Lesenswert?

Patrick G. schrieb:
> Gibt es ein IC das zb 8 Eingänge hat...

Das klingt erstmal nicht nach einem konkreten Problem, wenn das IC „zum 
Beispiel“ 8 Eingänge hat.


Patrick G. schrieb:
> sobald an einem Eingang ein
> High Pegel anliegt alle anderen eingänge gesperrt werden und das IC
> meinem microcontroller sagt welcher Eingang als erstes HIGH war?

Patrick G. schrieb:
> Sprich letzendlich gehts erstmal dadrum von mehreren Eingängen den
> ersten der HIGH wird rauszufiltern.

Weshalb macht der uC das nicht direkt, ohne weitere Bausteine?

von Gerhard (sgssn)


Lesenswert?

Hi
es gibt als IC den 8 zu 3 Prioritäts-Encoder. Allerdings kann der seine 
Eingänge nicht sperren, da wird einfach der höchst-wertigste Eingang am 
Ausgang abgebildet. Also mit TTL wird das eher kompliziert. Also warum 
nicht per uC?

Gruß
gerhard

von Hannes J. (pnuebergang)


Lesenswert?

Ehrlich? Blödsinn. Absoluter Blödsinn.

Mit jedem halbwegs normale Mikrocontroller kann man ohne 
Zusatz-Sonder-Spezial-IC erkennen welcher Eingang (mit einer gewissen 
Auflösung) zuerst High war. Die anderen Eingänge dann in Software zu 
ignorieren ist ebenfalls so trivial das ich mich schon an den Kopf 
fassen muss.

> Konkretere Infos gibt es noch nicht,

Oh ja, also mal wieder die geheime Erfindung des Jahrhunderts. Also ich 
werde dir nicht Zucker in den Arsch blasen um mehr von dem Blödsinn zu 
erfahren.

von (prx) A. K. (prx)


Lesenswert?

Grundidee: CD4532 Prioritätsencoder. Dahinter ein Register, das bei 
Aktivierung die Bitnummer festhält und den Encoder sperrt. Offen: Ob das 
Timing das von selbst bereits hergibt.

von W.S. (Gast)


Lesenswert?

Patrick G. schrieb:
> Ich habe folgendes Problem das ich (amliebsten) mit einem IC lösen würd,
> finde aber leider kein passendes.

Dann hast du einfach nicht nachgedacht.

Probiere mal folgendes: ein 8fach-OR, 8 Latches, ein RS-FF. Das sollte 
reichen, evtl. je nachdem, wie herum die Latches funktionieren ein 
Inverter.

Rate mal, in was für einer Art IC sowas drin ist.

W.S.

Beitrag #6635846 wurde von einem Moderator gelöscht.
Beitrag #6635850 wurde von einem Moderator gelöscht.
von Sebastian S. (amateur)


Lesenswert?

Das klingt nach der klassischen Oder-Verknüpfung (OR auf auswärts).
Wird aber mit diskreten ICs relativ aufwändig - da mehrstufig.
Egal welcher Eingang auf High geht, der Ausgang geht dann auch auf High.
In Zeiten der aussterbenden Logik-ICs kann es ein Problem werden, ein 
8-fach-Or zu besorgen. Ist aber kein Problem, da man die Teile einfach 
kaskadieren kann.
Parallel zu den 8 Eingängen brauchst Du dann noch 8 Speicher (z.b. 
D-Flip-Flops) die ihrerseits mit dem Ausgang des 8-fach-Oders getaktet 
werden.
Geht jetzt irgendein Eingang auf logisch High, so werden die Flip-Flops 
getaktet und speichern den aktuellen Zustand. Einer war ja high.
Mit ein Bisschen Drum-Herum (Reset-Logik) können dann die 8 Speicher 
zurückgesetzt werden.
Dem nach je kann es auch noch nötig werden, die Takteingänge der 
D-Flip-Flops zu verriegeln.
Nich unbedingt Anfängergeignet.

von Patrick G. (patrick_g390)


Lesenswert?

Das ging ja mal schnell, Danke.

Es geht hier nicht um eine "Erfindung" etc. sondern seit der Corona 
langeweile spielen meine cousins und ich sehr viel Dart und bin dabei 
mir mal ein paar Gedanken darüber zu machen wie man eine Dartscheibe aus 
Kork bzw Sisal realisieren könnte die elektronisch ausgewertet wird.

Alls erste Idee habe ich mir mal einen Vibrationssensor bestellt den ich 
mit einer passenden Fassung aus dem 3D Drucker in jedes Feld integrieren 
möchte.

Wenn man jetzt einen Dart wirft reagieren aber logischerweiße auch die 
umliegenden Felder und das (vermutlich) in sehr kurzer reihenfolge und 
meine Angst ist das die uC Eingänge keine hochgenuge abtastrate haben.

Sind meine Bedenken berechtigt?

Könnt ja mal eure Gedanken und Ideen schreiben, wäre ich dankbar für.

Und ja mein erster Beitrag war eventuell nicht perfekt formuliert ;)

von (prx) A. K. (prx)


Lesenswert?

Kleines Problem asynchroner Lösungen: race conditions. Also was genau 
passiert, wenn sich in sehr kurzer Zeit mehrere Eingänge melden. Da 
gibts einige Möglichkeiten, was schief gehen kann.

von W.S. (Gast)


Lesenswert?

Sebastian S. schrieb:
> Nich unbedingt Anfängergeignet.

Wenn jemand meint, so etwas an Logik u brauchen, dann sollte er auch die 
nötigen Vorkenntnisse sich durch Lernen angeeignet haben. Sowas läßt 
sich strunzeinfach mit einem billigen kleinen CPLD erledigen. Die haben 
z.T. bis mehr als 32fache AND-Gatter drin und die gehen dafür ja auch, 
da man zu jedem Pin auch dessen Inverses in der Matrix hat.

Was mir hier überhaupt nicht schmeckt ist, daß immer wieder Leute 
daherkommen und ohne nähere Umstände den anderen so einen Brocken vor 
die Füße schmeißen und erwarten, einen passenden IC auf dem 
Silbertablett kredenzt zu kriegen.

W.S.

von (prx) A. K. (prx)


Lesenswert?

W.S. schrieb:
> den anderen so einen Brocken vor
> die Füße schmeißen und erwarten, einen passenden IC auf dem
> Silbertablett kredenzt zu kriegen.

So falsch nicht. Wenns funktioniert, weil es bei jemanden was triggert. 
Mal kommt was dabei raus, mal nicht. Aber fragen darf man.

Besser ist allerdings, den Kontext mitzureichen. Also ob es um GHz geht, 
oder eben um Dart.

von PittyJ (Gast)


Lesenswert?

Hannes J. schrieb:
> Ehrlich? Blödsinn. Absoluter Blödsinn.
>
> Mit jedem halbwegs normale Mikrocontroller kann man ohne
> Zusatz-Sonder-Spezial-IC erkennen welcher Eingang (mit einer gewissen
> Auflösung) zuerst High war. Die anderen Eingänge dann in Software zu
> ignorieren ist ebenfalls so trivial das ich mich schon an den Kopf
> fassen muss.
>
>> Konkretere Infos gibt es noch nicht,
>
> Oh ja, also mal wieder die geheime Erfindung des Jahrhunderts. Also ich
> werde dir nicht Zucker in den Arsch blasen um mehr von dem Blödsinn zu
> erfahren.

Genau so.
8 Gpios aufsetzen. Interrupt drauf legen, und die Maske sagt einem, 
welcher Pin es war.
Eine Sache von 10 Minuten.

von (prx) A. K. (prx)


Lesenswert?

Patrick G. schrieb:
> Wenn man jetzt einen Dart wirft reagieren aber logischerweiße auch die
> umliegenden Felder und das (vermutlich) in sehr kurzer reihenfolge und
> meine Angst ist das die uC Eingänge keine hochgenuge abtastrate haben.

Da kannst du schon mal den Information vorweg erarbeiten, die du sowieso 
brauchst: Wie gross der kleinste Zeitabstand zweier Sensorensignale bei 
Reaktion auf das gleiche Signal ist. Also die mindestens geforderte 
zeitliche Auflösung jedes Verfahrens.

von (prx) A. K. (prx)


Lesenswert?

PittyJ schrieb:
> 8 Gpios aufsetzen. Interrupt drauf legen, und die Maske sagt einem,
> welcher Pin es war.

Sind dabei weitere Interrupts gesperrt, sobald der erste eintrifft? 
Sonst wärs ja einfach. Aber das eigentliche Problem ist, dass die nicht 
nur ein Sensor reagieren wird. Und genau da muss man nun erst einmal 
wissen, ob der µC rechtzeitig reagiert, um nur den ersten zu erwischen.

von Rainer V. (a_zip)


Lesenswert?

Bevor die Corona-Langeweile dich und deine Verwandschaft jetzt umbringt, 
erkunde doch erst mal, wie elektronische Dartscheiben das (richtig) 
machen! Zwischendurch könnt ihr ja trotzdem weiterspielen :-) und das 
mit den Vibrationssensoren wird wohl nicht klappen...denk mal drüber 
nach...
Trotzdem viel Spass und Gruß, Rainer

von Minimalist (Gast)


Lesenswert?

W.S. schrieb:
> Was mir hier überhaupt nicht schmeckt ist, daß immer wieder Leute
> daherkommen und ohne nähere Umstände den anderen so einen Brocken vor
> die Füße schmeißen und erwarten, einen passenden IC auf dem
> Silbertablett kredenzt zu kriegen.

Und? Warum das Rad neu erfinden, wenn jemand hier eventuell ein 
spezialisiertes Bauteil kennt? Ich bin beruflich in einem Klima 
aufgewachsen, wo wir mitsamt Chef immer im interdisziplinären Team 
Mittag gemacht haben. In dieser Runde konnte jeder ALLES fragen. Ein 
besseren Katalysator für Innovation als schnellen Erfahrungsaustausch 
gibt's fast garnicht.
Was soll denn schlimmeres passieren, als ein "nö, kenn ich nicht" als 
Antwort?

von Patrick G. (patrick_g390)


Lesenswert?

(prx) A. K. schrieb:
> PittyJ schrieb:
>> 8 Gpios aufsetzen. Interrupt drauf legen, und die Maske sagt einem,
>> welcher Pin es war.
>
> Sind dabei weitere Interrupts gesperrt, sobald der erste eintrifft?
> Sonst wärs ja einfach. Aber das eigentliche Problem ist, dass die nicht
> nur ein Sensor reagieren wird. Und genau da muss man nun erst einmal
> wissen, ob der µC rechtzeitig reagiert, um nur den ersten zu erwischen.

Genau das beschreibt meine Bedenken sehr gut, aber du hast schon recht, 
ich sollte mal rausfinden wie viel zeit zwischen den Sensoren liegt wenn 
sie auf den selben Dart reagieren.

Ich bin gerade noch ein paar 3D Teile am drucken, morgen versuch ich 
dann mal eine Dartscheibe damit auszustatten.
Habe die 3D Teile so konstruiert das zwischen jedem Feld ein hohlraum 
von 1mm ist unter der hoffnung das das die Felder ein wenig voneinander 
abdämpft.

Dann werde ich einfach mal ein paar Darts werfen und die Eingangssignale 
aufzeichnen lassen mit timestamps, dann sollte ich ja hoffentlich sehen 
wie viel ms dazwischenliegen.

Wenn ich das weiß kann ich weitersehen.

Danke!

von MaWin (Gast)


Lesenswert?

Patrick G. schrieb:
> Gibt es ein IC das zb 8 Eingänge hat und sobald an einem Eingang ein
> High Pegel anliegt alle anderen eingänge gesperrt werden und das IC
> meinem microcontroller sagt welcher Eingang als erstes HIGH war?

Welche Zeit liegt zwischen dem ersten und folgenden Ereignis ?

Patrick G. schrieb:
> bin dabei mir mal ein paar Gedanken darüber zu machen wie man eine
> Dartscheibe aus Kork bzw Sisal realisieren könnte die elektronisch
> ausgewertet wird.

Gibt es haufenweise.

> Alls erste Idee habe ich mir mal einen Vibrationssensor bestellt den ich
> mit einer passenden Fassung aus dem 3D Drucker in jedes Feld integrieren
> möchte.

Niemand möchte wissen, von welchem Feld ein Pfeil abgeprallt ist.

> Wenn man jetzt einen Dart wirft reagieren aber logischerweiße auch die
> umliegenden Felder und das (vermutlich) in sehr kurzer reihenfolge und
> meine Angst ist das die uC Eingänge keine hochgenuge abtastrate haben.
> Sind meine Bedenken berechtigt?

Nein. Falscher Ansatz.

Wenn es wirklich nur um abprallen geht, reichen 3 Sensoren am Rand der 
Scheibe. Der erste Aufprall eines Darts produziert eine Schwingung, ein 
Geräusch, und je weiter der Sensor vom Aufprallpunkt entfernt ist, um so 
später kommt das Geräusch dort an. Es muss also nur der 
Laufzeitunterschied des Geräusches der 3 Sensoren ermittelt werden, dann 
kann man den Aufprallpunkt berechnen. Bei 330m/s reicht eine Auflösung 
von 3us, um den Aufprallpunkt auf 1mm genau ermitteln zu können. Ein 
STM32 kann jede Mikrosekunde einen Analogwert per ADC erfassen und das 
3-kanalig per DMA speichern, die Software kann nach Erfassung dann 
analysieren und berechnen. Man braucht also keine zusätzliche Hardware.

Ob der Pfeil dann stecken blieb oder abprallte, ist nochmal eine andere 
Frage. Vielleicht beantwortbar durch KI.

von Patrick G. (patrick_g390)


Lesenswert?

Minimalist schrieb:
> W.S. schrieb:
>> Was mir hier überhaupt nicht schmeckt ist, daß immer wieder Leute
>> daherkommen und ohne nähere Umstände den anderen so einen Brocken vor
>> die Füße schmeißen und erwarten, einen passenden IC auf dem
>> Silbertablett kredenzt zu kriegen.
>
> Und? Warum das Rad neu erfinden, wenn jemand hier eventuell ein
> spezialisiertes Bauteil kennt? Ich bin beruflich in einem Klima
> aufgewachsen, wo wir mitsamt Chef immer im interdisziplinären Team
> Mittag gemacht haben. In dieser Runde konnte jeder ALLES fragen. Ein
> besseren Katalysator für Innovation als schnellen Erfahrungsaustausch
> gibt's fast garnicht.
> Was soll denn schlimmeres passieren, als ein "nö, kenn ich nicht" als
> Antwort?

Danke, genau sowas wie hier im Forum ist auch ein Lernprozess.

Ich erkundige mich nach möglichen Lösungswegen und Meinungen, werde 
diese dann in der Praxis ausprobieren und daraus lernen, was soll daran 
jetzt bitte falsch sein?

von (prx) A. K. (prx)


Lesenswert?

Patrick G. schrieb:
> Genau das beschreibt meine Bedenken sehr gut, aber du hast schon recht,
> ich sollte mal rausfinden wie viel zeit zwischen den Sensoren liegt wenn
> sie auf den selben Dart reagieren.

Auf dem Weg dorthin wirst du vielleicht feststellen, dass Sensor des 
Feldes, in dem er traf, von der Position des Signals weiter entfernt 
sein könnte, als der nächste Sensor in einem Nachbarfeld. Dart ist kein 
Schachbrett.

von (prx) A. K. (prx)


Lesenswert?

MaWin schrieb:
> Vielleicht beantwortbar durch KI.

... oder ganz banal durch NI. ;-)

Ja, Zeitmessung kam mir auch in den Sinn. Zu Kork finde ich ca 500 m/s. 
Da gehts. Bei Holz mit 5000 m/s wärs knapper.

von Rainer V. (a_zip)


Lesenswert?

...und wieso eigentlich ausgerechnet etwa 8 Eingänge? Du hast auf der 
Scheibe 82 Felder, die getroffen werden könnten. Ich sehe schon das 
TTL-Grab, egal ob mit oder ohne Prozessor. Immerhin könnte die Pandemie 
schon vorrüber sein, bevor der erste Pfeil sicher erkannt wurde :-)
Gruß Rainer

von Patrick G. (patrick_g390)


Lesenswert?

(prx) A. K. schrieb:
> Patrick G. schrieb:
>> Genau das beschreibt meine Bedenken sehr gut, aber du hast schon recht,
>> ich sollte mal rausfinden wie viel zeit zwischen den Sensoren liegt wenn
>> sie auf den selben Dart reagieren.
>
> Auf dem Weg dorthin wirst du vielleicht feststellen, dass Sensor des
> Feldes, in dem er traf, von der Position des Signals weiter entfernt
> sein könnte, als der nächste Sensor in einem Nachbarfeld. Dart ist kein
> Schachbrett.

Da hast du recht, so schnell haste meine Idee zerstört :D

Ne Spaß beiseite, da hatte ich wohl einen großen Denkfehler.

von Wolfgang (Gast)


Lesenswert?

(prx) A. K. schrieb:
> Kleines Problem asynchroner Lösungen: race conditions. Also was genau
> passiert, wenn sich in sehr kurzer Zeit mehrere Eingänge melden.

Das kommt drauf an, wie groß "sehr kurz" bezogen auf 
Gatterdurchlaufzeiten der verwendeten Logik ist - und natürlich auf die 
Schaltung.

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.