API-005: 2-Wire Temperatur Sensor TCN75A, Bit-Banding
Diese API ermöglicht das Benutzen von 2-Wire (I2C) Temperatur Sensor TCN75A. Mit dieser API kann man die Konfiguration von TCN75A vornehmen, und die Umgebungstemperatur aus dem „Temperature“ Register auslesen.
- Programmiersprache: ANSI C
- Mikrocontroller: AT89C5131A - 8051 Mikrocontroller
- IDE: µVision 4
- Compiler: Cx51 V9.5

API-005 I2C TCN75A Bit-Banding
API Beschreibung
Diese API ermöglicht das Benutzen von 2-Wire (I2C) Temperatur Sensor TCN75A. Mit dieser API kann man die Konfiguration von TCN75A vornehmen, und die Umgebungstemperatur aus dem „Temperature“ Register auslesen.
Diese API ist mit I2C-003 2-Wire Temperatur Sensor TCN75A kompatibel.
Folgende Voraussetzungen müssen erfüllt sein:
Folgende Voraussetzungen müssen erfüllt sein:
- Inkludierung der „API-002: Emulator der I2C (TWI) Schnittstelle“ wird vorausgesetzt.
- Die Übertragung der Bytes über I2C Schnittstelle darf nicht unterbrochen werden, z. B. von einem Interrupt.
Programmiersprache: | ANSI C |
Mikrocontroller: | AT89C5131A - 8051 MK |
IDE: | µVision 4 |
Compiler: | Cx51 V9.5 |
Dateien
- tcn75a.c - Datei mit C-Funktionen
- tcn75a.h - Header Datei
- tcn75a_config.h - Konfiguration Datei
Funktions-Deklarationen
// TCN75A Initialisierung errorCodeTCN75A_t TCN75A_Init(void); // Lese Temperatur aus TCN75A errorCodeTCN75A_t TCN75A_GetTemp(float* temperature);
Konstanten
Error Code errorCodeTCN75A_t
// Error Code TCN75A typedef enum _errorCodeTCN75A { TCN75A_SUCCESS = 0x00, TCN75A_BUSY = 0x01, TCN75A_WRITE_FAIL = 0x02, TCN75A_READ_FAIL = 0x03 } errorCodeTCN75A_t;
Konfiguration
In tcn75a_config.h kann man die Konfiguration von TCN75 und die Slave Adresse ändern. Die Einstellungen sind in zwei Gruppen unterteilt:
- TCN75A „Configuration“ Register
- Einstellung der Slave Adresse
Configuration Register
Öffnen Sie die Datei tcn75a_config.h. In der Zeile 61 steht folgende Präprozessor-Direktive:#define TCN75A_CONFIG_BYTE 0x00
0x00 ist die „Power-up“ und Default Einstellung von TCN75A. Der Baustein arbeitet mit 9-bit Auflösung. Die Änderung dieser symbolischen Konstante bewirkt eine Änderung in dem „Configuration“ Register von TCN75A.
Einstellung der Slave Adresse
Öffnen Sie die Datei tcn75a_config.h. In der Zeile 78 steht folgende Präprozessor-Direktive:#define TCN75A_SLAVE_ADDRESS 0x90
Standard Wert der symbolischen Konstanten TCN75A_SLAVE_ADDRESS ist 0x90, d.h. alle Jumper A0, A1, A2 stehen auf null.
Machen Sie die tcn75a_config.h in µVision 4 auf. Klicken Sie auf der unteren Leiste auf den „Configuration Wizard“. Es öffnet sich eine „GUI-like“Oberfläche. Über diese Oberfläche kann man alle Einstellungen auf einfachere Weise ändern. Die Standard Einstellungen kann man dem Bild unten entnehmen.


TCN75A API Einstellungen über Configuration Wizard
Es ist möglich, die Einstellungen über Configuration Wizard vorzunehemen.Machen Sie die tcn75a_config.h in µVision 4 auf. Klicken Sie auf der unteren Leiste auf den „Configuration Wizard“. Es öffnet sich eine „GUI-like“Oberfläche. Über diese Oberfläche kann man alle Einstellungen auf einfachere Weise ändern. Die Standard Einstellungen kann man dem Bild unten entnehmen.

Funktionen
errorCodeTCN75A_t TCN75A_Init (void);
Diese Funktion initialisiert den TCN75A.
Über I2C wird die TCN75A_CONFIG_BYTE (tcn75a_config.h) Konstante in den „Configuration” Register von TCN75A geschrieben.
Diese Funktion verwendet folgende globale Konstanten:
Diese Funktion verwendet folgende externe Funktionen:
Über I2C wird die TCN75A_CONFIG_BYTE (tcn75a_config.h) Konstante in den „Configuration” Register von TCN75A geschrieben.
Diese Funktion verwendet folgende globale Konstanten:
- TCN75A_SLAVE_ADDRESS (tcn75a_config.h) - Slave Adresse von TCN75A
- TCN75A_CONFIG_REGISTER (tcn75a.c) - Pointer auf den “Configuration” Register
- TCN75A_CONFIG_BYTE (tcn75a_config.h) - Konfiguration Byte
Diese Funktion verwendet folgende externe Funktionen:
- EmuI2C_SendData() aus API-002: Emulator der I2C (TWI) Schnittstelle
Funktionstyp
errorCodeTCN75A_t - gibt den Status der Übertragung wieder. Mögliche Werte sind:Konstanten Name | Wert | Beschreibung |
---|---|---|
TCN75A_SUCCESS | 0x00 | Übertragung erfolgreich |
TCN75A_BUSY | 0x01 | Unbekannter Fehler |
TCN75A_WRITE_FAIL | 0x02 | Schreiben fehlgeschlagen |
Übergabeparameter
voidTCN75A_GetTemp TCN75A_Init (float* temperature);
Diese Funktion liest die Umgebungstemperatur aus dem „Temperature“ Register via I2C aus.
An diese Funktion wird der Pointer auf eine float Variable übergeben. Der Temperaturwert wird in diese float Variable gespeichert.
Diese Funktion verwendet folgende globale Konstanten:
Diese Funktion verwendet folgende externe Funktionen:
An diese Funktion wird der Pointer auf eine float Variable übergeben. Der Temperaturwert wird in diese float Variable gespeichert.
Diese Funktion verwendet folgende globale Konstanten:
- TCN75A_SLAVE_ADDRESS (tcn75a_config.h) - Slave Adresse von TCN75A
- TCN75A_TEMP_REGISTER (tcn75a.c) - Pointer auf den “Temperature” Register
Diese Funktion verwendet folgende externe Funktionen:
- EmuI2C_SendData() aus API-002: Emulator der I2C (TWI) Schnittstelle
- EmuI2C_ReceiveData() aus API-002: Emulator der I2C (TWI) Schnittstelle
Funktionstyp
errorCodeTCN75A_t - gibt den Status der Übertragung wieder. Mögliche Werte sind:Konstanten Name | Wert | Beschreibung |
---|---|---|
TCN75A_SUCCESS | 0x00 | Übertragung erfolgreich |
TCN75A_BUSY | 0x01 | Unbekannter Fehler |
TCN75A_WRITE_FAIL | 0x02 | Schreiben fehlgeschlagen |
TCN75A_READ_FAIL | 0x03 | Empfang fehlgeschlagen |
Übergabeparameter
float* temperature - Pointer auf float Variable für den gemessenen TemperaturwertBeispiel
#include "tcn75a.h" // TCN75A Header #include "tcn75a_config.h" // TCN75A API Config void main (void){ float temperature = 0.00f; // TCN75A Initialisierung TCN75A_Init(); // Temperaturmessung TCN75A_GetTemp(&temperature); while(1); }