Forum: Mikrocontroller und Digitale Elektronik Peripheral Event Controller?


von poiu (Gast)


Lesenswert?

Hi Leute!

Was versteht ihr unter einem Peripheral Event Controller eines µ-C's? 
Meine Vorlesungsunterlagen geben zu der Arbeitsweise leider nicht so 
viel her. Auch das Internet beschränkt sich etwas arg...

So lang ich nämlich nicht weiß, was das Teil macht, kann ich das 
Blockablaufbild nicht so richtig interpretieren...

von W.S. (Gast)


Lesenswert?

Hat sich dein Prof wohl selber ausgedacht, denn sowas gibt es eigentlich 
garnicht. Vielleicht meint er, daß es in der Peripherie ja Ereignisse 
gibt, wie z.B. "UART hat Zeichen empfangen", die man je nach uC vom 
Programm aus abfragen kann oder als Interrupt-Quelle für den 
Interrupt-Controller benutzen kann oder als Start für einen 
DMA-Controller.

W.S.

von Guido (Gast)


Lesenswert?

Das gibt es schon, beim C167 und seinen Nachfolgern Das ist eine
Einheit, die interruptgesteuerte Transfers autark ausführt, d.j.
ohne die CPU zu belasten. Genaueres findes du im zugehörigen
UserManual.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die XMegas haben auch ein Event System, bei dem bestimmte Ereignisse 
unabhängig von der CPU Ereignisse auslösen können. Z.B. kann ein Timer 
OVF Event den ADC triggern oder ein 'ADC Ready' den DMA anschubsen. Das 
ganze geht dann ohne Interrupts.
Ich hab das Blockschaltild des XMega grad nicht im Kopf, mögl. nennt 
Atmel den Ereignis Router einen Event Controller.

von poiu (Gast)


Lesenswert?

Ich hab mir nun mal die Dokumentation vom XE angeschaut. Da wird zwar 
alles recht übersichtlich erklärt, wie man den PEC einstellt, aber was 
das im Grunde ist, steht da nicht. Mein Problem ist, dass ich die 
Zeichnung des Ablaufs von diesem PEC nicht verstehe...

von poiu (Gast)


Lesenswert?

Ich hab mir das nun mal noch genauer angeschaut und ich verstehe das so:

Es gibt ein Register, in dem ein Feld Count, und ein Feld INC 
beschrieben werden kann. Der Wert im Feld Count kann von 0-255 
beschrieben werden das INC-Feld was dekrementiert werden soll. 
SourcePOinter DestinationPointer oder beides gleichzeitig.

Wenn nun das Count = 0 ist, dan wir d ein normaler interrupt 
durchgeführt.

Wenn Count zwischen 254..2 ist, dann wird das RequestFlag gelöscht, 
count dekrementiert und PEC-Transfer durchgeführt

Wenn Count = 1 ist dann wird das RequestFlag nciht gelöscht, count 
dekrementiert und PEC-Transfer durchgeführt


Wenn Count = 255 ist dann wird das RequestFlag nciht gelöscht, count 
dekrementiert und PEC-Transfers werden kontinuierlich durchgeführt; ohne 
count zu verändern



Soweit so gut. Aber was bringt mir das jetzt? Was ist nun ein PEC? Eine 
Art Interrupt? was ist das besondere dran? Warum brauch ich noch eine 
neute Art interrupt? Das steht leider im Handbuch nicht.

von Guido (Gast)


Lesenswert?

Im Grunde geht es um Datentransfers, z.B. vom ADC in den
Speicher. Du stellst die Quelle und Zielstartadresse ein, sowie die
gewünschte Anzahl an Transfers. Wenn die eingestellte Peripherie
einen Interrupt auslöst, erfolgt nur dieser Datentransfer (ein
Word oder Byte) im Hintergrund. Erst wenn alle Transfers
ausgeführt sind (nach eingestellter Anzahl) gibt es wirklich
einen Interrupt.

von poiu (Gast)


Lesenswert?

Hab ich leider vergessen: Was ein RequestFlag sein soll, wurde mir in 
dem Handbuch auch nicht gesagt. Im Internet und in meinen Unterlagen 
steht dazu leider auch nichts...

von P E C (Gast)


Lesenswert?

hier:
http://www.infineon.com/cms/en/product/microcontrollers/16-bit-c166-microcontrollers/16-bit-c166-microcontrollers/channel.html?channel=db3a30432313ff5e012332d4d2cb306c

findet man:
Peripheral Event Controller

The Peripheral Event Controller (PEC) enables single cycle data 
transfers between memory and peripherals without the intervention of an 
interrupt service routine. The PEC provides eight PEC service channels 
which move a single byte or word between any two locations with optional 
automatic updating of the source and destination pointers. A PEC 
transfer can be triggered by any interrupt service request and is the 
fastest possible interrupt response.

in der Praxis läuft das so wie von Guido beschrieben.

von Guido (Gast)


Lesenswert?

Das ist das Flag, das gesetzt wird, wenn ein Interrupt
angefordert (ausgelöst) wird. Dies führt je nach Priorität
dazu, dass ein PEC-Transfer oder die ISR ausgeführt wird.

von P E C (Gast)


Lesenswert?

poiu schrieb:
> Im Internet und in meinen Unterlagen
> steht dazu leider auch nichts..

unter 'interrupt request flag' gibt es schon ein paar zig tausend 
Treffer im Netz.

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.