mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interupt pin mehrfach nutzen


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte einen Interupt Pin von einem µC (z.B. B0 von einem PIC 
18F6722) von unterschiedlichen Bauteilen setzen lassen. Diese setzen 
jeweils über die gleiche Leitung einen weiteren Input Pib am PIC (ohne 
Interupt). Der ausgelöste Interupt checkt nun die in frage kommenden 
Pins und erkennt so welches Bauteil den Interupt ausgelöst hat. Hierfür 
bräuchte ich jedoch ein IC welcher mir den z.B. B0 Pin auffächert in 
z.B. 4-8, damit ich mit einem Ausgangspin von dem Bauteil jeweilc den 
Interuptpin als auch den weiteren PIN setzen kann. Was für IC's sind 
hier geeignet?

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm je eine Diode und einen Pullup/down Widerstand.
Das nennt sich wired-or bzw wired-and.

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder du nimmst einen fertigen Multiplex-IC, wie z.B. 74LS151 
(8-Eingänge, 1-Ausgang).

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Oder du nimmst einen fertigen Multiplex-IC, wie z.B. 74LS151
>(8-Eingänge, 1-Ausgang).

Da können Ints verloren gehen wenn ein Int während des scannens auftritt 
und zu kurz anliegt. Elektrisch sauber wird es mit den erwähnten Dioden 
oder einem Odergatter.

MW

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit dem multiplexer weiss er aber dafür welches bauteil den interrupt 
ausgelöst hat, das wird bei wired-or schwer

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, warum verhält sich das beim Multipexer anders wie bei den Dioden? 
Eigentlich wollte ich moeglichst wenige Baulteile verwenden.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@gast (Gast)

>mit dem multiplexer weiss er aber dafür welches bauteil den interrupt
>ausgelöst hat, das wird bei wired-or schwer.

Ist dennoch Unsinn. Der Sin von Interrupt sit ja, in jedem beliebigen 
Moment azuftreten zu können und die CPU sofort zur Reaktion zu 
veranlassen (ISR anspringen). Ein Mux muss geschaltet werden, das ist 
effektiv nur Polling. Das genaue Gegenteil eines Interrupts.

@ Chris (Gast)

>Hallo, warum verhält sich das beim Multipexer anders wie bei den Dioden
Siehe oben.

>Eigentlich wollte ich moeglichst wenige Baulteile verwenden.

Spare jederzeit, dann hast du immer Not. Nimm Dioden oder ein grosse 
AND-Gatter.

MFg
Falk

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris wrote:
> Eigentlich wollte ich moeglichst wenige Baulteile verwenden.

Dann überleg Dir erstmal, ob Du wirklich auf die Ereignisse innerhalb 
1µs reagieren mußt.

Z.B. mechanische Kontakte haben Schaltzeiten >10ms, d.h. ein 
Timerinterrupt alle 10ms reicht völlig und belastet Deinen MC kaum.


Bei den AVRs gibt es auch einen Pin-Change-Interrupt, der kann fast alle 
IOs auf Wechsel überwachen.


Peter

Autor: Sven Stefan (stepp64) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein PIC hat doch 4 Interrupt-On-Change Eingänge (RB4-RB7). Diese kannst 
du dafür benutzen. Ggf. schaltest du noch einen Dezimal-zu-BCD Decoder 
davor. Dann kannst du 16 unterschiedliche Interrupts detektieren und 
benötigst für jede Quelle nur einen PIN.

Sven

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm nen PCFxxx-Portbaustein für I2C, wenns ganz elegant sein soll. Der 
hat ne Pin-change-interrupt-Leitung und kann indes noch seine Pins 
auseinanderhalten.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4078 8-Input NOR/OR
wenn du dir sicher bist, dass nie zwei interrupts gleichzeitig 
auftreten, kannst noch einen 4532 (8bit priority(!) binärcoder) nehmen.

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die große Frage hierbei ist eine andere.
Wie lange dauert die zu überwachende Signaländerung?
Egal ob mit polling oer wired OR muss das signal eine gewisse 
mindestzeit anliegen, um es erkennen zukönnen.

Wired or:  Der IRQ wird ausgelöst wenn der Eingang den Zustand wechselt. 
Danach muss die IRQ routine die möglichen parallelen Eingänge abtasten 
um festzustellen welcher Eingang es war.
Probleme in dem Fall:
1. Das Signal ist so kurz das in der IRQ alle Eingänge wieder 
zurückgewechselt haben, also nicht mehr feststellbar ist, welcher 
Eingang den IRQ ausgelöst hat.
2. Ein Signal geht auf "1"  solange dieses Signal auf "1" ist kann kein 
weitere Eingang einen IRQ auslösen.

MUX:
Die Eingänge werden abgepollt. Vorteil, es ist immer bekannt welcher 
Eingang gerade geprüft wird.
Nachteil: Ist das Signal zu kurz wird es nicht erkannt weil es in der 
Kücke zwischen zwei Abtastungen liegt.

Darüber solltest du dir mal Gedanken machen, die kann dir niemand 
abnehmen.

Alternativ ist auch durchaus eine Möglichkeit einen µC auszuwählen, der 
die
entsprechende Anzahl an IRQ fähigen Pins hat.

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Signal für den Interrupt zusätzlich auf FLIPFLOP führen (für
jedes ext. Ereignis eins). Beim Interrupt die FF abfragen und 
rücksetzen.

Also Or-für Verknüpfung FF für selektion.

Gruß hans

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ralph wrote:
> Die große Frage hierbei ist eine andere.
> Wie lange dauert die zu überwachende Signaländerung?
naja, das ist jetzt ein bisschen hochgegriffen. mein mehrfach-OR hat 
eine gatterlaufzeit von grob 100ns. schneller sind 74HC teile - da 
braucht man dann vllt 2 oder 3 stück - mit grob 20ns. das is grad mal 
grob ein takt bei 55MHz.
wenns wirklich soo~oo schnell sein soll, nimmt man halt ein RS-FF 
dazu...

> Alternativ ist auch durchaus eine Möglichkeit einen µC auszuwählen, der
> die
> entsprechende Anzahl an IRQ fähigen Pins hat.
vorsicht! die pin-change interrupts, auf die du vermutlich anspielst, 
sind wesentlich langsamer als ein externer interrupt!
wenn schon die kohle rauspfeffern, dann für ein CLPD

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der zeitkritische Pfad ist nicht die Laufzeit in den Gattern, sondern im 
Pic die Zeit von externem Signal bis Abarbeitung der Sourcenabfrage in 
der IRQ routine.

Ich denke nicht unbedingt an die PinChange IRQ, sondern ganz allgemein 
an einen anderen µC.
Dies könnte auch ein 8052, AVR, ARM7 ,...... sein.

Hier ist wieder der typische Fehler passiert. Es wure ein µC ausgewählt 
und danach wird geackert um damit die Erfodernisse abzudecken.
Richtig wäre erst die Erfordernisse erarbeiten, und DANACH den passenden 
µC auswählen der alles so gut wie möglich erfüllt.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralph (Gast)

>Der zeitkritische Pfad ist nicht die Laufzeit in den Gattern, sondern im
>Pic die Zeit von externem Signal bis Abarbeitung der Sourcenabfrage in
>der IRQ routine.

Nicht wirklich. Denn sinnvollerweie beleibt ein Interruptsiganl solange 
aktiv, bis die Software das Ereignis erkannt und per Software 
zurückgesetzt hat. Das FlipFlop zur Speicherung ist praktisch schon in 
er Interruptquelle drin. Von Ausnahmen wir Tastaturen etc. mal 
abgesehen.

MFG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.