I2C beim Attiny Was ist I2C? I2C-Befehle Das PCF8574-Modul Der AD/DA-Wandler PCF8591 Attiny i2c 1.2.2 Copyright 2017 by G. Heinrichs
I2C = Inter-Integrated Circuit I2C-Bus Master Slave Slave Slave Master adressiert einen Slave und tauscht dann mit ihm Informationen aus.
I2C - Schaltermodell Meist schon auf den Slave-Modulen B.5 B.7
I2C: Timing-Diagramm 1
I2C: Timing-Diagramm 2 Init bzw. Stop
I2C: Timing-Diagramm 3 Start: Alle herhören!
I2C: Timing-Diagramm 4 Write: Byte wird Bit für Bit übertragen
I2C: Protokoll Initialisierung (SDA = 1, SCL = 1) Adressierung Start-Kommando (SCL = 1, SDA → 0) Adressbyte schreiben Ggf. ACK-Bit kontrollieren Datenbyte schreiben … Stopp-Signal (SCL = 1, SDA → 1)
I2C: Befehle Steht in CFG-Datei i2cstart Config Scl = Portb.7 i2cwbyte Konfigurieren i2cstart i2cwbyte i2crbyte i2cstop Config Scl = Portb.7 Config Sda = Portb.5 Programmschnippsel ... I2cstart I2cwbyte pcf_adr I2cwbyte wert I2cstop Vom Slave gesendetes Acknowledge-Bit wird von BASCOM in der Systemvariablen Err abgelegt.
Das PCF-8574-Modul 8-Bit I/O-Modul Imax = 1 mA (gegen GND) Imax = 25 mA (gegen Vcc) Adresse: &B 0100 xxx0 (Jumper!)
Das PCF-8574-Modul Aufgabe zur gemeinsamen Bearbeitung Auf dem Terminal wird eine Zahl (dezimal) eingegeben. Diese soll auf dem LED-Array binär angezeigt werden. Hinweis: Beachten Sie, dass die LEDs nicht wie üblich gegen GND, sondern gegen Vcc geschaltet sind. Und nun selbstständig: Aufg. 1.1 – 1.3
Eingangssignale lesen A0…A2: 0 oder 1 gemäß Jumper R/W: 1 (read) / 0 (write)
Eingangssignale lesen Protokoll Adressierung Start-Kommando Lese-Adresse schreiben Ggf. ACK-Bit kontrollieren Datenbyte empfangen ACK-Bit senden … NACK-Bit senden Stopp-Kommando I2cwbyte read_adr I2crbyte wert, ACK I2crbyte wert, NACK
Weitere I2C - Bausteine OLED-Display AD/DA-Wandler EEPROM Echtzeituhr LCD-Treiber 7-Segmentanzeige-Treiber Luxmeter Beschleunigungssensor Magnetfeldsensor …
Das PCF8591-Modul 1 D/A-Wandler 4 A/D-Wandler
PCF8591-Modul anschließen
Das PCF8591-Modul Status-LED LED Poti LDR NTC
PCF8591-Protokoll (Uout) Initialisierung Adressierung (Schreiben) Kontroll-Byte schreiben Datenbyte schreiben … Stopp-Signal
PCF8591: Kontroll-Byte 64
PCF8591: Rohwerte
PCF8591: LED-Helligkeit Ziel: Helligkeit (Spannung) bei der Leuchtdiode D2 über das Terminal steuern und Spannung bei Aout messen
PCF8591-Protokoll (Uin) Initialisierung Adressierung (Schreiben) Kontroll-Byte schreiben Stopp-Signal Adressierung (Lesen) Datenbyte empfangen, ACK senden … Datenbyte empfangen, NACK senden
PCF8591: Kontroll-Byte 1 LDR
PCF8591: Poti-Stellung Ziel: Spannung beim Poti messen und über das Terminal als Diagramm darstellen