Gast
#4350803
Hallo, ich kann meine IMU (MPU9250) fabelhaft mit SPI initialisieren und auslesen , aber es gelingt mir nicht, daten vom Magnetometer dieses Teils zu bekommen. (ATMEGA 328, AVR-Studio, C) Problem ist wahrscheinlich die Initialisierung des Magnetometers, möglicherweise geht das doch nur über I2C im bypass-mode. Deshalb die frage, hat das schon mal jemend mit SPI geschafft? Ich kann das Who i am register des magnetometers auslesen, aber anscheinend nix in ein register reinschreiben obwohl es dazu bei MPU9250 das register 99 gibt. Ich versuche also, die Register des Magnetometers so zu initialisieren: (Der erste Wert ist das register des MPU9250, der zweite der wert der geschrieben werden soll; ohne {39, 0x81} klappt es auch nicht). {36, 14}, // set I2C slave 0 to < 400 KHz {37, MAG_ADR | WRITE_REG}, // address of magnetometer into I2C-Slave // -0-Control register, write {38, MAG_REG_CNTL2}, // start writing into this register {39, 0x81}, // send this byte {99, 1}, // write value 1 into CNTL2: Reset magnetometer {39, 0x81}, // send this byte {37, MAG_ADR | WRITE_REG}, // address of magnetometer into I2C-Slave //-0-Control register, write {38, MAG_REG_CNTL1}, // start writing into this register {39, 0x81}, // send this byte {99, 0x16}, // write value 6 in CNTL1Cont meas mode 2; // 16 bit {39, 0x81}, // send this byte {37, MAG_ADR & READ_REG}, // address of magnetometer into I2C-Slave // -0-Control register, read {38, MAG_REG_STATUS1}, // start reading from this register; // MAG_REG_STATUS1 = 1 byte before data {39, 0x98}, // I2C_SLV0_EN=1 I2C_SLV0_REG_DIS=1 // I2C_SLV0_LENG =8 Danke für Hilfe!