Hi ich habe hier ein kleines Problem beim Ansprechen eines Hygrosens Temperaturmodul mit I2C Schnittstelle. Der Temperatursensor sendet kein ACK-Signal an den Master, egal auf welcher Adresse ich versuche ihn anzusprechen. Habe schon die in der Dokumentation angegebene Adresse 0x78 probiert, ausserdem habe ich 0xA0 und 0xFO versucht, aber auf keiner Adresse antwortet der Temperatursensor. Der Temperatursensor läuft mit einem 10V Netzteil an VDD und Ground und die Leitungen SCL und SDA sind korrekt an den I2C Bus angeschlossen. Woran könnte es liegen dass ich kein ACK Signal erhalte. Mfg Eduard Hier ist das Datenblatt: http://shop.hygrosens.com/out/media/i2c_temperaturmodul_dbd.pdf
Sag mal, wie soll denn irgendwer außer dir mit diesen Informationen etwas anfangen können??? Ohne Beschaltung und Code wird das wohl nix!
Eduard schrieb: > 0x78 Probier mal 0x3C als Adresse. Zum Checken ob was am Bus hängt, habe ich eine Standardprozedur: Die geht alle Adressen einmal durch und gibt diejenigen aus, bei denen ein ACK zurückkomt. Schau Dir mal mit einem Oszilloskop die SCL und die SDA-Leitung an, ob bei Deinem Code überhaupt was passiert. Grüße Sven
Sorry für die schwammige Beschreibung meiner Frage. Also am Code kann es nicht liegen, da ich den STM32 I2C Example Code nehme, der auch wunderbar funktioniert. Habe 2 STM32 Boards zusammengeschalten und auf einem Board den Mastercode laufen lassen und auf dem anderen den Slavecode. Lief alles wunderbar, am Oszi hat man auch schön die Startcondition gesehen, dann die Adresse und die Daten die gesendet wurden. Dann habe ich im Code lediglich die Slave Adresse geändert um nun mit dem Temperatursensor zu kommunizieren. Auf dem Oszi sieht man die Startcondition gefolgt von der Adresse und ab dem Zeitpunkt an dem der Slave (in dem Fall der Temperatursensor) ein Ack senden sollte passiert gar nichts mehr, SDA ist auf High und SCL Low. Habe hier im Forum schon öfters gelesen, dass dieser Temperatursensor mit der Adresse 0xF0 angesprochen werden soll, im Datenblatt steht als Standardadresse 0x78 und in der Serial Digital Interface Beschreibung von Hygrosens steht, die Adresse sei 0xA0. Nun weiß ich nicht welche Adresse ich ausser den drei vorher genannten probieren soll, da der Temperatursensor auf allen drei Adressen nicht antwortet. Ist es eventuell möglich dass der Temperatursensor den Geist aufgegeben hat? Der Analogausgang funktioniert einwandfrei, nur eben über I2C hat er noch nie geantwortet. Sven wie kommst du auf die Adresse 0x3C? Werde morgen mal probieren ob diese Adresse funktioniert. Danke schonmal für euere Antworten. Mfg Eduard Hier ist die Serial Digital Interface Beschreibung: http://www.mikrocontroller.net/attachment/127539/501994_Serial_Digital_Interface.pdf
Hi >Habe hier im Forum schon öfters gelesen, dass dieser Temperatursensor >mit der Adresse 0xF0 angesprochen werden soll, im Datenblatt steht als >Standardadresse 0x78 und in der Serial Digital Interface Beschreibung >von Hygrosens steht, die Adresse sei 0xA0. Die Angabe der Adresse ist leider nicht einheitlich. Manchmal wird der Wert der Bits 7...1 (ohne R/W-Bit), manch mal die Adresse mit R/W-Bit Null angegeben. Daraus ergeben sich unterschiedliche Werte: |-$78-| | | 0b11110000 |--$F0-| MfG Spess
Warum hast du nicht gleich mit diesen Infos rausgerückt? In der Tat ist die Kommunikation mit Hygrosensmodulen nicht so selbsterklärend, weil die Doku echt bescheiden ist. Ich habe schon länger mehr in keine STM-Lib reingeschaut, aber es müßte in den Beispielen ja erkennbar sein, ob die dort "intern" mit 7 oder 8 bit adressen arbeiten. Ich tippe auch auf 0xF0 statt 0xA0. Sollte das nicht klappen, veilleicht noch einmal das Timing von Lib und Chip durchgehen und vergleichen.
Das doofe ist, egal ob ich 0xA0, 0x78 oder 0xF0 nehme, der Sensor leifert einfach kein ACK. Fühlt sich also nicht angesprochen das Teil. Hab leider nicht früher raus rücken können mit den Infos, weil ich im Labor war und mich auf den Weg nach hause machen musste. Sowas kommt nicht mehr vor dass die Infos zu dürftig sind ;) Also ich frage mich echt wie die von Hygrosens auf diese A0 kommen, wäre auch eher auf die F0 gekommen, da die Rechnung ja plausibel erscheint. An den Timings habe ich nichts geändert, muss mal abgleichen ob da vllt irgendwas falsch getimed wird am STM32, wüsste aber jetzt auf Anhieb nicht wie ich aus den C oder H Dateien das Timing ablesen könnte. Ausserdem ist mir noch nicht ganz schlüssig was es mit diesen Commands auf sich hat die man senden kann (evtl sogar muss?) um an die Messdaten ranzukommen. Aber ohne Ack Signal brauche ich mich vorerst nicht um die Commands kümmern. Hat denn bisher keiner hier im Forum den Temperatursensor zum laufen bekommen? Würde mich echt interessieren wie das nun richtig geht. Es wäre echt genial wenn sich einer hier melden könnte der das ganze Problem schon hinter sich und gelöst hat. Mfg Eduard
Hallo, mich würd interessieren ob der Analog Ausgang deines Moduls funktioniert, also die korrekte Spannung ausgegeben wird. Meine Module sind indes schrottreif. (da ein Reset nicht zu greifen scheint; das Modul nicht ohne Sensor betreiben bzw. Sensor nicht im Betrieb abziehen!) Wir verwenden demnächst eine AD Karte und Messumformer der Firma LKM Electronics. http://www.lkmelectronic.de/deutsch/produkte/kopfmontage.html Gruß DisM
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.