Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
microcontrollertechnik:10_i2c_schnittstelle [2023/11/19 03:25] – mexleadmin | microcontrollertechnik:11_i2c_schnittstelle [2025/06/22 13:06] (aktuell) – mexleadmin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | {{microcontrollertechnik: | + | ====== |
<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 148: | Zeile 153: | ||
===== Software ===== | ===== Software ===== | ||
+ | |||
+ | ==== wichtiger Hinweis ==== | ||
+ | |||
+ | Die im Mikrocontroller fest verdrahtete State Machine von Microchip / ATMEL kann sich (selbst in der Simulation) durch ungünstiges Timing bzw. ungünstige Zustände aufhängen. \\ | ||
+ | Diese Zustände lassen sich leicht dadurch beheben, dass eine erneute Initialisierung der I2C Register nach jedem Versenden / Empfangen durchgeführt wird. | ||
==== einfache Anwendung - nur Polling ==== | ==== einfache Anwendung - nur Polling ==== | ||
Zeile 195: | Zeile 205: | ||
| | ||
| | ||
- | | + | |
C-Compiler: AVR/GNU C Compiler 5.4.0 | C-Compiler: AVR/GNU C Compiler 5.4.0 | ||
| | ||
Zeile 353: | Zeile 363: | ||
| | ||
| | ||
- | | + | |
| | ||
Zeile 462: | Zeile 472: | ||
Als Beispiel wurde hier die Temperaturmessung aus Lektion 8 gewählt. \\ | Als Beispiel wurde hier die Temperaturmessung aus Lektion 8 gewählt. \\ | ||
Das Projekt und die Simulation ist hier zu finden {{microcontrollertechnik: | Das Projekt und die Simulation ist hier zu finden {{microcontrollertechnik: | ||
+ | |||
+ | 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 ===== | ===== weiterführende Unterlagen ===== | ||
+ | |||
+ | Die detaillierte Beschreibung zu I2C findet sich in des {{microcontrollertechnik: | ||
==== Bibliotheken ==== | ==== Bibliotheken ==== | ||
Zeile 479: | Zeile 493: | ||
* In Simulide ist eine Umsetzung von Software I2C zu finden: '' | * In Simulide ist eine Umsetzung von Software I2C zu finden: '' | ||
* Eine vollständige Implementierung des Codes für den I2C Master ist in der Library von Peter Fleury zu finden: [[http:// | * Eine vollständige Implementierung des Codes für den I2C Master ist in der Library von Peter Fleury zu finden: [[http:// | ||
- | * Eine Implementierung eines [[Software I2C Slave]], also eines I2C an einem beliebigen Pin durch Bitmaipulation, | + | * Eine Implementierung eines [[Software I2C Slave]], also eines I2C an einem beliebigen Pin durch Bitmaipulation, |
==== Beschreibung ==== | ==== Beschreibung ==== | ||
Die " | Die " |