Hallo, ich komme mit den I2C Routinen von Peter Fleury irgendwie nicht zu Rande. Es befinden sich mehrere Dateien in der Zip. Ich möchte gerne die Funktionen nutzen um per I2C Bus einen Sensor anzusprechen (Lesen, Schreiben). Leider weiß ich nicht welche Dateien davon zu nutzen sind. Ich habe jetzt die twimaster.c als sourcefile eingebunden und die i2cmaster.h als headerfile. Mit denen möchte ich jetzt einen Feuchtesensor ansprechen.
Wenn du Hardware I2C verwendest, dann passt es, bei Software I2C ist auch noch die *.S Datei einzubinden. Die Geräteadresse deines Sensor in der *.c Datei einstellen. Was dein Sensor hören will musst du dem Datenblatt entnehmen.
Hubert G. schrieb: > Die Geräteadresse deines Sensor in der *.c Datei einstellen. In der twimaster.c soll ich die Adresse einstellen? Kannst du mir auch sagen wo dort? Ich hab bis jetzt meine F_CPU eingestellt. Das sind 1 Mhz, da der ATmega8 auf internen Takt läuft. Bei dem Sensor handelt sich um den HH10D von pollin. Die ChipSelect Adresse des EEPROM ist mit 0x01 angeben.
Die test_i2cmaster.c ist das Beispielprogramm, dort ist die Adresse einzustellen. Oder in deiner Programmdatei die das main enthält.
Peter Wolf schrieb: > Die ChipSelect > Adresse des EEPROM ist mit 0x01 angeben Das kann so nicht sein. Adressen in IIC sind die 7 Bit beginnend beim MSB. Das LSB wird dazu verwendet, um Masterseitig mitzuteilen, ob eine Schreib- oder Leseoperation folgt. Darüberhinaus sollte in jedem guten Datenblatt in einem Ablauf-/Fluss-Diagramm dargestellt sein, wie man was zu erledigen hat. mfg mf
Mini Float schrieb: > Das kann so nicht sein. Im Datenblatt steht dies allerdings so. Zum Auslesen von Konstanten für die Berechnung brauche ich dann das MSB und LSB. http://www.pollin.de/shop/downloads/D810120B.PDF
Auf S.2 unter I2C-Interface steht: EEPROM Lese-Zugriff: 0xA3 EEPROM Schreib-Zugriff: 0xA2
Genau, aber wozu brauch ich die Adresse des ChipSelects? Ich kann nicht so richtig erkennen, wie die Abfrageroutine ist. Es gibt dort zwar ein Beispielcode zu, den werd ich jetzt mal auseinander pflücken und wahrscheinlich scheitern :(
Über den Schreibzugriff auf I2C-Ads 0xA2 wird die Adresse im EEPROM 0xA0 gesetzt und dann folgen auf I2C-Ads 0xA3 die vier Lesezugriffe für die Koeffizienten. Anschließend wird mit I2C_Stop die I2C-Kommunikation beendet und das war's auf dem I2C.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.