Pages: [1] 2   Go Down
Author Topic: SHT25@I2C will nicht  (Read 1340 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo zusammen,

ich hab da ein Problem, mit dem ich einfach nicht weiter komme. Mag sein, dass es daran liegt, dass ich ganz neu in der Materie bin, aber um Hilfe wäre ich dennoch sehr froh.

Also, ich habe mir einen SHT25 Temp/Feuchtigkeits-Sensor geleistet. Bezogen habe ich den auf einem Mini-Breakout montiert hier: http://www.misenso.com/product_p/002.htm

Da ich das Teil an meinem Arduino Mega 2560 betreiben möchte und dieses ja auf 5V läuft, habe ich mir noch einen Logic Level Converter geleistet, diesen hier: https://www.sparkfun.com/products/8745

Angeschlossen habe ich das ganze so, dass der Low Volt des LLC und der Sensor ihre VDD-Versorgung vom 3.3V-Pin des Arduino bekommen. Der High Volt des LLC bekommt seine Spannung vom 5V-Pin des Arduino. Die I2C-Leitungen (SDA und SLC) habe ich jeweils an den TX-Port des LLC gehängt, die entsprechende Leitung des Sensors ebenfalls an den jweils entsprechenden TX-Port auf der Low Power Seite. Ich hoffe, das ist soweit verständlich... smiley-wink

Mein Problem nun ist, dass es nicht tut smiley-wink Ich sehe mich mit dem selben Verhalten konfrontiert, wie es hier beschrieben ist: http://arduino.cc/forum/index.php/topic,92923.0.html. Die Kurzfassung ist, dass der Aufruf von Wire.available() immer 0 zurück gibt, nach dem ich Wire.requestFrom(eSHT2xAddress, 3) abgesetzt habe. Auch gibt der vorhergegangene Aufruf von Wire.endTransmission(); einen Wert von 2 zurück.

Hat vielleicht jemand eine Idee, was hier das Problem sein könnte? Ich wäre um jede Hilfe dankbar.

Greez,

dialsc
« Last Edit: November 22, 2012, 07:35:16 am by dialsc » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hast Du auch die GND Pins verbunden?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja, ich hab beides versucht, mit und ohne. Irgendwo im Netz sah ich ein Bild von dem LLC im Einsatz, da waren die GNDs nicht verbuden, darum habe ich es dann auch mal so versucht. Geht aber beides nicht...
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK, dann teste doch erstmal den Level-Converter alleine. Schalte an auf Deinem Arduino einfach die entsprechenden PINs als Ausgang und schalte dann im Sekundentakt zwischen HIGH und LOW hin und her. (einfach das Blink-Beispiel erweitern). Du solltest dann an den 3.3V Ausgängen das Signal messen können.
Das Gleiche machst Du mit den Eingängen. Dort den Eingang auf der 3.3V jeweils gegen Masse schalten und auf den entsprechenden Arduino-Pins, die als Eingang mit aktivierten Pull-Up gesetzt sind, das Signal auslesen und auf dem seriellen Monitor ausgeben.

Somit kannst Du den Converter erstmal als Fehlerquelle ausschliessen. Außerdem lernst Du dabei auch gleich, wie man das Dingen richtig anschliesst :-)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Erst mal vielen Dank für den Tip. Werde es gerne versuchen, sobald ich dazu komme und mir sicher bin, dass ich verstanden habe, was du mir vorschlaegst... smiley-wink

Haettest du denn vielleicht noch eine andere Idee, wie ich dem problem naeher kommen koennte? Nur so, falls der LLC tut. Den habe ich naemlich schon gegen einen zweiten getauscht... smiley-wink
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich glaube auch nicht, das der LLC kaputt ist, nur das Du ihn ggf. falsch anschliesst, oder zumindest unvollständig. Solange das nicht klar ist, wirst Du mit der Fehlersuche nicht wirklich weiter kommen.
Schau Dir mal folgendes Bild an: hast Du Deinen LLC so angeschlossen?
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hier noch das Bild für den Uno:
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jep, hab ich. Hab da mal einen kleinen Fritzing-Entwurf angehängt, welcher wieder gibt, was ich da genau gemacht habe. Ich hab in der Zwischenzeit auch Antwort von dem Verkäufer des Boards bekommen, welchen ich auch um Rat anfragte. Er teilte mir - nebst anderem - noch mit, dass da ein Fehler auf dem Breakout sei und bei der Beschriftung SDA und SCL vertauscht wurden und die Kabel daher getauscht werden sollen. Das hab ich auch getan, das Ergebnis ist aber nach wie vor das selbe.


* SHT52 - Version 1_Steckplatine.png (364.66 KB, 1860x1635 - viewed 25 times.)
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn das Schema auf der von Dir verlinkten Seite korrekt ist, dann sind die SDA und SCL Pins in der Mitte und Vcc/GND sind aussen. Könntest Du das auch mal versuchen?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich denke nicht, dass das Schema korrekt ist. Ich hab mir gerade die Leiterplatte nochmal genau angeschaut und entsprechend der Bahnen bezüglich des Kondensators und der Widerstände müsste die Bezeichnung der Pins schon stimmen. Irgendwie beginne ich zu denken, dass der Sensor einen Defekt hat.

Gehe ich recht in der Annahme, dass es schwierig ist, das zu verifizieren?
Logged

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 96
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

In deinem Schaltplan fehlen die Pullup Widerstände (4,7k bis 10k) für SDA und SCL. 
evtl. Verläuft die Kommunikation nicht sauber.... 

Gruß derRobert
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo derRobert,

danke für den Hinweis aber ne du, die sind auf dem kleinen Breakout schon drauf, auf welchem der Sensor montiert ist.
Logged

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 96
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das wäre dann auf der 3,3V Seite.
versuche es mal mit zusätzlichen PullUp's auf der 5V Seite.
Logged

0
Offline Offline
Jr. Member
**
Karma: 1
Posts: 96
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn ich den Schaltplan richtig verstehe ist die TX Leitung des Levelconverters nur Unidirectional. Aber eine I2C Leitung ist doch Bidirectional oder????



Ich bin mir nicht sicher. Aber Logisch erscheint mir das nicht.
Gruß derRobert

Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 108
Posts: 5144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wenn ich den Schaltplan richtig verstehe ist die TX Leitung des Levelconverters nur Unidirectional. Aber eine I2C Leitung ist doch Bidirectional oder????

Nein, die TX-Leitung ist bidirektional, die RX-Leitung ist nur unidirektional. Die interne Diode des MOSFETs macht die eine Richtung, die andere über den durchgeschalteten Transistor (jeweils auf den LOW-Status bezogen, der HIGH-Status sperrt einfach am Transistor und die Pull-ups kommen zum Zug.
Logged

Pages: [1] 2   Go Up
Jump to: