Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
microcontrollertechnik:11_i2c_schnittstelle [2024/03/11 00:03] mexleadminmicrocontrollertechnik:11_i2c_schnittstelle [2025/11/08 13:16] (aktuell) mexleadmin
Zeile 21: Zeile 21:
  
 </WRAP> </WRAP> </WRAP> </WRAP>
- 
  
 ==== Statemachine für Datenpaket ==== ==== Statemachine für Datenpaket ====
Zeile 154: 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 472: Zeile 476:
  
 ===== weiterführende Unterlagen ===== ===== weiterführende Unterlagen =====
 +
 +Die detaillierte Beschreibung zu I2C findet sich in des {{microcontrollertechnik:um10204_-_i2c-bus_specification_and_user_manual.pdf|I2C Bus Specification and User Manual}} des Herstellers (ehemls Phillips nun NXP).
  
 ==== Bibliotheken ==== ==== Bibliotheken ====
Zeile 487: Zeile 493:
   * In Simulide ist eine Umsetzung von Software I2C zu finden: ''...\share\simulide\examples\Arduino\sofware_i2c_lcd\i2c_lcd-arduino''    * In Simulide ist eine Umsetzung von Software I2C zu finden: ''...\share\simulide\examples\Arduino\sofware_i2c_lcd\i2c_lcd-arduino'' 
   * Eine vollständige Implementierung des Codes für den I2C Master ist in der Library von Peter Fleury zu finden: [[http://www.peterfleury.epizy.com/avr-software.html|library]], [[http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__ic2master.html|Dokumentation]]   * Eine vollständige Implementierung des Codes für den I2C Master ist in der Library von Peter Fleury zu finden: [[http://www.peterfleury.epizy.com/avr-software.html|library]], [[http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__ic2master.html|Dokumentation]]
-  * Eine Implementierung eines [[Software I2C Slave]], also eines I2C an einem beliebigen Pin durch Bitmaipulation, habe ich bereitgestellt. Es soll jedoch stets bevorzugt werden die vorhandenen Hardware I2C zu nutzen.+  * Eine Implementierung eines [[Software I2C Slave]], also eines I2C an einem beliebigen Pin durch Bitmanipulation, habe ich bereitgestellt. Es soll jedoch stets bevorzugt werden die vorhandenen Hardware I2C zu nutzen.
  
 ==== Beschreibung ==== ==== Beschreibung ====
  
 Die "[[https://mu.microchip.com/practical-i2c-introduction-implementation-and-troubleshooting|Microchip University]]" hat auch eine schöne Einführung in I2C. Hier wird aber nicht die Implementierung in Microchip Studio auf einem AVR-Chip gezeigt, sondern in MPLAB X auf einem PIC. D.h. der Code ist nicht direkt übertragbar. Die "[[https://mu.microchip.com/practical-i2c-introduction-implementation-and-troubleshooting|Microchip University]]" hat auch eine schöne Einführung in I2C. Hier wird aber nicht die Implementierung in Microchip Studio auf einem AVR-Chip gezeigt, sondern in MPLAB X auf einem PIC. D.h. der Code ist nicht direkt übertragbar.