- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: Mpu 9250 bascom

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    31.08.2007
    Beiträge
    30

    Mpu 9250 bascom

    Anzeige

    Praxistest und DIY Projekte
    Guten Tag zusammen,
    ich versuche einen neigungskompensierten Kompass mittels MPU 9250 zu realisieren.
    Hier das Produktdatenblatt:https://3cfeqx1hf82y3xcoull08ihx-wpe...0A-01-v1.1.pdf
    Die Bewegungen sind langsam. Deshalb brauche ich keine Daten vom Gyroskop.
    Ich brauche die Himmelsrichtung und den groben PitchWinkel.

    Zur Programmierung meiner Projekte benutze ich BASCOM.

    Mir ist nicht klar wie ich die Register des Magnetometers ansprechen kann.
    Hier der Link zum Datenblatt für Register: https://invensense.tdk.com/wp-conten...gister-Map.pdf
    Auf Seite 49 , Kap. 5.3 ist eine Device ID für das Magnetometer mit dem Wert 48H angegeben.
    Dennoch bekomme ich das Magnetometer nicht angesprochen.
    In einer anderen Library
    https://raw.githubusercontent.com/Se..._9DOF_9250.zip
    fand ich MPU9150_RA_MAG_ADDRESS = 0x0C
    Auch das funktioniert nicht als I²C slave Adresse.

    In GitHub gibt es weitere Bibliotheken in C++ welche mir aber auch nicht richtig weiterhelfen.
    Beispiel: https://github.com/asukiaaa/MPU9250_asukiaaa

    Deshalb bitte ich um Euren Rat. Vielleicht hat jemand von Euch dieses Sensormodul von unter Bascom verwendet.
    beste Grüße

    Christian

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von autoguider Beitrag anzeigen
    fand ich MPU9150_RA_MAG_ADDRESS = 0x0C
    Auch das funktioniert nicht als I²C slave Adresse.
    Hallo Christian,

    angesprochen habe ich einen MPU-9250 auch noch nicht. Vielleicht hilft Dir ja erst mal die richtige Adresse weiter.

    Im Produktdatenblatt Seite 12, Tabelle "3.4.2 A.C. Electrical Characteristics" ist die Sieben-Bit I2C Adresse mit 1101000 oder 1101001 angegeben. Ob Bit 0 eine 0 oder 1 ist wird durch Beschaltung von Pin AD0 des MPU bestimmt.

    Für I2C muß nCS auf HIGH (Vdd, Vddio) liegen. Seite 20, Tabelle "4.2 Typical Operating Circuit"

    I2C Protokoll ist dann weiter Seite 32, Kapitel "7.2 I2C Interface" beschrieben. Sieht nach Standard aus und mit der Hilfe zu I2C in Bascom könnte man vielleicht mal ein Register auslesen.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    31.08.2007
    Beiträge
    30
    Hallo Searcher,
    mit 1101000 und 1101001 sind die Register des Gyroskops (Wendekreisel), Beschleunigung und auch die Temperatur erreichbar.
    An die Daten des Magnetometers komme ich nicht heran.
    Ich versuche mittels https://github.com/sparkfun/SparkFun...rduino_Library nachzuvollziehen wie die Einheiten anzusprechen sind.
    Die Kette der include-files und Header Dateien sind schon etwas verwirrend.
    Auf dem Chip gibt es eine Digital Motion Processing engine welche die Sensordaten abfragt und verarbeitet. Das Produktdatenblatt macht es einem nicht ganz einfach herauszufinden wie diese zu aktivieren ist und wie man an die prozessierten Daten kommt.

    Ich habe nun die Vermutung daß das Magnetometer über einen internen I²C Bus angesprochen wird. ( s.Prod. DBl. S. 21 4.4 Block Diagram).
    Der serial Interface bypass könnte es möglich machen das Magnetometer anzusprechen. Über Register 55 Bit 1 (s.Reg.map S. 29) s. könnte der Bypass ermöglich werden.
    Die I²C Adresse des Magnetometers müßte dann 48H sein (s.S. 46 Kap 5.1 RegisterMap description).
    Das hatte ich noch nie mit einem I²C Baustein daß ein interner Bus gemanaged werden muß. das muß einfacher gehen. Nur wie?
    Die Features der DMP blieben dabei ungenutzt.

    Es bleibt spannend.

    beste Grüße
    Christian

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von autoguider Beitrag anzeigen
    Ich habe nun die Vermutung daß das Magnetometer über einen internen I²C Bus angesprochen wird. ( s.Prod. DBl. S. 21 4.4 Block Diagram).
    Der serial Interface bypass könnte es möglich machen das Magnetometer anzusprechen.
    Da liegst Du vermutlich richtig. Ich sehe das auch so - jetzt
    MPU-9250 Product Specification, Seite 24 oben:
    "Pass-Through mode is also used to access the AK8963 magnetometer directly from the host. In this
    configuration the slave address for the AK8963 is 0X0C or 12 decimal."


    Über Register 55 Bit 1 (s.Reg.map S. 29) s. könnte der Bypass ermöglich werden.
    Die I²C Adresse des Magnetometers müßte dann 48H sein (s.S. 46 Kap 5.1 RegisterMap description).
    Bei der Adresse würde ich aber s.o. auf 0C also 0001100 tippen. Mit gesetztem Lesebit im Adressbyte also 10001100.

    Jetzt kommt vermutlich ausprobieren. Per I²C mit Adresse 1101000 (1101001) im Reg. 55 Bit 1 setzen und dann mit Adresse 0C versuchen was aus dem Magnetometer rauszukriegen. Durch den Pass Through wird dann wohl der Bus vom µc zum Magnetometer durchgeschaltet und man kann ihn dann als Slave ansprechen. Da sollte man dann in Register Adresse 0x00 die Device ID 0x48 finden.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. MPU 9250 Yaw Winkel ist falsch
    Von eniddelemaj im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 18.11.2018, 09:52
  2. Kalibrierung von IMUs, speziell MPU-9250
    Von RobbyCCR im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 04.05.2015, 17:15
  3. USB ASP mit Bascom nutzen? bzw AVRDUDE in Bascom eirichten?
    Von dremler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 09.04.2008, 16:35
  4. wie aus bascom *.bas eine bascom lib machen ????
    Von DarkBeast im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 08.12.2007, 19:10
  5. RP6 und Bascom
    Von Jack Ruben im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 30.07.2007, 19:59

Stichworte

Berechtigungen

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

12V Akku bauen