Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
microcontrollertechnik:11_i2c_schnittstelle [2023/11/19 03:05] mexleadmin |
microcontrollertechnik:11_i2c_schnittstelle [2024/08/29 19:37] (aktuell) mexleadmin |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
<WRAP group> | <WRAP group> | ||
<WRAP column 30%> | <WRAP column 30%> | ||
Zeile 8: | Zeile 8: | ||
- wissen wie die Kommunikation zwischen I2C Master und Slave funktioniert | - wissen wie die Kommunikation zwischen I2C Master und Slave funktioniert | ||
+ | |||
+ | Im Video wird eine Library für die Kommunikation verwendet. Wir werden in untenstehenden Beispiel die Register selbst schreiben. | ||
</ | </ | ||
==== Video ==== | ==== Video ==== | ||
+ | {{youtube> | ||
+ | |||
+ | <WRAP hide> | ||
{{youtube> | {{youtube> | ||
+ | </ | ||
</ | </ | ||
- | |||
==== Statemachine für Datenpaket ==== | ==== Statemachine für Datenpaket ==== | ||
Zeile 37: | Zeile 42: | ||
</ | </ | ||
- | **Übertragung**\\ | + | === Übertragung |
Für die I2C Übertragung " | Für die I2C Übertragung " | ||
D.h. während der Datenübertragung bleibt die Datenleitung bei SCL=High konstant. \\ | D.h. während der Datenübertragung bleibt die Datenleitung bei SCL=High konstant. \\ | ||
Zeile 149: | Zeile 154: | ||
===== Software ===== | ===== Software ===== | ||
- | ==== einfache Anwendung ==== | + | ==== einfache Anwendung |
Im ersten Schritt ist im folgenden eine einfache Anwendung dargestellt. \\ | Im ersten Schritt ist im folgenden eine einfache Anwendung dargestellt. \\ | ||
Zeile 195: | Zeile 200: | ||
| | ||
| | ||
- | | + | |
C-Compiler: AVR/GNU C Compiler 5.4.0 | C-Compiler: AVR/GNU C Compiler 5.4.0 | ||
| | ||
Zeile 353: | Zeile 358: | ||
| | ||
| | ||
- | | + | |
| | ||
Zeile 458: | Zeile 463: | ||
- | ==== komplexere Anwendung ==== | + | ==== komplexere Anwendung |
- | Als Beispiel wurde die Temperaturmessung gewählt | + | |
- | | + | Als Beispiel wurde hier die Temperaturmessung |
+ | Das Projekt und die Simulation ist hier zu finden | ||
+ | |||
+ | Bitte nutzen Sie diese als Vorlage, wen Sie eine I2C Schnittstelle implementieren wollen. Da in diesem Programmstand alles über Interrupts läuft, können auch weitere Funktionen abgearbeitet werden. | ||
+ | |||
+ | ===== weiterführende Unterlagen ===== | ||
+ | |||
+ | Die detaillierte Beschreibung zu I2C findet sich in des {{microcontrollertechnik: | ||
==== Bibliotheken ==== | ==== Bibliotheken ==== | ||
Zeile 472: | Zeile 484: | ||
* alternative und schlanke Implementierung des Slaves von [[https:// | * alternative und schlanke Implementierung des Slaves von [[https:// | ||
- | ===== Beispiele | + | ==== Beispiele ==== |
- | * Simulide: '' | + | * In Simulide |
- | * Software | + | * Eine vollständige Implementierung des Codes für den I2C Master ist in der Library von Peter Fleury |
- | * Library von Peter Fleury: [[http:// | + | * Eine Implementierung eines [[Software I2C Slave]], also eines I2C an einem beliebigen Pin durch Bitmaipulation, |
- | * [[Software I2C Slave]] | + | |
- | ===== weiterführende Unterlagen ===== | + | ==== Beschreibung |
- | | + | |
+ | Die " |