Moin, Ich baue gerade eine Platine, welche einen Abstand im Mikrometer Bereich messen soll. Hierfür habe ich mir die Methode ausgesucht, die Induktivität einer Spule in ein digitales Signal zu wandeln, die sich ja verändert, wenn ein Metall-Target der Spule näher kommt. Hierfür gibt es den LDC1612 von TI, der genau diese Umwandlung in einer sehr hohen Auflösung durchführen kann. Ich habe diesen Sensor zusammen mit einem S32k144 Mikrocontroller (auf dem FreeRTOS läuft) und der entsprechenden Peripherie auf eine Platine gebaut. Nun habe ich versucht den LDC mit einer I2C Nachricht anzusprechen, erhalte jedoch ausschließlich NACK. Die Versorgungsspannung ist sauber, genau wie das Ground. Die Clock liefert ebenfalls ein für den LDC richtiges Signal. SDA und SCL werden vom Mikrocontroller ebenfalls richtig angesteuert, wie man im angefügten Auszug meines Logic Analyzers sehen kann. Es lässt sich nicht ganz ausschließen, dass der LDC tatsächlich richtig kontaktiert, ich habe jedoch bereits 5 LDCs aufgelötet, mit Lötofen, mit Heißluftfön und mit Lötkolben, je ohne Erfolg. Ich habe keine Idee mehr, wo der Fehler noch liegen könnte und bin dementsprechend für jede Hilfe dankbar. Lg, Jonatan [1] Paper zum Sensor https://www.sciencedirect.com/science/article/pii/S2405896322029093?ref=pdf_download&fr=RR-2&rr=9d592cb91d5c9758 [2] Paper zur anwendung des Sensors https://www.sciencedirect.com/science/article/pii/S0378775317310686 [3] Datenblatt des Sensors https://www.ti.com/lit/ds/symlink/ldc1614.pdf?ts=1772380657724&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FLDC1614
ADDR pin high oder low? 0x2B versucht? Manche verstehen den RW bit auch inklusive adresse manche nicht. Mal versuchen 0x2A oder 0x2B durch 2 teilen. Schematic posten wird auch helfen.
Keine Prosa schreiben. Das versteht man nicht. die Sprache der Elektronik ist der SCHALTPLAN!
Andras H. schrieb: > Mal versuchen 0x2A oder 0x2B durch 2 > teilen. Wenn ich das DaBla lese, eher mal 2 nehmen!
Pull-ups an SDA und SCL vorhanden und sinnvoll dimensioniert..? Wie sehen die Signale am Oszi aus? -> der LSA ist Imho erst der zweite Schritt, nachdem klar ist dass die Flanken schön sauber sind, Anstiegszeit passt etc.
Mario M. schrieb: > Helmut -. schrieb: >> mal 2 nehmen! > > Genau. Der LA zeigt nur 0x15 als 7-Bit-Adresse. Das ist falsch. ACK! Das übliche Missverständnis...
Ich verstehe nicht ganz, was das Problem ist. Soll ich statt 2a jetzt 54 als adresse senden? Falls ja, wieso zeigt der logic analyzer eine falsche bzw. halbierte Adresse an? Edit: Ich habe jetzt die Adresse um ein bit geshiftet und auch die einstellung gefunden um es richtig anzeigen zu lassen. Mit 54 als Adresse also 2a um 1 geshiftet bekomme ich aber immernoch NACK.
:
Bearbeitet durch User
Ein ganzes Betriebssystem um einen Sensor zu lesen. Boaaahh... Zeige bloss nicht den Sourcecode des Programms, der könnte die Leser und potentiellen Helfer verwirren.
Jonatan schrieb: > Soll ich statt 2a jetzt 54 als adresse senden? Nein, du sollst 0x2A als Adresse senden. Da die Adresse in den oberen 7 Bit des ersten Byte steckt, hat das erste Byte den Wert 0x54. Aber nur beim Lesen. Bei Schreibzugriffen hat das erste Byte den Wert 0x55. > Mit 54 als Adresse also 2a um 1 geshiftet bekomme ich aber > immernoch NACK. Dann lasse einen Port-Scanner laufen. Bei Arduino ist das ein der Beispiel-Sketche. Du könntest auch einen PC mit I²C Adapter dran hängen und damit scannen. Das ist besonders einfach unter Linux mit den i2c-tools und einem ATtiny85 als Adapter. Siehe angehängte Firmware.
:
Bearbeitet durch User
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.



