-
        

Ergebnis 1 bis 5 von 5

Thema: MEMS-Sensor LSM330DL DataReadyInterrupt

  1. #1

    MEMS-Sensor LSM330DL DataReadyInterrupt

    Anzeige

    Hallo liebe Community

    ich arbeite momentan mit einer Sensorkombination von Beschleunigungssensor und Gyroskop.
    Der Sensor ist der LSM330DL von STMicroelectronics.

    Für Interessierte hier das Datenblatt: http://www.st.com/web/en/resource/te...DM00034579.pdf

    Dies ist mein erster Sensor den ich mir von Grund auf erarbeiten muss, und erhoffe mir hier eine kleine Hilfestellung von den Leuten hier im Forum die
    schon mehr Erfahrung mit Sensoren gemacht haben. Im besten Fall sogar mit ähnlichen Sensoren von ST.

    Nun zu meinem Problem, woran ich nun schon ein paar Wochen sitze:
    Der Gyroskop besitzt einen DRDY-Pin welchen man für einen DataReady-Interrupt konfigurieren kann. Mein Versändniss von diesem DRDY-Interrupt ist, dass jedes mal wenn im Sensor
    neue Daten zur Verfügung gestellt wurden wird auf der DRDY-Leitung der Pegel auf Low gezogen und somit ein Interrupt ausgelöst.
    Momentan ist es so, dass ich die Leitung mit einem Oszi messe und der Pegel dauerhaft auf High ist - also kein Interrupt ausgelöst wird.

    Ich teste dies momentan mit einem sehr abgespeckten Programm wo ich den Sensor initialisiere, und danach in einer Endlosschleife warte.

    Die Konfiguration der Register ist wiefolgt:
    CTRL_REG1_G: 400Hz - 50Hz cutoff, normal mode, xyz - enable
    CTRL_REG2_G: everything 0
    CTRL_REG3_G: I2_DRDY enable
    CTRL_REG4_G: continuous update, LSB, 2000dps, 4-wire
    CTRL_REG5_G: FIFO disabled, HPF disabled

    Für ein paar Hinweise oder auch nur Ideen wäre ich sehr dankbar!

    Grüße patz
    Geändert von patz (22.11.2013 um 10:20 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    938
    Zitat Zitat von patz Beitrag anzeigen
    Momentan ist es so, dass ich die Leitung mit einem Oszi messe und der Pegel dauerhaft auf High ist - also kein Interrupt ausgelöst wird
    ...
    Die Konfiguration der Register ist wiefolgt:
    REG1: 400Hz - 50Hz cutoff, normal mode, xyz - enable
    REG2: everything 0
    REG3: I2_DRDY enable
    REG4: continuous update, LSB, 2000dps, 4-wire
    REG5: FIFO disabled, HPF disabled
    "Figure 13" und "Figure 14" legen nahe, dass die Interrupts High-aktiv sind.
    Die Bezeichnungen REGn habe ich nicht gefunden, sodass ich die Konfiguration nicht prüfen kann.
    Hängen die INT-Leitungen an Pullups?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo patz,

    Da gibt's fast unendlich viele Kombinationen für die Interrupts bei diesem Chip, ist alles frei programmierbar!

    Es scheint 3 Interruptausänge zu gebe und du kannst angeben, was an welchem Pin erscheinen soll.

    Interrupts musst du quittieren, e gibt aber auch eine Autoquittierung.

    Da musst du dich selber durchlesen und ausfiltern, was für deine Anwendung relevant ist.

    MfG Peter(TOO)

  4. #4
    Danke für eure schnelle Antwort.

    Zitat Zitat von RoboHolIC Beitrag anzeigen
    "Figure 13" und "Figure 14" legen nahe, dass die Interrupts High-aktiv sind.
    Hängen die INT-Leitungen an Pullups?
    Dies gilt aber nicht grundsätzlich. Im Register CTRL_REG3_G (H_Lactive) kann zum Beispiel für den INT1_G ausgewählt werden ob dieser nun High-/Low-active ist.
    Momentan ist der DRDY-Pin auf dem Prozessor auf Input, ohne einem internen/externen Pullup.

    Zitat Zitat von RoboHolIC Beitrag anzeigen
    Die Bezeichnungen REGn habe ich nicht gefunden, sodass ich die Konfiguration nicht prüfen kann.
    Entschuldigung für die ungenaue Angabe. Ich meine natürlich die CTRL_REGn_G Register.

    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Da gibt's fast unendlich viele Kombinationen für die Interrupts bei diesem Chip, ist alles frei programmierbar!

    Es scheint 3 Interruptausänge zu gebe und du kannst angeben, was an welchem Pin erscheinen soll.
    Wenn du es genau nimmst, gibt es für diesen Chip 4 Interruptausgänge. (INT1_A, INT2_A, INT1_G, DRDY_G)
    _A referenziert den Accelerometer und _G den Gyropskopen auf den ich mich momentan fokussiere.

    Im CTRL_REG3_G kann man den DRDY-Interrupt aktivieren/deaktivieren und zudem noch diverse FIFO Allerts darauf konfigurieren.
    In meinem Fall ist dieser nur aktiviert ansonsten nichts. Dann würde ich davon ausgehen, das sich der DRDY so verhält wie in meinem Eingangspost beschrieben.
    Leider gibt es so gut wie keine Doku darüber.

    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Interrupts musst du quittieren, es gibt aber auch eine Autoquittierung.
    Ähm... wo und wie muss ich die denn quittieren? Am besten wäre es, wenn du kurz beschreiben könntest wie du es von anderen Sensoren kennst.
    Ich kenne das Datenblatt vom LSM330DL schon fast auswendig, so oft habe ich das durchgeblättert in der Hoffnung so etwas zu finden.

    Das einzige was so in die Richtung gehen würde, wäre die Einstellung BDU im CTRL_REG4_G. Dort kann man einstellen, das die Output-Register nicht aktualisiert
    werden solange sie nicht komplett ausgelesen wurden. Bei mir steht BDU auf continuous update.

    Zitat Zitat von Peter(TOO) Beitrag anzeigen
    Da musst du dich selber durchlesen und ausfiltern, was für deine Anwendung relevant ist.
    Dort bin ich ja schon seit einigen Wochen dabei. Das einzige was ich momentan möchte ist, dass ich einen Interrupt bekomme wenn für alle Achsen neue Werte
    in den Registern liegen.

    Danke für eure Mühe.
    patz

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo patz,

    Zitat Zitat von patz Beitrag anzeigen
    Ähm... wo und wie muss ich die denn quittieren? Am besten wäre es, wenn du kurz beschreiben könntest wie du es von anderen Sensoren kennst.
    Ich kenne das Datenblatt vom LSM330DL schon fast auswendig, so oft habe ich das durchgeblättert in der Hoffnung so etwas zu finden.
    z.B. INT_SRC_G
    Reading at this address clears the INT1_SRC_G IA bit (and eventually the interrupt signal
    on the INT1_G pin)


    Schau dir auch mal dieses Datenblatt an:
    http://www.st.com/st-web-ui/static/a...DM00037200.pdf

    Entwickler sind grundsätzlich faul
    Wenn ein Konzept funktioniert, wird es nicht grundsätzlich geändert, somit helfen auch Datenblätter von Schwester-Chips weiter.

    Hier noch etwas zu diesen Chips:
    http://www.st.com/st-web-ui/static/a...DM00067982.pdf
    http://www.st.com/st-web-ui/static/a...DM00069521.pdf

    In den Anhängen ist weitere Literatur aufgeführt, welche vielleicht weiter hilft.

    MfG Peter(TOO)

Ähnliche Themen

  1. RS485-Sensor oder doch lieber RS232-Sensor an Laptop andocken?
    Von Cysign im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 23.03.2013, 12:09
  2. Verkaufe Räumung:US-Sensor, IR-Sensor,Displays,MTreiber,Servorboard, Pan&Tilt Köpfe
    Von kellerkind im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 3
    Letzter Beitrag: 18.06.2012, 18:42
  3. Sensor=Sensor???
    Von syndrome im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 07.06.2005, 18:02
  4. US-Sensor
    Von nux im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 3
    Letzter Beitrag: 17.08.2004, 13:08
  5. Temp-Sensor KT130 (PTC-Sensor) an C-Control
    Von Thomas im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 02.12.2003, 13:53

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •