Probeklausur 5
Aufgaben. Lösungen: Probeklausur 5 - Lösungen.
- Dauer: 90 Minuten
- Hilfsmittel: 1 doppelseitig handbeschriebenes DIN-A4-Blatt, kein Taschenrechner
- Gesamt: 100 Punkte
- Schwerpunkt: Diagramme lesen, Code schreiben und Themen, die in den Probeklausuren 1-4 noch nicht vorkamen (Systemstart, Thumb, APCS, Power Management, SPI, DMA/PDC, Watchdog).
| Nr. | Thema | Punkte |
|---|---|---|
| 1 | Systemstart, Thumb & APCS | 16 |
| 2 | Power Management | 12 |
| 3 | SPI & DMA/PDC | 14 |
| 4 | Timer-Diagramm (PWM) | 18 |
| 5 | Watchdog & Registerzugriff (Code) | 12 |
| 6 | Leitungscode-Diagramm (NRZI) | 12 |
| 7 | Regelung | 16 |
Aufgabe 1 - Systemstart, Thumb & APCS (16 P) Kap. 11, Kap. 1
1.1 (5 P) Beim Start (Reset) beginnt der ARM7-Prozessor die Ausführung bei Adresse 0x00000000. Bringen Sie die folgenden Boot-Schritte in die richtige Reihenfolge und begründen Sie kurz, warum der RAM über Adresse 0 eingeblendet (remapped) wird:
Stacks je Modus setzen · Vektortabelle Flash nach RAM kopieren · Remapping (RAM über Adresse 0) · Interrupt-Controller initialisieren · Sprung nach main() · BSS/Variablen initialisieren.
1.2 (4 P) Ein Programm belegt im 32-Bit-ARM-Code 8 KByte. Wie groß ist es überschlägig im Thumb-Code? Nennen Sie einen Vorteil und einen Nachteil von Thumb.
1.3 (4 P) Wie übergibt der ARM Procedure Call Standard (APCS) Funktionsparameter und Rückgabewerte?
1.4 (3 P) Nennen Sie zwei Fälle, in denen Assembler (statt C) sinnvoll oder nötig ist.
Aufgabe 2 - Power Management (12 P) Kap. 2
2.1 (3 P) Warum lässt sich der Takt jedes Peripheriemoduls beim PMC einzeln ab- und zuschalten? Welche physikalische Größe spart man damit?
2.2 (4 P) Schreiben Sie die C-Zeile, um beim SAM3X den Peripherietakt von PIOB (ID_PIOB = 12) über den PMC einzuschalten. Warum muss das vor dem ersten Zugriff auf die PIOB-Register geschehen?
2.3 (5 P) Vergleichen Sie zwei Energiesparzustände: Sleep/Wait und Backup. Nennen Sie je einen Vor- und Nachteil (Stromverbrauch vs. Aufwachzeit/Zustandserhalt).
Aufgabe 3 - SPI & DMA/PDC (14 P) Kap. 4
3.1 (4 P) Nennen Sie die vier Leitungen einer SPI-Verbindung und zwei Unterschiede zu I²C.
3.2 (4 P) Eine SPI-Verbindung läuft mit SCK = 2 MHz. Wie lange dauert (netto, ohne Pausen) die Übertragung von 8 Byte?
3.3 (6 P) Ergänzen Sie den folgenden Code, um len Byte aus buf per PDC (DMA) über USART1 zu senden, und erklären Sie, was bei Transferende passiert.
uint8_t buf[len];
// ... buf füllen ...
USART1->US_TPR = ______; // (a)
USART1->US_TCR = ______; // (b)
USART1->US_PTCR = ______; // (c) PDC-Sender aktivieren
Aufgabe 4 - Timer-Diagramm (PWM) (18 P) Kap. 5
Am Ausgang TIOA eines 16-Bit-Timers wird das folgende Signal gemessen. System: f_CLK = 50 MHz, Prescaler = 8.
4.1 (3 P) Wie groß ist die Periodendauer T (aus dem Diagramm ablesen)? 4.2 (2 P) Wie groß ist die Frequenz f? 4.3 (3 P) Wie groß sind High-Zeit und Tastverhältnis? 4.4 (4 P) Berechnen Sie den Wert für RC (voller Zählumfang der Periode). 4.5 (3 P) Berechnen Sie den Wert für RA (TIOA-Umschaltpunkt für das Tastverhältnis). 4.6 (3 P) Wie lange dauert ein einzelner Zählschritt (in ns)?
Aufgabe 5 - Watchdog & Registerzugriff (Code) (12 P) Kap. 1
5.1 (3 P) Wozu dient ein Watchdog-Timer, und was passiert, wenn das Programm ihn nicht regelmäßig zurücksetzt („füttert")?
5.2 (4 P) Ein Board startet sich im Betrieb alle paar Sekunden von selbst neu. Der Watchdog ist aktiv, seine Ablaufzeit beträgt 2 s; eine Berechnung in der Hauptschleife dauert gelegentlich länger. Woran liegt der Reset, und wie behebt man ihn (zwei Möglichkeiten)?
5.3 (5 P) Die PIOB-Basisadresse ist 0x400E1000, das Register PIO_SODR liegt bei Offset 0x30. (a) Welche absolute Adresse hat PIO_SODR? (b) Schreiben Sie eine C-Zeile, die damit PB27 auf High setzt (per Zeiger-Cast).
Aufgabe 6 - Leitungscode-Diagramm (NRZI) (12 P) Kap. 10
Das folgende Signal ist NRZI-codiert: 1 = Pegelwechsel am Bitanfang, 0 = kein Wechsel. Der Startpegel (vor dem ersten Bit) ist Low. Die Bitgrenzen sind gestrichelt.
6.1 (6 P) Welche 7-Bit-Folge ist codiert? 6.2 (3 P) Nennen Sie einen Vorteil von NRZI gegenüber Manchester. 6.3 (3 P) Warum bereitet eine lange Folge von Nullen bei NRZI ein Synchronisationsproblem, und mit welcher Maßnahme begegnet man dem?
Aufgabe 7 - Regelung (16 P) Kap. 8
7.1 (4 P) Erklären Sie den Unterschied zwischen Steuerung (offener Wirkungsablauf) und Regelung (geschlossener Kreis).
7.2 (4 P) Ein Heizungs-Zweipunktregler schaltet um 20 °C mit einer Hysterese von ±1 °C. Beschreiben Sie das Schaltverhalten und begründen Sie, wozu die Hysterese dient.
7.3 (5 P) Nennen Sie die drei Anteile eines PID-Reglers und was jeder bewirkt. Was versteht man unter Integral-Windup?
7.4 (3 P) Nennen Sie eine Gegenmaßnahme gegen Integral-Windup.