Forum: Mikrocontroller und Digitale Elektronik Mehr Interrupte - Porterweiterung mit 2. µC?


von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Kann ich nen zweiten µC als Interrupt-Erweiterung nehmen?
Dessen IOs ständig abfragen, und bei einem "Event" einen Ausgang vom 
zweiten µC zum ersten µC an den Interrupt-Eingang legen? Danach frägt 
der erste µC den zweiten µC, welcher Interrupt-Eingang ein Event hatte, 
und es wird ausgeführt... Wäre ja eventuell sogar Sinnvoll, mit 
eintellbaren Interrupt-Prioritäten im zweiten µC wenn mehrere Sachen 
gleichzeitig passieren, oder dass der auch auf "toggle" reagiert oder 
etc etc... Habs nich so extreme Zeitkritisch... Macht das sinn? Oder 
gibts da schon was fertiges / Alternativen?

von Dominik S. (dasd)


Lesenswert?

Machen kann man sowas bestimmt, hört sich aber nicht so extrem sinnvoll 
an.
Warum brauchst du denn überhaupt so viele Interrupts? Was hast du vor?

von Falk B. (falk)


Lesenswert?

@  Tim S. (Firma: QuerDenker) (freak_ts)

>Kann ich nen zweiten µC als Interrupt-Erweiterung nehmen?

Komische Formulierung.

>Dessen IOs ständig abfragen, und bei einem "Event" einen Ausgang vom
>zweiten µC zum ersten µC an den Interrupt-Eingang legen?

Ja, aber

> Danach frägt

fragt

>der erste µC den zweiten µC, welcher Interrupt-Eingang ein Event hatte,
>und es wird ausgeführt... Wäre ja eventuell sogar Sinnvoll, mit
>eintellbaren Interrupt-Prioritäten im zweiten µC wenn mehrere Sachen
>gleichzeitig passieren, oder dass der auch auf "toggle" reagiert oder
>etc etc...

Kann man machen, die Frage ist immer, obe es wirklich nötig ist.

> Habs nich so extreme Zeitkritisch...

Zahlen? 1s? 1ms? Siehe Netiquette.

>Macht das sinn?
> Oder
>gibts da schon was fertiges / Alternativen?

Siehe oben.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Dominik S. schrieb:
> Warum brauchst du denn überhaupt so viele Interrupts? Was hast du vor?

Diverse Klingel- Alarm- und Sensor-Kontakte auswerten. Sollte schnell 
reagieren, aber müssen keine µS sein. Einfach was so geht und gerade 
machbar ist... Der erste µC hat kaum noch freie Pins oder Ressourcen 
übrig, desshalb auch die Frage mit einer "aktiven" Porterweiterung.

Also das Wort Interrupt "im eigentlichen Sinne" in dem Fall mal bitte 
vergessen, aber das Prinzip nicht... Weil meine Schaltung schon 
"Event-Gesteuert" bleiben sollte, habe ich mir das mit dem Interrupt Pin 
überlegt....

Ich seh grad: Es gibt wirklich schon was fertiges dafür... 
"Interrupt-Controller" Ganz genau so mit Prioritäten und etc. Aber 
viiiieeell zu teuer !!!!

Werd solch einen IC warscheinlich einfach nach-Proggn...

von Falk B. (falk)


Lesenswert?

@  Tim S. (Firma: QuerDenker) (freak_ts)

>Diverse Klingel- Alarm- und Sensor-Kontakte auswerten. Sollte schnell
>reagieren, aber müssen keine µS sein. Einfach was geht...

Das sind delbst 100ms schon sehr schnell.

>Der erste µC hat kaum noch freie Pins oder Ressourcen übrig.

Welche Ressourcen? Flash? Nimm einen größeren. CPU-Leistung? Glaub ich 
nicht, bei der einfachen Ausgabe.

>Desshalb die Frage mit dem zweiten µC.

Ja, ist aber zu 99% der falsche Ansatz. Hier reichen eine Handvoll 
Schieberegister ala 74HC165.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

>Ich seh grad: Es gibt wirklich schon was fertiges dafür...
>"Interrupt-Controller" Ganz genau so mit Prioritäten und etc. Aber
>viiiieeell zu teuer !!!!

Du weißt gar nicht, was das wirklich ist und was du wirklich brauchst. 
Das ist nämlich drei Nummern kleiner und einfacher.

von klaus-klaas (Gast)


Lesenswert?

Tim S. schrieb:
> Diverse Klingel- Alarm- und Sensor-Kontakte auswerten. Sollte schnell
> reagieren, aber müssen keine µS sein.

Dann kannst du auch Schieberegister oder Multiplexer nehmen. Ich gehe 
mal davon aus, dass eine ähnliche Reaktionsgeschwindigkeit wie bei einer 
Tastatur gefordert ist? Dann hast du knapp 10 Millisekunden. Du kannst 
z.B. 8 Schieberegister an einen ganzen Port hängen, so kannst du in 8 
Lesezyklen (also maximal einigen dutzend Maschinenzyklen) 256 Kontakte 
einlesen. Oder du hängst die Schieberegister seriell an den Controller 
und liest sie per SPI ein. Beides kostet bei einer Abtastrate von 10 
Millisekunden nur einen winzigen Bruchteil der Prozessorzeit.

von klaus-klaas (Gast)


Lesenswert?

(Ups, 8x8 gibt immer noch 64, sorry...)

von spess53 (Gast)


Lesenswert?

HI

>Diverse Klingel- Alarm- und Sensor-Kontakte auswerten.

Da einzige, was man dafür braucht ist ein Timer-Interrupt.

MfG Spess

von Oliver J. (skriptkiddy)


Lesenswert?

Ein PCF8574 kann einen Interrupt auslösen, wenn sich an seinen 
Eingangs-Pins etwas ändert.

Gruß Oliver

von klaus-klaas (Gast)


Lesenswert?

spess53 schrieb:
>>Diverse Klingel- Alarm- und Sensor-Kontakte auswerten.
>
> Da einzige, was man dafür braucht ist ein Timer-Interrupt.

Und wie soll das mit nur einem Timer-Interrupt denn genau gehen...?

von Marek N. (Gast)


Lesenswert?

Ja, hier ist es beschrieben: 
http://www.mikrocontroller.net/articles/Port-Expander_PCF8574
Auch ODER-Gatter würden helfen.

von spess53 (Gast)


Lesenswert?


von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Das wäre ja dann scho quasi ne Art "Board-Controller", oder wie auch 
immer man den Co-Prozessor dann "nennen" mag / darf...

So ein reiner IO/Interrupt-Part läuft ja auch recht schnell durch. 
Eventuell fällt es gar nicht auf, wenn dafür ein Atiny auf 20 MHz rennt, 
während die Schaltung / bzw. der erste µC auf 8 Mhz bleibt.

LOL: ADC-Interrupt:
Wenn °C des onboard-Temperatursensors innerhalb von 30s um Faktor 50°C 
Steigt ---> Board brennt!
etc...

Man kann ja noch Schmidt-Trigger einbauen, oder sonnst was Messen oder 
Prüfen nebenher, etc... Irgendwo auch praktisch, wenn man weiter darüber 
nachdenkt!

von Falk B. (falk)


Lesenswert?

@  klaus-klaas (Gast)

>>>Diverse Klingel- Alarm- und Sensor-Kontakte auswerten.
>> Da einzige, was man dafür braucht ist ein Timer-Interrupt.

>Und wie soll das mit nur einem Timer-Interrupt denn genau gehen...?

Ne wie wohl? Indem der Prozessor z.B. alle 100ms alle Kontakte 
abklappert und prüft. Ist ein Klacks für die CPU.

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

> Desshalb die Frage mit dem zweiten µC.

Falk Brunner schrieb:
> Ja, ist aber zu 99% der falsche Ansatz. Hier reichen eine Handvoll
> Schieberegister ala 74HC165.

spess53 schrieb:
> Hi
>
>>Und wie soll das mit nur einem Timer-Interrupt denn genau gehen...?
>
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_Tasten
>
> Beitrag "Universelle Tastenabfrage"
>
> http://www.mikrocontroller.net/articles/Entprellung
>
> MfG Spess

LÖÖL Weiß ich doch... [Bitte nich so auf die Art, aber ]danke für die 
Links
;-)

Nein, sind nur 2 Tasten, der Rest kommt von anderen Teilen / Baugruppen, 
etc...

Marek N. schrieb:
> Auch ODER-Gatter würden helfen.

???

Oliver J. schrieb:
> Ein PCF8574 kann einen Interrupt auslösen, wenn sich an seinen
> Eingangs-Pins etwas ändert.

-- Danke für Tipp mit dem PCF8574 ^^

Tim S. schrieb:
> "Board-Controller", oder wie auch immer

Ich komm echt besser weg mit nem kleinen µC denk ich mal.
Das kommt hald nur irgendwo "auf die schnelle" mit auf eine schon 
fertige / eingebaute Platine irgendwie dazu-gebatscht, und sollte sich 
ggf. nochmal anpassen / ändern lassen... Also ggf. auch noch die 
weiteren ADCs, und etc nutzen können. Überwiegend ist es aber (zumindest 
erstmal) nur der beschriebene Interrupt-Teil!
--
W.S. schrieb im Beitrag #2772939 28.07.2012:
> ... 2 riesige Vorteile: Du kannst den Pins ihre Funktionen
> zuweisen und damit dir das Layout schön einfach machen und du kannst,
> wenn du dich in der inneren Schaltung mal geirrt hast, das Ganze einfach
> umprogrammieren, ohne eine neue LP machen zu müssen.
...war aber ein anderes Thema!

von klaus-klaas (Gast)


Lesenswert?

Falk Brunner schrieb:
>>> Da einzige, was man dafür braucht ist ein Timer-Interrupt.
>
>>Und wie soll das mit nur einem Timer-Interrupt denn genau gehen...?
>
> Ne wie wohl? Indem der Prozessor z.B. alle 100ms alle Kontakte
> abklappert und prüft. Ist ein Klacks für die CPU.

Kommst aber nicht um irgend eine Porterweiterung wie Schieberegister 
oder Multiplexer herum. Deshalb braucht man schon noch etwas mehr, als 
einen Timer-Interrupt :-)

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.