دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: نویسندگان: Winfried Gehrke, Marco Winzker سری: ISBN (شابک) : 9783662639542, 9783662639535 ناشر: Springer Berlin Heidelberg سال نشر: 2023 تعداد صفحات: 701 زبان: German فرمت فایل : EPUB (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 33 Mb
در صورت تبدیل فایل کتاب Digitaltechnik: Grundlagen, VHDL, FPGAs, Mikrocontroller به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب فناوری دیجیتال: اصول اولیه، VHDL، FPGA، میکروکنترلرها نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Vorwort Inhaltsverzeichnis Abkürzungsverzeichnis 1 Einführung 1.1 Arbeitsweise digitaler Schaltungen 1.1.1 Darstellung von Informationen 1.1.2 Logik-Pegel und Logik-Zustand 1.1.3 Verarbeitung von Informationen 1.1.4 Beispiel: Einfacher Grafikcontroller 1.1.5 Beispiel: Zähler im Grafikcontroller 1.2 Technische Realisierung digitaler Schaltungen 1.2.1 Logikbausteine 1.2.2 Kundenspezifische Integrierte Schaltung 1.2.3 Standardbauelemente 1.2.4 Programmierbare Schaltung 1.2.5 Mikrocontroller 1.3 Digitale und analoge Informationen 1.3.1 Darstellung von Informationen 1.3.2 Vor- und Nachteile der Darstellungen 1.3.3 Wert- und zeitdiskret 1.4 Übungsaufgaben 2 Digitale Codierung von Informationen 2.1 Grundlagen 2.2 Vorzeichenlose Zahlen 2.2.1 Stellenwertsysteme 2.2.2 Darstellung vorzeichenloser Zahlen in der Digitaltechnik 2.2.3 Umwandlung zwischen Zahlensystemen 2.2.4 Beispiele zur Umwandlung zwischen Zahlensystemen 2.2.5 Wertebereiche und Wortbreite 2.2.6 Zahlendarstellung mit begrenzter Wortbreite 2.2.7 Binäre vorzeichenlose Addition 2.2.8 Binäre vorzeichenlose Subtraktion 2.2.9 Binäre vorzeichenlose Multiplikation und Division 2.3 Vorzeichenbehaftete Zahlen 2.3.1 Vorzeichen-Betrag-Darstellung 2.3.2 Zweierkomplement-Darstellung 2.3.2.1 Negieren einer Zweierkomplement-Zahl 2.3.2.2 Vorzeichenerweiterung 2.3.3 Addition und Subtraktion in Zweierkomplement-Darstellung 2.3.4 Multiplikation und Division in Zweierkomplement-Darstellung 2.3.5 Bias-Darstellung 2.3.6 Darstellbare Zahlenbereiche 2.4 Reelle Zahlen 2.4.1 Festkomma-Darstellung 2.4.2 Gleitkomma-Darstellung 2.4.3 Reelle Zahlen in digitalen Systemen 2.5 Codes 2.5.1 BCD-Code 2.5.2 Gray-Code 2.5.3 1-aus-N-Code 2.5.4 ASCII-Code 2.5.5 7-Segment-Code 2.6 Übungsaufgaben 3 Einführung in VHDL 3.1 Designmethodik im Überblick 3.2 Grundstruktur eines VHDL-Moduls 3.2.1 Bibliotheken 3.2.2 Entity und Architecture 3.2.3 Bezeichner 3.3 Grundlegende Datentypen 3.3.1 Integer 3.3.2 Std_logic 3.3.3 Std_logic_vector 3.3.4 Signed und Unsigned 3.3.5 Konstanten 3.3.6 Umwandlung zwischen Datentypen 3.3.7 Datentyp Bit 3.4 Operatoren 3.5 Signale 3.5.1 Definition und Verwendung von Signalen 3.5.2 Signalzuweisungen 3.6 Prozesse 3.6.1 Syntaktischer Aufbau von Prozessen 3.6.2 Ausführung von Prozessen 3.6.3 Variablen 3.6.4 Signalzuweisungen in Prozessen 3.6.5 Wichtige Sprachkonstrukte in VHDL-Prozessen 3.6.5.1 If-Anweisung 3.6.5.2 Case-Anweisung 3.6.5.3 For-Schleife 3.6.5.4 While-Schleife 3.7 Hierarchie 3.8 Übungsaufgaben 4 Kombinatorische Schaltungen 4.1 Schaltalgebra 4.1.1 Schaltfunktion und Schaltzeichen 4.1.2 Funktionstabelle 4.1.3 Funktionstabelle mit Don’t-Care 4.2 Funktionen der Schaltalgebra 4.2.1 UND-Verknüpfung 4.2.2 ODER-Verknüpfung 4.2.3 Negation, Inverter 4.2.4 NAND-Verknüpfung 4.2.5 NOR-Verknüpfung 4.2.6 XOR-Verknüpfung 4.2.7 XNOR-Verknüpfung 4.2.8 Weitere Verknüpfungen 4.2.9 Logikstufen 4.2.10 US-amerikanische Logiksymbole 4.3 Rechenregeln der Schaltalgebra 4.3.1 Vorrangregeln 4.3.2 Rechenregeln 4.3.2.1 Vereinfachungsregeln für eine Variable 4.3.2.2 Kommutativgesetz 4.3.2.3 Assoziativgesetz 4.3.2.4 Distributivgesetz 4.3.2.5 De Morgansche Gesetze 4.3.2.6 Shannonsches Gesetz 4.4 Schaltungsentwurf durch Minimieren 4.4.1 Minterme 4.4.2 Schaltungsentwurf mit Mintermen 4.4.3 Minimierung von Mintermen 4.4.4 Maxterme 4.4.5 Schaltungsentwurf mit Maxtermen 4.4.6 Minimierung von Maxtermen 4.5 Schaltungsminimierung mit Karnaugh-Diagramm 4.5.1 Grundsätzliche Vorgehensweise 4.5.2 Karnaugh-Diagramm für zwei Variablen 4.5.3 Karnaugh-Diagramm für drei Variablen 4.5.4 Karnaugh-Diagramm für vier Variablen 4.5.5 Auswahl der erforderlichen Terme 4.5.6 Ermittlung der minimierten Funktion 4.5.7 Karnaugh-Diagramm mit Don’t-Care 4.5.8 Karnaugh-Diagramm für mehr als vier Variablen 4.5.9 Karnaugh-Diagramm der konjunktiven Normalform 4.6 VHDL für kombinatorische Schaltungen 4.6.1 Beschreibung logischer Verknüpfungen 4.6.2 Beschreibung der Funktion 4.7 Übungsaufgaben 5 Sequenzielle Schaltungen 5.1 Speicherelemente 5.1.1 RS-Flip-Flop 5.1.1.1 Funktion 5.1.1.2 Aufbau 5.1.1.3 Herleitung des Aufbaus 5.1.1.4 Verwendung 5.1.2 Taktsteuerung von Flip-Flops 5.1.2.1 Takt 5.1.2.2 Taktpegelsteuerung 5.1.2.3 Taktflankensteuerung 5.1.3 D-Flip-Flop 5.1.3.1 Funktion 5.1.3.2 Reales Zeitverhalten 5.1.3.3 Aufbau 5.1.4 Erweiterung des D-Flip-Flops 5.1.4.1 Asynchroner Reset und Set 5.1.4.2 Synchroner Reset und Set 5.1.4.3 Enable 5.1.4.4 Kompakte Darstellung von D-Flip-Flops 5.1.5 Weitere Flip-Flops 5.1.5.1 JK-Flip-Flop 5.1.5.2 Toggle-Flip-Flop 5.1.6 Kippstufen 5.1.6.1 Monostabile Kippstufe 5.1.6.2 Astabile Kippstufe 5.2 Endliche Automaten 5.2.1 Automatentheorie 5.2.1.1 Mealy-Automat 5.2.1.2 Moore-Automat 5.2.1.3 Medwedew-Automat 5.2.2 Beispiel für einen Automaten 5.2.2.1 Schaltungsanalyse 5.2.2.2 Zustände und Zustandsfolgetabelle 5.2.2.3 Funktion 5.2.3 Entwurf von Automaten 5.2.3.1 Spezifikation des Verhaltens 5.2.3.2 Aufstellen der Zustandsfolgetabelle 5.2.3.3 Minimierung der Zustände 5.2.3.4 Codierung der Zustände 5.2.3.5 Aufstellen der Ansteuerungstabelle 5.2.3.6 Logikminimierung 5.2.4 Codierung von Zuständen 5.2.4.1 Codierung mit minimaler Codewortlänge 5.2.4.2 Codierung mit redundanter Codewortlänge 5.2.4.3 Optimierte Codierung 5.2.4.4 Vergleich der Codierungen 5.2.5 Entwurf von Mealy-Automaten 5.2.5.1 Unterschied zum Moore-Automaten 5.2.5.2 Beispiel für einen Mealy-Automaten 5.2.5.3 Aufstellen der Zustandsfolgetabelle 5.2.5.4 Implementierung des Mealy-Automaten 5.2.5.5 Vereinfachte Darstellung des Zustandsfolgediagramms 5.2.6 Vergleich von Mealy- und Moore-Automat 5.2.7 Registerausgabe 5.2.7.1 Taktkonzept 5.2.7.2 Moore-Automat mit Registerausgabe 5.2.7.3 Beispiel für Moore-Automat mit Registerausgabe 5.2.7.4 Medwedew-Automat 5.2.8 Asynchrone Automaten 5.2.8.1 Struktur 5.2.8.2 Beispiel eines asynchronen Automaten 5.2.8.3 Einsatz 5.3 Entwurf sequenzieller Schaltungen mit VHDL 5.3.1 Grundform des getakteten Prozesses 5.3.2 Erweiterte Funktion des getakteten Prozesses 5.3.3 Steuerleitungen für Flip-Flops 5.3.3.1 Synchroner Reset und Set 5.3.3.2 Asynchroner Reset und Set 5.3.3.3 Enable 5.3.4 Entwurf von Automaten 5.3.4.1 Elemente der VHDL-Beschreibung 5.3.4.2 Kompletter VHDL-Code des Automaten 5.3.5 Programmierstile für VHDL-Code 5.4 Übungsaufgaben 6 Schaltungsstrukturen 6.1 Grundstrukturen digitaler Schaltungen 6.1.1 Top-Down Entwurf 6.1.2 Darstellung von Schaltungsstrukturen 6.2 Kombinatorische Grundstrukturen 6.2.1 Multiplexer 6.2.2 Demultiplexer 6.2.3 Addierer 6.3 Sequenzielle Grundstrukturen 6.3.1 Zähler 6.3.2 Schieberegister 6.3.3 Rückgekoppeltes Schieberegister 6.4 Zeitverhalten 6.4.1 Verzögerungszeit realer Schaltungen 6.4.2 Transiente Signalzustände 6.4.3 Signalübergänge in komplexen Schaltungen 6.5 Taktkonzept in realen Schaltungen 6.5.1 Register-Transfer-Level (RTL) 6.5.2 Beispiel für Entwurf mit Register-Transfer-Level: Ampelsteuerung 6.5.3 Kritischer Pfad 6.5.4 Pipelining 6.5.5 Taktübergänge 6.5.6 Metastabilität von Flip-Flops 6.5.7 Taktübergang mehrerer Signale 6.6 Spezielle Ein-/Ausgangsstrukturen 6.6.1 Schmitt-Trigger-Eingang 6.6.2 Tri-State-Ausgang 6.6.3 Open-Kollektor-Ausgang 6.7 Übungsaufgaben 7 Realisierung digitaler Systeme 7.1 Standardisierte Logikbausteine 7.1.1 Charakteristische Eigenschaften digitaler Schaltkreise 7.1.2 Lastfaktoren 7.1.3 Störspannungsabstand 7.1.4 Schaltzeiten 7.1.5 Logikfamilien 7.2 Komponenten für digitale Systeme 7.2.1 ASICs 7.2.2 ASSPs 7.2.3 FPGAs und CPLDs 7.2.4 Mikrocontroller 7.2.5 Vergleich der Alternativen 7.2.6 Kombination von Komponenten 7.3 VHDL-basierter Systementwurf 7.3.1 Designflow 7.3.2 VHDL-Eingabe 7.3.3 Simulation 7.3.4 Synthese 7.3.5 Platzierung und Verdrahtung 7.3.6 Timinganalyse 7.3.7 Inbetriebnahme 7.3.8 Der digitale Entwurf als iterativer Prozess 7.4 Übungsaufgaben 8 VHDL-Vertiefung 8.1 Weitere Datentypen 8.1.1 Natural und Real 8.1.2 Boolean 8.1.3 Time 8.1.4 Std_ulogic, Std_ulogic_vector 8.1.5 Benutzerdefinierte Datentypen 8.1.6 Zeichen und Zeichenketten 8.1.7 Subtypes 8.1.8 Arrays 8.1.9 Records 8.2 Sprachelemente zur Code-Strukturierung 8.2.1 Function 8.2.2 Procedure 8.2.3 Entity-Deklaration mit Generics 8.2.4 Generate-Anweisung 8.2.5 Attribute 8.2.6 Instanziierung mit der Component-Anweisung 8.2.7 Pakete 8.2.8 Einbindung von Spezialkomponenten 8.2.8.1 Beispiel: Instanziierung eines Speichers 8.2.8.2 Beispiel: Instanziierung eines Speichers mit Blockgenerator 8.2.8.3 Beispiel: Inferenz eines Speichers 8.2.8.4 Beispiel: Inferenz eines Dual-Port-Speichers 8.3 Sprachelemente zur Verifikation 8.3.1 Binäre Ein-/Ausgabe 8.3.2 Ein-/Ausgabe mit Textdateien 8.3.3 Wait-Anweisungen in Testbenches 8.3.4 Testbench mit interaktiver Überprüfung 8.3.5 Testbench mit Assert-Anweisungen 8.3.6 Testbench mit Dateiein-/ausgabe 8.4 Übungsaufgaben 9 Programmierbare Logik 9.1 Grundkonzepte programmierbarer Logik 9.1.1 Zweistufige Logik 9.1.2 Tabellenbasierte Logikimplementierung 9.2 Simple Programmable Logic Device (SPLD) 9.3 Complex Programmable Logic Device (CPLD) 9.4 Field Programmable Gate Arrays 9.4.1 Allgemeiner Aufbau eines FPGAs 9.4.2 Taktverteilung im FPGA 9.4.3 Typische Spezialkomponenten 9.4.3.1 Speicherelememente 9.4.3.2 Arithmetische Module 9.4.3.3 Takterzeugung 9.4.3.4 Spezialisierte Peripheriemodule 9.4.3.5 Prozessor-Subsysteme 9.5 FPGA-Familien 9.5.1 Vergleich ausgewählter FPGA-Familien 9.6 Hinweise zum Selbststudium 9.7 Übungsaufgaben 10 Halbleitertechnik 10.1 CMOS-Technologie 10.1.1 Prinzipieller Aufbau 10.1.2 Feldeffekttransistoren 10.1.3 Layout 10.2 Grundschaltungen in CMOS-Technik 10.2.1 Inverter 10.2.2 Logikgatter 10.2.3 Transmission-Gate 10.2.4 Flip-Flop 10.3 Verlustleistung 10.3.1 Statische Verlustleistung 10.3.2 Dynamische Verlustleistung 10.3.3 Entwurf energieeffizienter Schaltungen 10.4 Integrierte Schaltungen 10.4.1 Logiksynthese und Layout 10.4.2 Herstellung 10.4.3 Packaging 10.4.4 Gehäuse 10.4.5 Chiplets 10.5 Miniaturisierung der Halbleitertechnik 10.5.1 Moore‘sches Gesetz 10.5.2 FinFET- und Nanosheet-Transistoren 10.5.3 Weitere Technologieentwicklung 10.6 Übungsaufgaben 11 Speicher 11.1 Übersicht 11.1.1 Begriffe und Abkürzungen 11.1.2 Grundstruktur 11.1.3 Physikalisches Interface 11.2 Speichertechnologien 11.2.1 SRAM 11.2.2 DRAM 11.2.3 ROM 11.2.4 OTP-Speicher 11.2.5 EEPROM 11.2.6 Innovative Speichertechniken 11.3 Eingebetteter Speicher 11.3.1 SRAM 11.3.2 DRAM 11.3.3 ROM 11.3.4 NVRAM 11.4 Diskrete Speicherbausteine 11.4.1 Praktischer Einsatz 11.4.1.1 Systemaufbau 11.4.1.2 Aktuelle Speicherbausteine 11.4.2 QDR-II-SRAM 11.4.2.1 Übersicht 11.4.2.2 Logisches Interface 11.4.2.3 Physikalisches Interface 11.4.3 DDR3-SDRAM 11.4.3.1 Übersicht 11.4.3.2 Logisches Interface 11.4.3.3 Physikalisches Interface 11.4.4 EEPROM 11.4.4.1 Übersicht 11.4.4.2 Gbit Flash-Memory 11.4.4.3 Logisches Interface 11.4.4.4 Physikalisches Interface 11.4.5 FRAM mit seriellem Interface 11.4.5.1 Übersicht 11.4.5.2 Logisches Interface 11.4.5.3 Physikalisches Interface 11.5 Speichersysteme 11.5.1 Adressdecodierung 11.5.2 Multiplexing des Datenbusses 11.5.3 Ansteuerung diskreter Speicherbausteine 11.6 Übungsaufgaben 12 Analog-Digital- und Digital-Analog-Umsetzer 12.1 Grundprinzip von Analog-Digital-Umsetzern 12.1.1 Systeme zur Umsetzung analoger in digitale Signale 12.1.2 Abtasttheorem 12.1.3 Abtasthalteglied (AHG) 12.1.4 Erreichbare Genauigkeit für ADUs abhängig von der Codewortlänge 12.1.5 Codierung der ADU-Werte 12.2 Verfahren zur Analog-Digital-Umsetzung 12.2.1 Parallelverfahren 12.2.2 Wägeverfahren 12.2.3 Zählverfahren 12.2.4 Erweitertes Parallelverfahren 12.2.4.1 Allgemeines Prinzip des erweiterten Parallelverfahrens 12.2.4.2 Pipeline-Analog-Digital-Umsetzer 12.2.5 Erweitertes Zählverfahren 12.2.6 Single- und Dual-Slope-Verfahren 12.2.7 Sigma-Delta-Umsetzer 12.3 Verfahren zur Digital-Analog-Umsetzung 12.3.1 Direktverfahren 12.3.2 Summation gewichteter Ströme 12.3.3 R-2R-Leiternetzwerk 12.3.4 Pulsweitenmodulation 12.4 Eigenschaften realer AD- und DA-Umsetzer 12.4.1 Statische Fehler 12.4.1.1 Quantisierungsfehler 12.4.1.2 Offsetfehler 12.4.1.3 Verstärkungsfehler 12.4.1.4 Nichtlinearität 12.4.1.5 Differenzielle Nichtlinearität 12.4.1.6 Monotoniefehler 12.4.1.7 Betriebsspannungsabhängigkeit der Umsetzerparameter 12.4.2 Dynamische Fehler 12.4.2.1 Einschwingzeit 12.4.2.2 Signal-Rausch-Abstand und Effektive Auflösung 12.4.2.3 Harmonische Verzerrungen 12.4.2.4 Histogramm 12.4.2.5 Glitch-Fläche 12.5 Ansteuerung von diskreten AD- und DA-Umsetzern 12.5.1 Serielle Ansteuerung 12.5.1.1 AD-Umsetzer MCP3201 12.5.1.2 DA-Umsetzer MCP4921 12.5.2 Parallele Ansteuerung 12.5.2.1 AD-Umsetzer AD9200 mit einfachem Parallelausgang 12.5.2.2 AD-Umsetzer AD9467 mit differentiellem Parallelausgang 12.5.3 Serielle Hochgeschwindigkeitsschnittstelle JESD204B 12.6 Übungsaufgaben 13 Grundlagen der Mikroprozessortechnik 13.1 Grundstruktur eines Rechnersystems 13.2 Befehlsabarbeitung in einem Mikroprozessor 13.3 Typische Befehlsklassen 13.3.1 Arithmetische und logische Befehle 13.3.2 Transferbefehle 13.3.3 Befehle zur Programmablaufsteuerung 13.3.4 Spezialbefehle 13.4 Codierung von Befehlen 13.5 Adressierung von Daten und Befehlen 13.5.1 Unmittelbare Adressierung 13.5.2 Absolute Adressierung 13.5.3 Indirekte Adressierung 13.5.4 Indirekte Adressierung mit dem Stackpointer 13.5.5 Befehlsadressierung 13.6 Maßnahmen zur Steigerung der Rechenleistung 13.6.1 Erhöhung der Taktfrequenz 13.6.2 Parallelität 13.6.3 Pipelining 13.6.4 Befehlssatzerweiterungen 13.7 Grundlegende Mikroprozessorarchitekturen 13.7.1 CISC 13.7.2 RISC 13.7.3 RISC und Harvard-Architektur 13.8 Mikroprozessor Arm Cortex-M0+ 13.8.1 Arm Cortex Kurzübersicht 13.8.2 Register des Cortex-M0+ 13.8.3 Befehlssatz des Cortex-M0+ 13.8.3.1 Adressierungsarten des Cortex-M0+ 13.8.3.2 Arithmetische Befehle 13.8.3.3 Logische Befehle 13.8.3.4 Schiebebefehle 13.8.3.5 Speicherzugriffe 13.8.3.6 Sprungbefehle 13.8.3.7 Spezialbefehle 13.9 Programmierung des Arm Cortex-M0+ in Assembler 13.9.1 Einfaches Assembler-Programm 13.9.2 Assembler-Direktiven 13.9.3 Verzweigungen 13.9.4 Schleifen 13.9.5 Arithmetische Grundoperationen 13.9.5.1 Addition und Subtraktion 13.9.5.2 Multiplikation 13.9.5.3 Division 13.9.6 Unterprogrammaufrufe 13.9.7 Pseudobefehle 13.9.8 Übersetzung von Programmen 13.10 Hinweise zum Selbststudium 13.10.1 Hardware und Software für eigene Experimente 13.10.2 Anlegen eines Assembler-Projektes 13.10.3 Hinweise zur Erstellung und dem Debuggen von Assembler-Programmen 13.11 Übungsaufgaben 14 Mikrocontroller 14.1 Aufbau von Mikrocontrollern 14.2 STM32-Mikrocontroller 14.2.1 Übersicht über die Mikrocontroller-Familie STM32 14.2.2 Beispiel: STM32G0-Serie 14.2.3 Architektur der STM32G0-Mikrocontroller 14.2.4 Address Map des STM32G0 14.2.5 Pinbelegung des STM32G071 14.2.6 Mikrocontrolleranschlüsse mit besonderen Funktionen 14.3 General Purpose Input Output (GPIO) 14.3.1 Hardware-Struktur 14.3.2 GPIO-Register 14.4 Grundlagen der Programmierung von Peripheriemodulen 14.4.1 Datentypen 14.4.2 Setzen und Löschen von Bits 14.4.3 Abfragen von Bits 14.4.4 Beispiel: Eine blinkende LED 14.4.5 Struct-basierte Programmierung in C 14.5 C-Programmierung mit der Entwicklungsumgebung STM32CubeIDE 14.5.1 Anlegen von C-Projekten 14.5.2 Projekttyp Empty 14.5.3 Projekttyp STM32Cube 14.5.4 Wahl des Projekttyps 14.5.5 Debuggen von Projekten 14.6 Bibliotheken für die STM32-Programmierung 14.6.1 CMSIS 14.6.2 LL-Bibliothek 14.6.3 HAL-Bibliothek 14.7 Grundlagen der Interruptverarbeitung 14.7.1 Interrupts und Exceptions 14.7.2 Systick 14.7.3 Nested Vectored Interrupt Controller (NVIC) 14.7.4 Interruptvektoren 14.7.5 Interruptfreigabe und Priorisierung 14.7.6 Extended Interrupt/Event Controller (EXTI) 14.7.7 Beispiel zur Interruptprogrammierung 14.7.7.1 EXTI-Interrupt 14.7.7.2 Systick-Interrupt 14.7.7.3 Hauptprogramm 14.7.8 Atomare Datenzugriffe 14.7.8.1 Zuweisungen 14.7.8.2 Read-Modify-Write-Zugriffe 14.7.9 Stacking, Unstacking und Tailchaining 14.7.10 Ausführungszeiten von Interrupt-Service-Routinen 14.8 Callback-Funktionen 14.8.1 Callback-Funktionen am Beispiel des EXTI-Interrupts 14.8.2 Default-Implementierung von Callback-Funktionen 14.8.3 Callback-Funktion für den Systick-Interrupt 14.9 Übungsaufgaben 15 Peripherie des STM32 15.1 Registertypen 15.2 Serielle Datenübertragung 15.2.1 UART/USART 15.2.1.1 Voll-Duplex- und Halb-Duplex-Übertragung 15.2.1.2 Datenübertragung mit dem UART-Protokoll 15.2.1.3 Handshake zwischen Sender und Empfänger 15.2.1.4 Terminalprogramme 15.2.2 USARTs im STM32G0xx 15.2.2.1 USART-Register 15.2.2.2 Senden und Empfangen von Daten mit Polling 15.2.2.3 Pollingbasierte UART-Kommunikation mit der LL-Bibliothek 15.2.2.4 Pollingbasierte UART-Kommunikation mit der HAL-Bibliothek 15.2.2.5 Interruptbasierte UART-Kommunikation mit der HAL-Bibliothek 15.2.3 SPI 15.2.4 SPI-Schnittstelle des STM32G071 15.2.4.1 SPI-Register 15.2.4.2 Steuerung des Slave-Select-Signals 15.2.4.3 SPI-Kommunikation mit der HAL-Bibliothek 15.2.4.4 SPI-Beispiel: Ansteuerung eines EEPROM-Speichers 15.2.5 I2C 15.2.5.1 Das I2C-Protokoll 15.2.5.2 Burst-Transfer 15.2.5.3 Clock-Stretching 15.2.5.4 Multi-Master-Betrieb 15.2.6 I2C-Interface des STM32G071-Mikrocontrollers 15.2.6.1 I2C-Register 15.2.6.2 I2C-Kommunikation mit der HAL-Bibliothek 15.2.6.3 I2C-Beispiel: Ansteuerung eines Uhrenbausteins 15.2.7 Ausgewählte HAL-Funktionen für die serielle Datenübertragung 15.2.7.1 HAL-Funktionen für die UART-Schnittstelle 15.2.7.2 HAL-Funktionen für die SPI-Schnittstelle 15.2.7.3 HAL-Funktionen für die I2C-Schnittstelle 15.2.8 Formatierte Ein-/Ausgabe 15.3 Direct Memory Access (DMA) 15.3.1 Adressierungsarten 15.3.2 Zirkuläre Transfers und Double Buffering 15.3.3 DMA im STM32G071 15.3.3.1 Register des DMA-Request-Multiplexers 15.3.3.2 Register des DMA-Controllers 15.3.3.3 Konfiguration mit STM32CubeMX 15.3.3.4 HAL-Funktionen für den DMA-Betrieb 15.3.3.5 Beispiel: DMA-basierter Betrieb des USARTs 15.3.4 Ausgewählte HAL-Funktionen für den DMA-Betrieb 15.4 Timer 15.4.1 Aufbau von Timern 15.4.2 Typische Timerregister 15.4.3 Übersicht über die STM32-Timer 15.4.4 General-Purpose-Timer TIM2 und TIM3 15.4.4.1 Register der Timer TIM2 und TIM3 15.4.4.2 Register für DMA-Zugriffe 15.4.4.3 Register anderer STM32-Timer 15.4.5 Output-Compare-Modus 15.4.5.1 Output-Compare-Modus mit der CMSIS-Bibliothek 15.4.5.2 Output-Compare-Modus mit der HAL-Bibliothek 15.4.5.3 Dynamische Erzeugung von Rechtecksignalen 15.4.6 PWM-Modi 15.4.6.1 Grundlegende PWM-Modi der STM32-Timer 15.4.6.2 Links- und rechtsbündige PWM 15.4.6.3 Zentrierte PWM 15.4.6.4 Asymmetrische PWM 15.4.6.5 PWM-Signalerzeugung mit der HAL-Bibliothek 15.4.6.6 Dynamische Erzeugung von PWM-Signalen 15.4.7 Input-Capture-Modus 15.4.7.1 Beispiel: Messung der Periodendauer eines Signals mit der HAL-Bibliothek 15.4.7.2 Beispiel: Messung der Periodendauer und der Pulsbreite 15.4.8 Timer mit DMA 15.4.9 Weitere Funktionen der STM32-Timer 15.4.9.1 Externe Zählimpulse 15.4.9.2 Kaskadierung von Timern 15.4.9.3 One-Pulse-Modus 15.4.9.4 Komplementärausgänge 15.4.10 Watchdog-Timer 15.4.11 Ausgewählte HAL-Funktionen für die Timer-Programmierung 15.5 Analoge Ein-/Ausgabe-Komponenten 15.5.1 Analog/Digital-Umsetzer 15.5.1.1 ADC-Register 15.5.1.2 A/D-Umsetzung mit der HAL-Bibliothek 15.5.2 Digital/Analog-Umsetzer 15.5.2.1 DAC-Register 15.5.2.2 Verwendung der HAL-Bibliothek für eine analoge Ausgabe mit DMA und Timer 15.5.3 Analogkomparator 15.5.4 Ausgewählte HAL-Funktionen für analoge Komponenten 15.6 Hinweise zum praktischen Selbststudium 15.6.1 Hardwareauswahl 15.6.2 Software-Empfehlungen 15.6.3 Ergänzende Literatur zum Mikrocontroller STM32G071 15.7 Übungsaufgaben 16 Lösungen der Übungsaufgaben Literaturhinweise Stichwortverzeichnis