Forum: Platinen Induktiver Sensor antwortet nicht auf I2C


von Jonatan (jonatan31)


Angehängte Dateien:

Lesenswert?

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
von H. H. (hhinz)


Lesenswert?

Und wie hast DU ihn beschaltet?
von Andras H. (andras_h)


Lesenswert?

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.
von Helmut -. (dc3yc)


Lesenswert?

Keine Prosa schreiben. Das versteht man nicht. die Sprache der 
Elektronik ist der SCHALTPLAN!
von Helmut -. (dc3yc)


Lesenswert?

Andras H. schrieb:
> Mal versuchen 0x2A oder 0x2B durch 2
> teilen.

Wenn ich das DaBla lese, eher mal 2 nehmen!
von Ron-Hardy G. (ron-hardy)


Angehängte Dateien:

Lesenswert?

Andras H. schrieb:
> Mal versuchen 0x2A oder 0x2B durch 2
> teilen.

nicht doch besser *2?
von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

PULL am SCL ?
von Jan (dunno)


Lesenswert?

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.
von Mario M. (thelonging)


Lesenswert?

Helmut -. schrieb:
> mal 2 nehmen!

Genau. Der LA zeigt nur 0x15 als 7-Bit-Adresse. Das ist falsch.
von H. H. (hhinz)


Lesenswert?

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...
von Jonatan (jonatan31)


Angehängte Dateien:

Lesenswert?

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
von Wastl (hartundweichware)


Lesenswert?

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.
von Hans W. (hanswieland)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.