DonGigo
09.11.2009, 23:58 |
Logik Gatter (Elektronik) |
Hallo zusammen,
ich bin auf der Suche nach einem Logik Gatter, welches 8 Eingänge prinzipiell ständig abfragt (auf HIGH oder LOW) und sobald sich der Zustand eines Einganges ändert, dies durch eine Interrupt Leitung anzeigt.
Leider bin ich bisher nirgends fündig geworden. Könnt ihr mir vielleicht helfen?
MFG
Gigo |
hws

59425 Unna, 10.11.2009, 00:17
@ DonGigo
|
Logik Gatter |
» prinzipiell ständig abfragt (auf HIGH oder LOW) und sobald sich der
» Zustand eines Einganges ändert, dies durch eine Interrupt Leitung
» anzeigt.
Ein µP.
Z.B. der Z8, da kannst du alle 8 Pinchen auf "Interrupt on level change" setzen.
Das funktioniert allerdings auch bei sehr kurzen Impulsen. Ein Schalter gibt beim Öffnen oder schließen sicher einige Impulse.
Bei anderen µP's geht's sicher auch. Wenn es nicht auf µs ankommt, geht das auch per Software.
Kleiner Tip: "7 Tips für Neulinge" Punkt 2.
Oder: wozu soll das denn gut sein ?
hws |
herrma

10.11.2009, 00:19 (editiert von herrma am 10.11.2009 um 00:36)
@ DonGigo
|
Logik Gatter |
» Hallo zusammen,
»
» ich bin auf der Suche nach einem Logik Gatter, welches 8 Eingänge
» prinzipiell ständig abfragt (auf HIGH oder LOW) und sobald sich der
» Zustand eines Einganges ändert, dies durch eine Interrupt Leitung
» anzeigt.
» Leider bin ich bisher nirgends fündig geworden. Könnt ihr mir vielleicht
» helfen?
»
» MFG
» Gigo
http://www.pic-tec.com/shop2/index.php?proid=89&key=First-Event-Detector |
Hartwig
10.11.2009, 00:52
@ DonGigo
|
Logik Gatter |
Hallo,
HWS hat Dir ja schon eine Möglichkeit vorgeschlagen, und eine derart bereits programmierte Lösung wurde ebenfalls angegeben.
Du kannst aber auch jeden Eingang differenzieren, so daß jeweils bei Signalwechsel ein kurzer Impuls erzeugt wird. Diese Impulse OR-Verknüpfen und schon ists fertig.
Differenzieren geht grundsätzlich über RC-Glieder (evtl. negative Impulse mit Diode beseitigen, Schmitt-Trigger nachschalten).
Einfacher ist es meistens, über Gatterlaufzeiten zu differenzieren: Du nimmst das Signal und führst es auf einen Eingang eines Gatters mit 2 Eingängen. Zudem invertierst Du das Signal (1 oder 3 Inverter in Reihe) und führst das invertierte Signal auf den anderen Eingang des Gatters. Am Gatter kommt jetzt das invertierte Signal durch 1 oder 3 Gatterlaufzeiten verzögert an. Bei einer Signaländerung hast Du also für die Dauer der Verzögerung (meist einige -zig bist 100 ns) gleiche Eingangspegel am Gatter. Je nach Gatter (AND / OR / XOR) bekommst Du dann ein Ausgangssignal bei Wechsel L/H; H/L oder beides. Diese kurzen Impulse können dann z. B. über OR weiter zu einem Signal verknüpft werden.
Viele Grüße
Hartwig |
geralds

Wien, AT, 10.11.2009, 01:05
@ DonGigo
|
Logik Gatter |
» Hallo zusammen,
»
» ich bin auf der Suche nach einem Logik Gatter, welches 8 Eingänge
» prinzipiell ständig abfragt (auf HIGH oder LOW) und sobald sich der
» Zustand eines Einganges ändert, dies durch eine Interrupt Leitung
» anzeigt.
» Leider bin ich bisher nirgends fündig geworden. Könnt ihr mir vielleicht
» helfen?
»
» MFG
» Gigo
---
Wie schnell muss das sein?
Es gibt Exor vergleicher, Paritätsvergleicher in den TTL Serien bei TI www.ti.com
Eine hardgestrickte Lösung mit nur einem IC ist da eher nicht möglich.
Ein Controller wäre mit wenig HW Aufwand eher möglich.
Schnell, genau??? Events high,low, steigend, fallend????
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
hws

59425 Unna, 10.11.2009, 09:54
@ herrma
|
Logik Gatter |
Fast ...
Der "First-Event-Detector" erwartet, dass alle Eingänge im Ruhezustand H sind. Ein (oder mehrere) Eingänge auf Low lösen Alarm aus.
Wie ich's verstanden habe, können im Ruhezustand aber beliebige 8Bit Werte anliegen (auch Bits auf L) und jede Änderung (auch L -> H) soll Alarm auslösen.
hws |
hws

59425 Unna, 10.11.2009, 10:25
@ Hartwig
|
Logik Gatter |
» Du kannst aber auch jeden Eingang differenzieren, so daß jeweils bei
» Signalwechsel ein kurzer Impuls erzeugt wird. Diese Impulse OR-Verknüpfen
» und schon ists fertig.
Vorsicht, bei H -> L Wechsel gibts nen negativen Impuls, der ebenfalls detektiert werden muss und keinesfalls ..
» evtl. negative Impulse mit Diode beseitigen
» Einfacher ist es meistens, über Gatterlaufzeiten zu differenzieren:
Zustimmung
» ..Diese kurzen Impulse können dann z. B. über OR weiter ..
und evtl verlängert, wenn die kurzen Impulse nicht sowieso ein Latch treiben.
Ein Parity-Generator oder XOR Vergleicher hatte ich auch überlegt. Dann dürfen aber nicht 2 Signale gleichzeitig innerhalb einer Gatterlaufzeit bzw der Zeit sich ändern, die das Ausgangssignal lang sein muss.
hws |
hws

59425 Unna, 10.11.2009, 10:29
@ geralds
|
Logik Gatter |
» Wie schnell muss das sein?
» Schnell, genau???
Sollte der TE vielleicht noch nachreichen.
» Events high,low, steigend, fallend????
Ich befürchte: alle Möglichkeiten
Warten wir DonGigo's Antwort ab.
hws |
herrma

10.11.2009, 11:38
@ hws
|
Logik Gatter |
» Fast ...
» Der "First-Event-Detector" erwartet, dass alle Eingänge im Ruhezustand H
» sind. Ein (oder mehrere) Eingänge auf Low lösen Alarm aus.
»
» Wie ich's verstanden habe, können im Ruhezustand aber beliebige 8Bit Werte
» anliegen (auch Bits auf L) und jede Änderung (auch L -> H) soll Alarm
» auslösen.
»
» hws
Moin moin,
du hast Recht.
Ich denke es fehlen noch einige Infos. Mal abwarten was der TO genau will.
Gruß
herrma |
geralds

Wien, AT, 10.11.2009, 11:44
@ herrma
|
Logik Gatter |
» » Fast ...
» » Der "First-Event-Detector" erwartet, dass alle Eingänge im Ruhezustand
» H
» » sind. Ein (oder mehrere) Eingänge auf Low lösen Alarm aus.
» »
» » Wie ich's verstanden habe, können im Ruhezustand aber beliebige 8Bit
» Werte
» » anliegen (auch Bits auf L) und jede Änderung (auch L -> H) soll Alarm
» » auslösen.
» »
» » hws
»
» Moin moin,
»
» du hast Recht.
»
» Ich denke es fehlen noch einige Infos. Mal abwarten was der TO genau will.
»
»
»
» Gruß
» herrma
---
Im Prinzip wünscht er sich einen Logik-Analyzer, der nur mit einem IC arbeitet.
Das kann natürlich nicht gehen.
Daher meine gestrigen Fragen an ihn.
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
herrma

10.11.2009, 15:41
@ geralds
|
Logik Gatter |
» Im Prinzip wünscht er sich einen Logik-Analyzer, der nur mit einem IC arbeitet.
»
» Das kann natürlich nicht gehen.
Ich denke, dass ich es trotzdem mal versuchen werde. 
Falls es noch Vorschläge oder Anregungen gibt - nur zu. |
Hartwig
10.11.2009, 15:59
@ hws
|
Logik Gatter |
» » Du kannst aber auch jeden Eingang differenzieren, so daß jeweils bei
» » Signalwechsel ein kurzer Impuls erzeugt wird. Diese Impulse
» OR-Verknüpfen
» » und schon ists fertig.
»
» Vorsicht, bei H -> L Wechsel gibts nen negativen Impuls, der ebenfalls
» detektiert werden muss und keinesfalls ..
stimmt, ich hatte die RC-Lösung nicht zuende gedacht, da ich sie ohnehin für suboptimal halte...
»
» » evtl. negative Impulse mit Diode beseitigen
»
» » Einfacher ist es meistens, über Gatterlaufzeiten zu differenzieren:
» Zustimmung
» » ..Diese kurzen Impulse können dann z. B. über OR weiter ..
»
» und evtl verlängert, wenn die kurzen Impulse nicht sowieso ein Latch
» treiben.
»
» Ein Parity-Generator oder XOR Vergleicher hatte ich auch überlegt. Dann
» dürfen aber nicht 2 Signale gleichzeitig innerhalb einer Gatterlaufzeit
» bzw der Zeit sich ändern, die das Ausgangssignal lang sein muss.
Ja, da wäre dann wieder die Frage, was das ganze denn werden soll. Aus vorsintflutlichen Zeiten erinnere ich mich noch an recht effizient aufgebaute Interrupt-Logik in Prozessrechnern, vielleicht wäre der Fragesteller mit sowas besser beraten, da wäre der Koinzidenzfall dann auch sicher ausgeschlossen.
Viele Grüße
und natürlich alles Gute für Deine Genesung!!
Hartwig
»
» hws |
hws

59425 Unna, 10.11.2009, 16:20
@ geralds
|
Logik Gatter |
» Im Prinzip wünscht er sich einen Logik-Analyzer, der nur mit einem IC
» arbeitet.
äähhm ja, nicht ganz.
Er will (wenn ich's richtig verstanden habe), einen beliebigen 8Bit Wert auf jegliche Änderung überwachen. Bei ausreichender Geschwindigkeit des Decoders könnte man das sogar als Strobe für einen Speicher (mit Adress-autoincrement) benutzen und den Signalverlauf mitloggen.
Zu Geschwindigkeit hat er noch nichts gesagt.
Hallo DonGigo - jemand zu Hause ? .... oder hat sich die Sache inzwischen erledigt.
hws |
herrma

10.11.2009, 17:15
@ hws
|
Logik Gatter |
» Er will (wenn ich's richtig verstanden habe), einen beliebigen 8Bit Wert auf jegliche Änderung überwachen.
so habe ich´s auch verstanden
» Bei ausreichender Geschwindigkeit des Decoders könnte man das sogar als Strobe für einen Speicher (mit Adress-autoincrement) benutzen und den Signalverlauf mitloggen.
interessante Idee
» Zu Geschwindigkeit hat er noch nichts gesagt.
» Hallo DonGigo - jemand zu Hause ? .... oder hat sich die Sache inzwischen
» erledigt.
Man könnte glatt den Eindruck haben, dass ihm Schnelligkeit nicht so wichtig ist.
Weil ich das Projekt im Hinblick auf mögliche Einsatzbereiche interessant finde, habe ich einfach mal angefangen eine µC-Lösung zu proggen.
Bisher kann das Ding folgendes:
- Portüberwachung (8 Bit) auf Flankenwechsel
OUTPUTS
- HIGH-Impuls (1µs)
- LOW-Impuls (1µs)
- Eventanzeige (konstant bis Reset erfolgt)
ToDo falls notwendig
- BCD-Ausgang für 7-Segment-Anzeige des Last-Event-Ports
- Speicherung der Events
-
- |
geralds

Wien, AT, 10.11.2009, 19:48 (editiert von geralds am 10.11.2009 um 19:51)
@ hws
|
Logik Gatter |
» » Im Prinzip wünscht er sich einen Logik-Analyzer, der nur mit einem IC
» » arbeitet.
»
» äähhm ja, nicht ganz.
» Er will (wenn ich's richtig verstanden habe), einen beliebigen 8Bit Wert
---
ähm,
wo ist der Unterschied? nur mal die Eingangsschaltung gedacht?
Ok, ein kleines Missverständnis habe ich produziert:
Da schlagen sich wieder einmal meine Gedanken und Worte.
Im Logik-Analyzer die Eingangsschaltung wird benötigt, nicht unedingt der ganze Analyzer.
Ich würde es so machen: --> Tri-State Spiele, ganz einfach.
Da sind die Eingänge mittig h-Z, Tri-State, und bei jedem Pegelwechsel gibt es am Ausgang eine entprechende Antwort.
Wechselts von Mitte zu low -> gibts Low und das wird sofort im RAM als solches über die Datenleitung gespeichert.
Gibts High, dann wird ein High ins RAM geschrieben.
Gleichzeitig, eine parallel geschaltete Logik gibt codiert den Wert aus, von den Eingangsleitungen die den Pegel geändert hatten.
Damit hast einen Binärwert zur Auswertung der betroffenen Leitungen.
Gleichzeitig macht diese Logik einen Trigger - Interrupt, was auch immer.
Mit diesem Trigger werden der Binärwert und die Datenzustände weiterverarbeitet.
So mal bis hierher.
Das ganze kannst natürlich mit Controller programmieren, dann wird die Boolean so ähnlich werden.
-->
Das woran der TO dachte: Da denken wir drei gleich im Verständnis. Mein Lösungsansatz war halt das Obige. ---
---> Er dachte einfach an einen Pegelwechsel, die zufällig an den 8 Leitungen eintreten können.
Ich habe da was ähnliches - in Form von einem Telealarm System.
Da werden auch die digitalen Zustände von 8 Eingängen abgefragt.
Mit der entsprechenden Routine wird auf Pegelwechsel (Wischer-Kontakt wird damit simuliert) reagiert, und entsprechend via Modem zur Fernwarte ausgeben.
Ok, -> hier wird der momentane Logikzustand durchgescannt, kann natürlich ein ewiges low oder high sein.
Aber dessen Pegelwechsel wird dann ausgewertet.
Das Ganze ist in einem FPGA reinprogrammiert. Hat aber etwas Chip-Gemüse rundherum.
U n d, der TO will das ganze mit nur einem Chip lösen.
Genau, das ists auch, wovon ich von Anfang an sprach, dass es nicht geht.
Grüße
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
hws

59425 Unna, 10.11.2009, 22:09
@ geralds
|
Logik Gatter |
Irgendwas versteh ich nicht :
» Ich würde es so machen: --> Tri-State Spiele, ganz einfach.
» Da sind die Eingänge mittig h-Z, Tri-State, und bei jedem Pegelwechsel
» gibt es am Ausgang eine entprechende Antwort.
Eingänge sind weder tristate noch mittig - sie haben ganz einfach den Logikpegel, den ein externer Schaltkreis dort anlegt. Und dank DIGITALtechnik kann das nur H oder L sein.
Bei einem Logicanalyzer wird nun in festen zeitlichen Abständen dieser Pegel gelesen und gespeichert. (üblicherweise 8..32 Bit parallel)
Ähnlich einem Speicheroszi - der speichert 2k Analogwerte mit der gerade eingestellten Zeitbasis.
Bei Logicanalyzern komt es meist nicht auf die Speichertiefe an, sondern auf die Triggermöglichkeiten.
In unserem Fall will der TE offensichtlich jede Veränderung eines 8 Bit Signales.
Ob das irgendwas mit einem Logicanalyzer zu tun hat, wissen wir (noch) nicht.
Zurück zu den Triggermöglichkeiten: wenn der Eingang 32h wird und dann zum 5.mal Bit 2 oder Bit 6 sich ändert und dann der Wert 23h auftritt, nimm dieses als Trigger. 256 Zustände VOR diesem Trigger und 256 danach bitte speichern in 100ns Abständen. So könnte das z.B. aussehen.
Nicht sinnlos riesige Speicher mit Daten füllen, sondern speziell auf ein Ereignis reagieren - das ist das Ziel.
Ich konnte einen uralt Kontron Logicanalyzer mit einem 80286er PC drin aus der Verschrottung retten.
» Wechselts von Mitte zu low ..
ein "Mitte-Signal" würde ich bei einem heilen Digitalausgan nicht erwarten - es sei denn der Bus befindet sich im Tristate. Dann werden aber keine Daten übertragen.
» ... und das wird sofort im RAM als
» solches über die Datenleitung gespeichert.
Wie und warum? Und wird irgendwo vermerkt, ob das Zeitlich innerhalb von µS oder Tagen kam?
» ...
» Mit diesem Trigger werden der Binärwert und die Datenzustände
» weiterverarbeitet.
» So mal bis hierher.
Was bitte bezweckst du?
» Ich habe da was ähnliches - in Form von einem Telealarm System.
» Da werden auch die digitalen Zustände von 8 Eingängen abgefragt.
» Mit der entsprechenden Routine wird auf Pegelwechsel (Wischer-Kontakt wird
» damit simuliert) reagiert, und entsprechend via Modem zur Fernwarte
» ausgeben.
Ahh ja ??
» U n d, der TO will das ganze mit nur einem Chip lösen.
» Genau, das ists auch, wovon ich von Anfang an sprach, dass es nicht geht.
8 Datenleitungen auf jedweden Pegelwechsel überwachen und innerhalb <1µS ein Ausgangssignal bereitstellen - das mach ich dir in einem Chip. Mit nem Z8 auf jeden Fall, weil der hardwaremässig auf einen Pegelwechsel an seinen Eingängen reagieren kann. Auch an 8 gleichzeitig.
Ob ich's mit nem Atmel hinkriegte, müsste ich erst gucken.
hws |