Hallo, ich habe mir diesen Stein heute mal zuegelegt, der natürlich keinerlei Schaltplan hat und stolpere über das Datenblatt des Chips, der klar von 2.5V-3.3V Betrieb spricht. http://www.ebay.de/itm/251964335134?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT Nun finden sich im Netz jeweils hälftig beide Varianten: Vcc an 3.3V und I2C über Pull-Up an 5V und auch an 3.3V. Mal mit I2C Level Shiter, mal ohne. Stellt sich mir die Frage: Hält dieses Modul es aus, wenn SDA/SCL über einen Pull Up an 5V gehen und dann auf den I2C Bus des 5V uC? Open Collector zieht ja nur gegen Masse. Vcc des ADXL Moduls würde ich an 3.3V hängen. Das Datenblatt sagt allerdings eindeutig Vs > Vdi/o.s, schweigr sich aber aus ob das nur für SPI gilt und die Int Pins oder auch für I2C. Wäre gut, wenn diese Frage mit ja/nein beantwortet werden könnte.
5V an den Pins geht nicht, betreibe deinen uC mit 3.3V und Problem gelöst...
5V ist tot schrieb: > 5V an den Pins geht nicht, betreibe deinen uC mit 3.3V und Problem > gelöst... Geht nicht ....uC muss wegen anderer Peripherie 5V haben. 5V würden über 4.7k an den I2C Pins liegen. Und auch wenn kein Plan im ADXL Datensheet drin ist, so war das bisher immer so, dass Pins zwei Clamb Schutzdioden gegen Vcc und GND haben, über die Überspannung abfliessen kann. Diese Dioden kann man als Pegelanpassung missbrauchen, wenn der Strom nicht zu hoch wird. Die überschüssigen 2V würden über den 4.7k abfallen. 5V-3.3V/4.7k ~ 0.5mA. mehr wäre das nicht. Aber das weiss ich eben nicht genau und einen Freischuss will ich nicht riskieren. Testweise könnten die PU natürlich auch an 3.3V kommen, der AVR gibt an seinen SDA/SCL Leitungen ja keine Spannung aus, der Master zieht nur die Senke runter auf 0V, das ist I2C. Und solange 0.3xVcc und 0.7xVcc als Schwellen eingehalten werden müsste das klappen. Ich probiers aus mit Pu an 3.3V.... aber heute nicht mehr.
Christian J. schrieb: Testweise könnten die PU natürlich auch an 3.3V kommen, der > AVR gibt an seinen SDA/SCL Leitungen ja keine Spannung aus, der Master > zieht nur die Senke runter auf 0V, und will > 0,7 * Vcc als High Eigangsspannung haben. P.S. 0,7 * 5 = 3,5
Christian J. schrieb: > Geht nicht ....uC muss wegen anderer Peripherie 5V haben. 5V würden über > 4.7k an den I2C Pins liegen. Und auch wenn kein Plan im ADXL Datensheet > drin ist, so war das bisher immer so, dass Pins zwei Clamb Schutzdioden > gegen Vcc und GND haben, über die Überspannung abfliessen kann. Diese > Dioden kann man als Pegelanpassung missbrauchen, wenn der Strom nicht zu > hoch wird. Die überschüssigen 2V würden über den 4.7k abfallen. > 5V-3.3V/4.7k ~ 0.5mA. mehr wäre das nicht. Das ist so in Ordnung, aber nur die Hälfte der Wahrheit. Die Dioden begrenzen den High-Pegel auf 3,3V plus Diodenspannung (der Strom ist sogar geringer) aber der µC sieht auch nicht mehr. Wenn ihm das reicht, könnte man die Pullups am I2C Bus auch gleich auf eine niedrigere Spannung klemmen. > Aber das weiss ich eben nicht genau und einen Freischuss will ich nicht > riskieren. Kost doch auch kaum mehr als der Extrakäse auf der Pizza oder ein Kaffee in Pappe. MfG Klaus
5V ist tot schrieb: > P.S. 0,7 * 5 = 3,5 Grrr..... nerv! Da fehlen >0.2V zum Glück. Wie gesagt, ich probiers aus, mit 3.3V und 5V an den PU. Manchmal funktionieren Dinge auch abseits des Datenblattes, nur halt nicht über den gesamten Temp.bereich oder mit maximaler Geschwindigkeit. Wenns raucht gibts eben eine Pizza Margaritha statt Procuitto.
Für die SCL Leitung ists eh wurscht, da wird ein 1k oder so in der Leitung reichen. NXP hatte auch mal eine trickige Schaltung mit 2 Transistoren veröffentlicht (oder wars noch Philips?), die bidirektional 5 auf 3,3V wandelt und speziell für I²C gedacht war. Ich finde das Dings bloss nicht mehr.
Matthias Sch. schrieb: > Ich finde das Dings bloss nicht mehr. Guckst du hier: http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter "Connecting the 5V Arduino directly to a single 3.3V-powered I2C chip usually works, even though it violates official specifications in multiple ways. In practice, Arduino's internal pullups are so weak that ESD protection diodes inside the 3.3V chip limit the voltage."
Hallo, alles halb so wild. Das Ding spielt einwandfrei bei PU an 3.3V mit einem I2C Bus eines Arduino. Und da die TWI der Attinys ja normale Pegel hat und keine I2c wird das Modul es da auch tun. Vielleicht bin ich ja blöd aber wieso liefern die Module Werte völlig verschieden von 0 wenn sie in Ruhe sind? Z sogar extrem hoch, nur bei 16G kommt was raus: X = -333 Y = 158 Z = 1102 bei völliger Ruhe. Umgerechnet in g ist es auch nicht 0 sondern 4-5g oder 40g bei Z. Ich benutze die Adafruit Lib fürs erste, die spielt out of the box und gibt noch einiges mehr aus mit dem Demo Sketch. Komisch...
Ein PCA9517 würde ein "sauberes" Design ermöglichen. I2C mit 5V-Pullups auf der einen, und I2C mit 3.3V-Pullups auf der anderen Seite.
Rufus Τ. Firefly schrieb: > Ein PCA9517 würde ein "sauberes" Design ermöglichen. Die Module sind schon mit PU->3.3V ausgeliefert und haben einen 3.3V Regler drauf, der Vcc=5V ermöglicht. Vermutlich funktionieren sie "haarscharf". Da ich aber keine echte I2C nutze, sondern einen normalen Pin außerhalb der I2C Spec, dessen Schwellwert bei Vcc * 0.6 = 3.0V liegt und damit ein eindeutiges Signal ermöglicht. Jaja, nix für ein Industriedesign aber fürn Schreribtisch reicht es ja.... Z = 1097 in Ruhe ist aber nicht normal und kann auch nicht per Offseet korrigiert werden, da der nur 8 Bit hat. Vermutlich aber blicke da noch was nicht richtig, werde mir mal das Datenblatt in ruhe durchlesen.
Christian J. schrieb: > Vielleicht bin ich ja blöd aber wieso liefern die Module Werte völlig > verschieden von 0 wenn sie in Ruhe sind? Z sogar extrem hoch, nur bei > 16G kommt was raus: Herzlichen Glückwunsch! Du hast die Erdbeschleunigung entdeckt. 0/0/0 ist nur in der Schwerelosigkeit zu erwarten. fchk
Frank K. schrieb: > Herzlichen Glückwunsch! Du hast die Erdbeschleunigung entdeckt. Ach Mensch, halt mich nicht für blöde..... 1097 kann ja nicht sein und 44g ist die auch nicht. Diese blöde Lib ist viel zu kompliziert mit ihren Floats usw. Habe mal das Full Precision Bit rückgesetzt und die Welt sieht schon anders aus. Ich vermute allerdings dass der Sensor fratze ist, mit einer reinen I2C Lösung ohne Libs kommt auch Müll raus bei Z. x: -166 y: 78 z: 511 x: -168 y: 79 z: 511 x: -168 y: 78 z: 511 x: -166 y: 78 z: 511 x: -168 y: 78 z: 511 x: -168 y: 79 z: 511 x: -167 y: 78 z: 511 x: -168 y: 78 z: 511 x: -168 y: 78 z: 511 x: -168 y: 78 z: 511 x: -167 y: 79 z: 511 x: -168 y: 79 z: 511 x: -167 y: 78 z: 511 x: -168 y: 78 z: 511 x: -168 y: 78 z: 511 x: -167 y: 79 z: 511 x: -169 y: 78 z: 511 x: -168 y: 78 z: 511 x: -168 y: 79 z: 511
PS: Na, supi, mal wieder C-Ware au China! Nachdem ich mit dem Chip im E-Labor war und wir da ne Runde drauf geschaut haben ist die Sache klar: Es sind revisionen auf dem Markt, wo die Z Achse defekt ist. Ihr Fehleroffset liegt weit ausserhalb der Spec und ist daher auch nicht auf 0 korrigierbar. Das Modul kann nur bei +16g betrieben werden. Mehrere Quellen im Netz belegen das. Darüber hinaus hat es einen Lineraritätsfehler, rechnerisch ergibt sich ein Wert von 1,3g an der Erdoberfläche. 1g wäre erlaubt. Das Datenblatt lässt bei 1g maximal #282 als Ausgabewert zu, tatsächlich sind es aber ca 320. Der Chip hat den Datecode 3.2014 und wurde auf den Philipinien hergestellt. Ich vermute mal, dass wieder mal C Ware auf den Markt geworfen wurde, für Spielsachen reicht es ja und für "Arduinos" :-(
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.