Übungsaufgaben zum I²C-Bus: Adressen, Peripheriebausteine und Oszillogramme
https://bildung.social/@oerinformatik/
https://oer-informatik.de/i2c-bus-uebungsaufgaben
I²C, I²C-Adresse, Portexpander, Temperatursensor, D/A-Umsetzer, Oszilloskop, Mikrocontroller, Übungsaufgaben, Prüfungsvorbereitung
tl/dr; (Bearbeitungszeit insgesamt 52 min, mehrere Aufgaben): Drei Übungsaufgaben zum I²C-Bus am Mikrocontroller: I²C-Adressen aus Datenblatt und Schalterstellung bestimmen, digitale Temperatursensoren auswerten und weitere Sensoren einbinden, eine Port-Erweiterung ansteuern und Austauschvarianten beurteilen sowie die Adresse eines D/A-Umsetzers aus einem Oszillogramm ablesen. Zu jeder Teilaufgabe lässt sich eine Beispiellösung einblenden [AI-Assisted]. (Zuletzt geändert am 13.11.2026)
Diese Übungsaufgaben gehören zum Artikel I²C: Ein Bus, zwei Leitungen, viele Sensoren. Wie Zahlen zwischen dual und hexadezimal umgerechnet werden, zeigt der Artikel Zahlensysteme und Codes. Aufgaben zu den anderen seriellen Schnittstellen findest Du unter Übungsaufgaben zu SPI und Übungsaufgaben zu UART und RS-232.
Hinweise zur Bearbeitung: Als EGS oder IEGS musst Du zur Teil-2- bzw. Abschlussprüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das sind Aufgabe 2.1, Aufgabe 2.2 und Aufgabe 2.3. Die Beispiellösungen sind immer gleich aufgebaut: Unter Geg. steht, was gegeben ist (bei mehreren Teilaufgaben gemeinsam in der ersten), unter Ges., was gesucht ist. Jede Formel steht zuerst in ihrer Grundform; Umstellungen sind Äquivalenzumformungen, deren Rechenschritt grau rechts neben dem senkrechten Strich steht (Division mit „:“). Einfache Formeln werden römisch nummeriert und ineinander eingesetzt („I in II“), längere Rechnungen nacheinander mit drei signifikanten Stellen. Ergebnisse stehen mit drei signifikanten Stellen doppelt unterstrichen, gerundete mit \approx; wurde mit gerundeten Zwischenergebnissen gerechnet, steht das Ergebnis ohne Rundung darunter. Rechne selbst ebenso mit Formel, eingesetzten Werten und Einheit. Hexadezimalzahlen sind mit 0x gekennzeichnet, I²C-Adressen sind 7-Bit-Adressen, wenn nicht ausdrücklich „Adressbyte“, „Schreibadresse“ oder „Leseadresse“ dasteht. Bei „nennen“ genügen Stichworte, bei „beschreiben“, „erläutern“ und „begründen“ antwortest Du in ganzen Sätzen. Schreib Deine Lösung zuerst vollständig auf, bevor Du die Beispiellösung einblendest.
Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?
Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.
Erstelle neue Übungsaufgaben zum Thema „I²C-Bus: Adressen,
Peripheriebausteine und Oszillogramme“.
Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.
Fachliche Grundlage:
- https://oer-informatik.de/i2c-bus
- https://oer-informatik.de/zahlensysteme-codes
- https://oer-informatik.de/mcu-aufbau
- Stilbeispiel: https://oer-informatik.de/i2c-bus-uebungsaufgaben
Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- I²C
- I²C-Adresse
- Portexpander
- Temperatursensor
- D/A-Umsetzer
- Oszilloskop
- Mikrocontroller
Kompetenzstufe: Kernkompetenz (alternativ: Basiskompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan
Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
danach frage.
Aufgabe 2.1: Temperaturerfassung im Kühllager erweitern (Kernkompetenz)
(ca. 19 min Bearbeitungszeit)
Die Steuerplatine eines Kühllagers hat einen Mikrocontroller (3,3 V) mit einem I²C-Bus; die beiden Busleitungen sind über je 4,7 kΩ an 3,3 V gelegt. Am Bus hängen ein EEPROM unter der Adresse 0x50, eine Echtzeituhr unter 0x68 und zwei Temperatursensoren vom Typ TSX-30. Aus dem Datenblatt des TSX-30:
- Adressbitbild
1 0 1 1 0 A1 A0; die Adresspins A1 und A0 sind auf der Platine über die DIP-Schalter S1 (A1) und S2 (A0) mit je einem 10-kΩ-Pull-up an 3,3 V geführt. Ein geschlossener Schalter verbindet den Pin mit GND. - Temperaturregister (Registeradresse 0x00): zwei Byte, die oberen 12 Bit sind die Temperatur im Zweierkomplement, 0,0625 °C je Stufe; Messbereich −40 °C bis +125 °C.
- Grenzwertregister (Registeradresse 0x03): gleiches Format; überschreitet die Temperatur den Grenzwert, schaltet der Open-Drain-Ausgang ALERT auf
LOW.
Sensor 1 steht mit S1 und S2 geschlossen, Sensor 2 mit S1 geschlossen und S2 offen.
a) Beschreibe die Eigenschaften des I²C-Busses: Leitungen, Rollen der Teilnehmer, Ruhepegel, Startbedingung und Quittierung. (4 Punkte)
Geg.: I²C-Bus mit 4,7-kΩ-Pull-ups an 3,3 V; EEPROM 0x50, Uhr 0x68, Sensoren TSX-30 (Bitbild 1 0 1 1 0 A1 A0, Schalter mit 10-kΩ-Pull-up, geschlossen = GND), Sensor 1: S1 und S2 zu, Sensor 2: S1 zu, S2 offen
Ges.: Eigenschaften des I²C-Busses
Je Merkmal 1 Punkt (vier von fünf genügen):
- Leitungen: serieller, synchroner Bus mit der Datenleitung SDA und der Taktleitung SCL, dazu gemeinsame Masse.
- Rollen: Der Mikrocontroller ist Controller (Master): Er erzeugt den Takt und beginnt jede Übertragung. Sensoren, EEPROM und Uhr sind Targets (Slaves) und antworten nur, wenn sie über ihre Adresse angesprochen werden.
- Ruhepegel: Beide Leitungen sind
HIGH, weil die Ausgänge Open-Drain sind und die Pull-up-Widerstände die Leitungen hochziehen. - Start: SDA fällt auf
LOW, während SCLHIGHist; danach folgt das Adressbyte. - Quittierung: Nach jedem Byte zieht der Empfänger SDA im neunten Takt auf
LOW(ACK); bleibt SDAHIGH, ist das ein NACK.
b) Ermittle die 7-Bit-Adresse sowie die Schreib- und die Leseadresse von Sensor 2. (3 Punkte)
Ges.: 7-Bit-Adresse, Schreib- und Leseadresse von Sensor 2
S1 geschlossen → A1 = 0, S2 offen → Pull-up → A0 = 1 (1 Punkt):
| A6 | A5 | A4 | A3 | A2 | A1 | A0 | R/W | hexadezimal | |
|---|---|---|---|---|---|---|---|---|---|
| 7-Bit-Adresse | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0x59 | |
| Schreibadresse | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0xB2 |
| Leseadresse | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0xB3 |
Adresse \underline{\underline{0\mathrm{x}59}}, Schreibadresse \underline{\underline{0\mathrm{xB}2}}, Leseadresse \underline{\underline{0\mathrm{xB}3}} (2 Punkte). Sensor 1 hat entsprechend 0x58.
c) Ermittle, wie viele Sensoren vom Typ TSX-30 die Platine höchstens mit jeweils eigener Adresse nutzen kann, und begründe Dein Ergebnis. (2 Punkte)
Ges.: Zahl der unabhängig betreibbaren TSX-30
Zwei variable Adressbits ergeben 2^2 = \underline{\underline{4}} Adressen (0x58 bis 0x5B) (1 Punkt). Keiner der übrigen Teilnehmer (0x50, 0x68) liegt in diesem Bereich, also können vier TSX-30 betrieben werden (1 Punkt).
d) Künftig sollen sechs Temperaturen erfasst werden. Der Hersteller bietet die Variante TSX-30B mit dem Adressbitbild 1 0 1 0 0 A1 A0 an, sonst baugleich. Beurteile, ob die Platine sechs Sensoren aufnehmen kann, und schlage eine Bestückung mit Adressen und Schalterstellungen vor. (5 Punkte)
Ges.: Bestückung für sechs Sensoren mit Adressen und Schalterstellungen
Mit TSX-30 allein sind nur vier Sensoren möglich (1 Punkt). Die Variante TSX-30B belegt 0x50 bis 0x53; 0x50 ist schon vom EEPROM belegt, frei sind 0x51 bis 0x53 (2 Punkte). Damit passen 4 + 3 = 7 Sensoren auf den Bus; sechs sind \underline{\underline{\text{möglich}}}. Vorschlag (2 Punkte):
| Sensor | Typ | S1 (A1) | S2 (A0) | Adresse |
|---|---|---|---|---|
| 1 | TSX-30 | zu | zu | 0x58 |
| 2 | TSX-30 | zu | offen | 0x59 |
| 3 | TSX-30 | offen | zu | 0x5A |
| 4 | TSX-30 | offen | offen | 0x5B |
| 5 | TSX-30B | zu | offen | 0x51 |
| 6 | TSX-30B | offen | zu | 0x52 |
Ein TSX-30B mit beiden Schaltern geschlossen (0x50) ist nicht zulässig. Im Programm müssen die neuen Adressen eingetragen werden; Register und Datenformat bleiben gleich.
e) Beschreibe, wie ein weiterer Sensor in den Stromlaufplan eingefügt und angeschlossen wird. (3 Punkte)
Ges.: Einfügen eines weiteren Sensors in den Stromlaufplan
Je Stichpunkt 1 Punkt:
- VDD an 3,3 V und GND an Masse, dazu ein 100-nF-Abblockkondensator nahe am Sensor.
- SDA und SCL parallel an die vorhandenen Busleitungen (SDA an SDA, SCL an SCL); keine zusätzlichen Busleitungen und keine weiteren Pull-ups an SDA und SCL, die 4,7-kΩ-Widerstände gelten für den ganzen Bus.
- A1 und A0 über einen eigenen DIP-Schalter mit 10-kΩ-Pull-ups auf eine freie Adresse einstellen; ALERT bei Bedarf an einen Eingang des Mikrocontrollers (Open-Drain, mit Pull-up).
f) Sensor 1 liefert aus dem Temperaturregister die Bytes 0x04 und 0x40, Sensor 2 die Bytes 0xFE und 0x80. Bestimme beide Temperaturen. Gib außerdem an, welche zwei Bytes in das Grenzwertregister geschrieben werden müssen, damit ALERT oberhalb von 8 °C schaltet. (4 Punkte)
Geg.: Sensor 1: 0x04 0x40; Sensor 2: 0xFE 0x80; 12 Bit Zweierkomplement, 0,0625 °C je Stufe; Grenzwert 8 °C
Ges.: Temperaturen \vartheta_1, \vartheta_2; Bytes für den Grenzwert
\begin{aligned} &\text{(I)} && \vartheta = N \cdot 0{,}0625\ ^\circ\mathrm{C} \end{aligned}
Sensor 1: 0\mathrm{x}0440, obere 12 Bit 0\mathrm{x}044 = 68 (1 Punkt):
\vartheta_1 = 68 \cdot 0{,}0625\ ^\circ\mathrm{C} = \underline{\underline{4{,}25\ ^\circ\mathrm{C}}}
Sensor 2: 0\mathrm{xFE}80, obere 12 Bit 0\mathrm{xFE}8 = 4072; das oberste Bit ist 1, also negativ: N = 4072 - 4096 = -24 (1 Punkt):
\vartheta_2 = -24 \cdot 0{,}0625\ ^\circ\mathrm{C} = \underline{\underline{-1{,}50\ ^\circ\mathrm{C}}}
Grenzwert: I nach N umstellen (2 Punkte):
\def\arraystretch{2.3} \begin{array}{rcl|l} \vartheta & = & N \cdot 0{,}0625\ ^\circ\mathrm{C} & \color{gray}{: 0{,}0625\ ^\circ\mathrm{C}} \\ N & = & \dfrac{8\ ^\circ\mathrm{C}}{0{,}0625\ ^\circ\mathrm{C}} = 128 = 0\mathrm{x}080 & \end{array}
Linksbündig in zwei Byte: 0\mathrm{x}080 um vier Bit nach links ergibt 0\mathrm{x}0800, also die Bytes \underline{\underline{0\mathrm{x}08\ \text{und}\ 0\mathrm{x}00}}.
Aufgabe 2.2: Statusanzeige mit Port-Erweiterung (Kernkompetenz)
(ca. 17 min Bearbeitungszeit)
Ein Prüfstand zeigt seinen Zustand mit acht Leuchtdioden an. Sie sitzen an einer Port-Erweiterung MCP23008; jede LED liegt mit Vorwiderstand zwischen einem Pin GP0 bis GP7 und GND (leuchtet bei HIGH). A2 ist mit GND verbunden, A1 und A0 mit VDD. Auszug aus dem Datenblatt:
| Pin | Name | Pin | Name | |
|---|---|---|---|---|
| 1 | SCL | 10 … 17 | GP0 … GP7 | |
| 2 | SDA | 18 | VDD | |
| 3, 4, 5 | A2, A1, A0 | 9 | VSS | |
| 6 | RESET (low-aktiv) | 8 | INT |
Adressbitbild 0 1 0 0 A2 A1 A0. Register: IODIR (0x00, Richtung je Pin, 1 = Eingang), GPIO (0x09, Pins lesen bzw. schreiben), OLAT (0x0A, Ausgangsspeicher).
a) Begründe anhand der Anschlüsse, über welche Schnittstelle der Baustein angebunden ist, und bestimme seine Schreibadresse. (3 Punkte)
Geg.: MCP23008, Anschlüsse SCL und SDA, Bitbild 0 1 0 0 A2 A1 A0, A2 = GND, A1 = A0 = VDD; LEDs high-aktiv; Register IODIR 0x00, GPIO 0x09, OLAT 0x0A
Ges.: Schnittstelle, Schreibadresse
Der Baustein hat die Anschlüsse SCL und SDA (Takt- und Datenleitung) und Adresspins, aber keine CS-Leitung: Er ist über \underline{\underline{\text{I}^2\text{C}}} angebunden (1 Punkt).
Adresse 0100\ 011_2 = 0\mathrm{x}23, Schreibadresse mit R/W = 0: 0100\ 0110_2 = \underline{\underline{0\mathrm{x}46}} (2 Punkte).
b) Das Programm sendet nacheinander die Bytefolgen 0x46 0x00 0x00 und 0x46 0x0A 0xA6. Erläutere die Bedeutung jedes Bytes. (4 Punkte)
Ges.: Bedeutung der Bytes
Je Zeile 0,5 Punkte:
| Byte | Bedeutung |
|---|---|
| 0x46 | Adressbyte: Adresse 0x23, Schreiben |
| 0x00 | Registeradresse IODIR |
| 0x00 | alle acht Pins als Ausgänge (Bit = 0) |
| 0x46 | Adressbyte: Adresse 0x23, Schreiben |
| 0x0A | Registeradresse OLAT (Ausgangsspeicher) |
| 0xA6 | Ausgangszustände GP7 … GP0 = 1010 0110 |
Die beiden Bytefolgen sind zwei getrennte Übertragungen mit je eigener Start- und Stoppbedingung (1 Punkt).
c) Bestimme, welche LEDs nach der zweiten Bytefolge leuchten. (2 Punkte)
Ges.: leuchtende LEDs nach 0xA6
0\mathrm{xA}6 = 1010\ 0110_2, Bit 7 gehört zu GP7 (1 Punkt). Die LEDs sind high-aktiv; es leuchten die LEDs an \underline{\underline{\text{GP7, GP5, GP2 und GP1}}} (1 Punkt).
d) Nenne in der richtigen Reihenfolge alle Aktivitäten auf dem Bus während der zweiten Bytefolge und gib jeweils an, ob Mikrocontroller oder MCP23008 sie ausführt. (3 Punkte)
Ges.: Aktivitäten auf dem Bus während der zweiten Bytefolge
Reihenfolge 1 Punkt, Zuordnung 2 Punkte:
- Mikrocontroller: Startbedingung (SDA fällt bei SCL
HIGH). - Mikrocontroller: Adressbyte 0x46 (Adresse 0x23 + W), Takt auf SCL.
- MCP23008: ACK.
- Mikrocontroller: Registeradresse 0x0A.
- MCP23008: ACK.
- Mikrocontroller: Datenbyte 0xA6.
- MCP23008: ACK; die Ausgänge übernehmen den Wert.
- Mikrocontroller: Stoppbedingung (SDA steigt bei SCL
HIGH).
e) Gib das Datenbyte an, bei dem nur die LEDs an GP0, GP3 und GP4 leuchten. (1 Punkt)
Ges.: Datenbyte für GP0, GP3, GP4
0001\ 1001_2 = \underline{\underline{0\mathrm{x}19}} (1 Punkt).
f) Der MCP23008 ist zurzeit nicht lieferbar. Beurteile hard- und softwareseitig, ob er durch einen MCP23S08 oder durch einen PCF8574 ersetzt werden kann. (5 Punkte)
Ges.: Austauschbarkeit gegen MCP23S08 und PCF8574
MCP23S08 (2 Punkte): gleiche Funktion und gleiche Register, aber SPI statt I²C. Hardware: Anschlüsse SCK, SI, SO und CS statt SCL und SDA, andere Pinbelegung – die Platine muss geändert und eine CS-Leitung am Mikrocontroller vorgesehen werden. Software: Ansteuerung über die SPI-Bibliothek, Registeradressen bleiben. \underline{\underline{\text{Nicht direkt austauschbar}}}.
PCF8574 (3 Punkte): Software: Gleiches Bitbild 0 1 0 0 A2 A1 A0, die Adresse 0x23 bleibt. Der Baustein hat aber keine Register: Statt Registeradresse und Daten wird nur ein Datenbyte gesendet. Hardware: andere Pinbelegung (16 statt 18 Pins), und die Ausgänge sind quasi-bidirektional: Bei 1 liefern sie nur etwa 0,1 mA, die high-aktiven LEDs würden nicht leuchten. Die LEDs müssten gegen VDD geschaltet (low-aktiv) und die Datenbytes invertiert werden. \underline{\underline{\text{Nur mit geänderter Platine und Software}}}.
Aufgabe 2.3: Referenzspannung über I²C einstellen (Kernkompetenz)
(ca. 16 min Bearbeitungszeit)
Ein Prüfadapter erzeugt die Schaltschwelle eines Komparators mit einem 12-Bit-D/A-Umsetzer MCP4725, der mit U_\mathrm{DD} = 5{,}00\ \mathrm{V} versorgt wird; seine Ausgangsspannung ist U_\mathrm{A} = U_\mathrm{DD} \cdot D / 4096. Adressbitbild laut Datenblatt 1 1 0 0 A2 A1 A0; A2 und A1 sind bei der eingesetzten Variante werkseitig 0, A0 ist ein Anschlusspin. Im schnellen Schreibmodus folgen auf das Adressbyte zwei Datenbytes: im ersten vier Steuerbits 0000 und D11 bis D8, im zweiten D7 bis D0. Beim Einschalten des Prüfadapters nimmst Du SCL und SDA auf:
a) Beschreibe, wie Du das Oszilloskop für diese Aufnahme einstellst (Anschluss, Zeitbasis, Trigger). (3 Punkte)
Geg.: MCP4725, U_\mathrm{DD} = 5{,}00\ \mathrm{V}, Bitbild 1 1 0 0 A2 A1 A0 mit A2 = A1 = 0; Oszillogramm 2 V/div, 10 µs/div
Ges.: Einstellung des Oszilloskops
Je Stichpunkt 1 Punkt:
- Anschluss: Kanal 1 an SCL, Kanal 2 an SDA, Masse beider Tastköpfe an GND; DC-Kopplung, 2 V/div.
- Zeitbasis: 10 µs/div, damit Start und neun Takte (90 µs bei 100 kHz) auf den Schirm passen.
- Trigger: Quelle Kanal 1, fallende Flanke, Pegel etwa 2,5 V, Modus „Single“ (oder „Normal“), Triggerpunkt etwas nach rechts versetzt, damit die Startbedingung sichtbar ist.
b) Lies aus dem Oszillogramm die 7-Bit-Adresse, das R/W-Bit und die Quittung ab und gib das Adressbyte hexadezimal an. (4 Punkte)
Ges.: Adresse, R/W-Bit, Quittung, Adressbyte
Bei jedem SCL-HIGH den SDA-Pegel ablesen (2 Punkte): 1\,1\,0\,0\,0\,0\,1, dann 0, dann 0.
- 7-Bit-Adresse 1100\ 001_2 = \underline{\underline{0\mathrm{x}61}}
- R/W-Bit 0: \underline{\underline{\text{Schreiben}}}
- 9. Takt SDA
LOW: \underline{\underline{\text{ACK}}}, der Baustein hat geantwortet - Adressbyte 1100\ 0010_2 = \underline{\underline{0\mathrm{xC}2}}
(2 Punkte)
c) Bestimme, wie der Pin A0 beschaltet ist. (1 Punkt)
Ges.: Beschaltung von A0
Das niederwertigste Adressbit ist 1, also liegt A0 \underline{\underline{\text{an VDD}}} (1 Punkt).
d) Auf das Adressbyte folgen die Datenbytes 0x09 und 0xC4. Berechne die Ausgangsspannung. (4 Punkte)
Geg.: Datenbytes 0x09 und 0xC4
Ges.: Ausgangsspannung U_\mathrm{A}
Steuerbits 0000, D11 … D8 = 1001_2, D7 … D0 = 0\mathrm{xC}4; zusammen D = 0\mathrm{x}9\mathrm{C}4 = 2500 (2 Punkte):
U_\mathrm{A} = U_\mathrm{DD} \cdot \frac{D}{4096} = 5{,}00\ \mathrm{V} \cdot \frac{2500}{4096} \approx \underline{\underline{3{,}05\ \mathrm{V}}}
(2 Punkte)
e) Die Schwelle soll auf 1,20 V gesenkt werden. Berechne den Zahlenwert D und gib die beiden Datenbytes an. (3 Punkte)
Geg.: U_\mathrm{A} = 1{,}20\ \mathrm{V}
Ges.: Zahlenwert D, Datenbytes
Grundform nach D umstellen (2 Punkte):
\def\arraystretch{2.3} \begin{array}{rcl|l} U_\mathrm{A} & = & U_\mathrm{DD} \cdot \dfrac{D}{4096} & \color{gray}{\cdot 4096 \quad : U_\mathrm{DD}} \\ D & = & \dfrac{U_\mathrm{A} \cdot 4096}{U_\mathrm{DD}} = \dfrac{1{,}20\ \mathrm{V} \cdot 4096}{5{,}00\ \mathrm{V}} = 983{,}04 & \\ D & \approx & \underline{\underline{983}} & \end{array}
983 = 0\mathrm{x}3\mathrm{D}7: Datenbytes \underline{\underline{0\mathrm{x}03\ \text{und}\ 0\mathrm{xD}7}} (1 Punkt). Damit stellt sich U_\mathrm{A} = 5{,}00\ \mathrm{V} \cdot 983/4096 \approx 1{,}20\ \mathrm{V} ein.
f) Für eine zweite Schwelle soll ein weiterer MCP4725 derselben Variante an denselben Bus. Beurteile, ob das möglich ist und wie er angeschlossen wird. (2 Punkte)
Ges.: zweiter MCP4725 derselben Variante
Bei dieser Variante ist nur A0 einstellbar; es gibt also zwei Adressen, 0x60 und 0x61 (1 Punkt). Der vorhandene Baustein belegt 0x61, ein zweiter ist \underline{\underline{\text{möglich}}}, wenn sein A0 an GND liegt (0x60). Er wird parallel an SDA, SCL, VDD und GND angeschlossen, im Programm wird die Adresse 0x60 verwendet (1 Punkt). Ein dritter Baustein bräuchte eine Variante mit anderen werkseitigen Adressbits.
Links und weitere Informationen
zum Nachlesen: I²C: Ein Bus, zwei Leitungen, viele Sensoren
weitere Übungsaufgaben zu seriellen Schnittstellen: Übungsaufgaben zu SPI, Übungsaufgaben zu UART und RS-232
zum Rechnen mit Dual- und Hexadezimalzahlen: Zahlensysteme und Codes
zum Aufbau des Mikrocontrollers: Aufbau eines Mikrocontrollers
als Nachschlagewerk: NXP: UM10204 – I²C-bus specification and user manual
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Übungsaufgaben zum I²C-Bus: Adressen, Peripheriebausteine und Oszillogramme” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/i2c-bus-uebungsaufgaben veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/mcu/mcu-schnittstellen. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 13.11.2026.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]
