I²C-Themenklausur
← Startseite · Kap. 4 Serielle Schnittstelle · Lösungen zur I²C-Themenklausur
Dauer: 75 Minuten · Hilfsmittel: 1 doppelseitig handbeschriebenes DIN-A4-Blatt, kein Taschenrechner · Gesamt: 80 Punkte (+ 0 P Zusatzfrage) Themenklausur ausschließlich zu I²C / TWI, aufgebaut nach Muster der Klausur SS 2020 [Q: KL20 Aufg. 6]. Alle Aufgaben beziehen sich nur auf den in Kap. 4 behandelten Stoff. Erst versuchen, dann Lösungen prüfen.
| Aufg. | Thema | Punkte | Empf. Zeit |
|---|---|---|---|
| 1 | I²C-Grundlagen (Ankreuzen) | 15 | 12 min |
| 2 | Start/Stop, Gültigkeit & ACK/NACK | 12 | 11 min |
| 3 | Adressierung & Adressbyte | 11 | 10 min |
| 4 | Protokoll- & Timing-Analyse | 16 | 16 min |
| 5 | Arbitrierung (Multi-Master) | 10 | 9 min |
| 6 | TWI am SAM3X (Register & Ablauf) | 10 | 9 min |
| 7 | Debugging & Praxis | 6 | 6 min |
| Z | Zusatzfrage (außerhalb des Kursstoffs) | 0 | 2 min |
Hinweis zum Kursbezug: Clock Stretching (Taktdehnung) kommt im Skript und in den Altklausuren nicht vor. Es ist deshalb bewusst als unbepunktete Zusatzfrage Z ausgelagert und nicht Teil der 80 Wertungspunkte. Der Repeated Start (Sr) wird ebenfalls nicht behandelt; interne Registeradressen laufen am SAM3X über
IADRSZimTWI_MMR.
Aufgabe 1 - I²C-Grundlagen (15 P)
Kreuzen Sie an, welche Aussagen richtig sind. Kap. 4
1.1 Bus & Leitungen (3 P)
- a) I²C nutzt zwei Leitungen: SCL (Takt) und SDA (Daten); Atmel nennt sie TWCK und TWD.
- b) SDA ist bidirektional (Halbduplex), SCL trägt den Takt.
- c) I²C überträgt die Datenbits mit dem LSB zuerst.
1.2 Elektrik (3 P)
- a) Die Teilnehmer sind Open-Drain und können die Leitung nur aktiv auf Low ziehen.
- b) Ohne Pull-Up-Widerstände stellt sich der High-Pegel trotzdem zuverlässig ein.
- c) Im Ruhezustand liegen SDA und SCL auf High (idle high).
1.3 Topologie (3 P)
- a) Über die 7-Bit-Adresse lassen sich laut Skript bis zu 127 Slaves adressieren.
- b) I²C erlaubt mehrere Master am selben Bus (Multi-Master).
- c) Der Takt wird von einem zentralen, busweiten Taktgeber fest vorgegeben.
1.4 Charakter der Schnittstelle (3 P)
- a) I²C ist eine synchrone Schnittstelle.
- b) I²C verwendet positive Logik (High = 1, Low = 0).
- c) I²C benötigt wie RS-232 ein Startbit zur Baudratensynchronisation.
1.5 Modi & Laborhardware (3 P)
- a) Der Ultra Fast Mode (5 MBit/s) ist unidirektional (nur Schreiben).
- b) Der AT91 besitzt eine eigene I²C/TWI-Einheit.
- c) Der SAM3X stellt 2 TWI-Einheiten mit Standard- und Fast-Mode bereit.
Aufgabe 2 - Start/Stop, Gültigkeit & ACK/NACK (12 P)
2.1 (3 P) Beschreiben Sie die Start- und die Stop-Bedingung jeweils exakt über die SDA-Flanke und den SCL-Pegel.
2.2 (3 P) Formulieren Sie die Gültigkeitsregel für SDA während der Datenübertragung und erklären Sie, warum sich Start/Stop dadurch überhaupt von normalen Datenbits unterscheiden lassen.
2.3 (2 P) Welchen Pegel hat ein ACK, welchen ein NACK? Wer erzeugt das ACK beim Schreibzugriff (Master → Slave)?
2.4 (2 P) Was bedeutet das R/W-Bit mit den Werten 0 und 1, und an welcher Stelle des ersten Bytes steht es?
2.5 (2 P) In welcher Reihenfolge werden die 8 Datenbits eines Bytes übertragen (MSB oder LSB zuerst)? Nennen Sie den Unterschied zu den Nutzdaten eines UART.
Aufgabe 3 - Adressierung & Adressbyte (11 P)
Ein Temperatursensor hat die 7-Bit-Adresse 0x4B.
3.1 (3 P) Welches erste Byte legt der Master für einen Lesezugriff auf den Bus? Geben Sie es binär und hexadezimal an.
3.2 (3 P) Welches erste Byte ergibt sich für einen Schreibzugriff (binär und hex)?
3.3 (2 P) Ein Kollege sendet für den Schreibzugriff einfach 0x4B. Warum ist das falsch, und welchen Slave würde dieses Byte tatsächlich ansprechen?
3.4 (3 P) Wie viele Slaves lassen sich laut Skript mit 7-Bit-Adressierung betreiben? Erläutern Sie kurz, wie diese Zahl zustande kommt.
Aufgabe 4 - Protokoll- & Timing-Analyse (16 P)
4.1 (4 P) Ein Logikanalysator zeigt nach der Start-Bedingung die von SCL getakteten SDA-Pegel (MSB zuerst): 1 0 0 1 0 1 0 und danach eine 1. Anschließend liegt SDA im nächsten Takt auf 0.
(a) Wie lautet die 7-Bit-Slave-Adresse (binär und hex)?
(b) Handelt es sich um einen Lese- oder Schreibzugriff?
(c) Was bedeutet die vom Slave getriebene 0 danach?
4.2 (6 P) Vervollständigen Sie die Bus-Sequenz für das Schreiben des Bytes 0xA5 an den Slave mit 7-Bit-Adresse 0x2C. Tragen Sie in der Tabelle die fehlenden Felder ein.
| Schritt | Ereignis | Bits / Pegel (SDA bei SCL = High) |
|---|---|---|
| 1 | START | SDA fällt, während SCL = High |
| 2 | Adressbits (6..0) | ? ? ? ? ? ? ? |
| 3 | R/W-Bit | ? |
| 4 | ACK (vom Slave) | ? |
| 5 | Datenbits (7..0) | ? ? ? ? ? ? ? ? |
| 6 | ACK (vom Slave) | ? |
| 7 | STOP | ? |
4.3 (4 P) Der Master schreibt im Standard Mode (100 kBit/s) ein Adressbyte gefolgt von 2 Datenbytes. Wie viele SCL-Taktimpulse fallen für diese drei Bytes an, und wie lange dauern sie ungefähr? Zeigen Sie den Rechenweg.
4.4 (2 P) Nennen Sie die fünf Geschwindigkeits-Modi mit ihren Datenraten.
Aufgabe 5 - Arbitrierung (Multi-Master) (10 P)
5.1 (2 P) Wann darf ein Master eine Start-Bedingung erzeugen, und warum ist kein zentraler Taktgeber nötig?
5.2 (4 P) Zwei Master starten gleichzeitig. Master A adressiert 0x62, Master B 0x66 (beide 7-Bit, Schreibzugriff). Wer gewinnt die Arbitrierung, und an welcher Bitstelle entscheidet es sich? Zeigen Sie den Bitvergleich.
5.3 (4 P) Beide Master adressieren nun denselben Slave 0x62 (Write). Danach sendet A das Datenbyte 0x30, B das Datenbyte 0x20. Wer gewinnt jetzt, und was sagt dieser Fall über den Ablauf der Arbitrierung aus?
Aufgabe 6 - TWI am SAM3X (10 P)
6.1 (3 P) Ordnen Sie zu: In welchem Register stehen (a) die Slave-Adresse und die Richtung, (b) die Busgeschwindigkeit, (c) das zu sendende Byte? Nennen Sie außerdem den Wert von MREAD für einen Lesezugriff.
6.2 (5 P) Bringen Sie die Schritte eines Master-Transmitter-Zugriffs (ein Byte senden) in die richtige Reihenfolge:
(A) auf TXCOMP warten
(B) Byte in TWI_THR schreiben
(C) Start setzen, Adresse + Write senden
(D) STOP im TWI_CR setzen (letztes Byte)
(E) auf TXRDY warten
6.3 (2 P) Worin unterscheiden sich die Statusbits TXRDY und TXCOMP?
Aufgabe 7 - Debugging & Praxis (6 P)
7.1 (3 P) Der Master sendet Start + Adresse, aber an der ACK-Stelle bleibt SDA High (NACK). Nennen Sie zwei plausible Ursachen.
7.2 (3 P) Im Leerlauf messen Sie SDA und SCL dauerhaft auf Low, es kommt keine Kommunikation zustande. Welchen Pegel erwarten Sie im gesunden Leerlauf, und was sind zwei mögliche Ursachen für den Fehler?
Zusatzfrage Z - Clock Stretching (0 P, außerhalb des Kursstoffs)
Achtung: Dieses Thema ist nicht Teil des Kursmaterials (siehe Hinweis oben). Die Frage dient nur der Vollständigkeit und wird nicht gewertet.
Z.1 Erklären Sie in ein bis zwei Sätzen, was man beim I²C unter Clock Stretching versteht und welcher Busteilnehmer es einsetzt.