Peripheral Event Controller?

Gast #2746840
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...
Gast #2746911
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.
Gast #2746989
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.
(Firma: matzetronics) #2747148
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.
Gast #2747189
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...
Gast #2747227
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.
Gast #2747230
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.
Gast #2747252
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren