Ü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.

Wortwolke mit den Fachbegriffen der Übungsaufgaben zum I²C-Bus (mit KI erstellt)

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 SCL HIGH ist; danach folgt das Adressbyte.
  • Quittierung: Nach jedem Byte zieht der Empfänger SDA im neunten Takt auf LOW (ACK); bleibt SDA HIGH, 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):

Adresse von Sensor 2 (Beispiellösung)
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):

Bestückung mit sechs Sensoren (Beispiellösung)
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:

Anschlüsse des MCP23008 (Auszug)
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:

Bedeutung der gesendeten Bytes (Beispiellösung)
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:

  1. Mikrocontroller: Startbedingung (SDA fällt bei SCL HIGH).
  2. Mikrocontroller: Adressbyte 0x46 (Adresse 0x23 + W), Takt auf SCL.
  3. MCP23008: ACK.
  4. Mikrocontroller: Registeradresse 0x0A.
  5. MCP23008: ACK.
  6. Mikrocontroller: Datenbyte 0xA6.
  7. MCP23008: ACK; die Ausgänge übernehmen den Wert.
  8. 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:

Oszillogramm am Prüfadapter: Kanal 1 SCL, Kanal 2 SDA, 2 V/div und 10 µs/div, Trigger auf die fallende SCL-Flanke; zu sehen sind die Startbedingung und die ersten neun Takte eines Telegramms (mit KI erstellt)

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.


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]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: