CoreMPU wrong data

51 views
Skip to first unread message

jeku...@gmail.com

unread,
Dec 29, 2013, 6:04:11 PM12/29/13
to solde...@googlegroups.com
I have CoreMPU and I am commanding it with a STM32F103RET.  The problem is that the measurements are not correct.  Temperature is correct 27.11 C (within 4 C) in the beginning, but after a while it will be suddenly 124.15, and again after some seconds 27.x.  The error is that the MSB in the MSB data byte changes always after some seconds.  I am reading the data once a second.  The same happends also with other measurements.  I have checked with an oscilloscope that the msb is changing in the I2C message as the programs shows.

Also who_am_I returns 0x34 and not 0x68 or in my case 0x69, as the address is.  I have tested with STM library and a library made by Harinadha Reddy Chintalapalli.  Actually Harinadha claims in his library, that the device id is 0x34, as the function MPU6050_TestConnection() in his library also returns.  Intrestingly 0x68=2*0x34, so only a left shift is missing(?).

Also I am not been able to pass through directly to the compass, not even been able to read the data.

In documentations CoreMPU Schematic is wrong name, what opens, is a assembly drawing, not a schematic.  SolderCore should release also the schematic, now it is hard(?) to know, e.g. if there are pull-up resistors or not, or should I connect also 5V.

Any suggestions, how to correct the problems?

Iain

unread,
Dec 31, 2013, 9:42:51 AM12/31/13
to solde...@googlegroups.com
Hello,

This is a difficult one to diagnose as there are lots of unknowns for us. 
The link above does open the schematics? 
You do need to supply pull ups to 3.3V. You can do this on your board or by populating R1 and R2 on the CoreMPU. We don't populate the pull up resistors in case a customer uses multiple SolderCore I2C sensors.
 

Any suggestions, how to correct the problems?

Not without more info. 

The SolderCore processor board is loaded with known working CoreMPU drivers, you could purchase on of them. :o)

Kind Regards

Iain

CoreBASIC Wizard

unread,
Jan 1, 2014, 4:46:24 AM1/1/14
to solde...@googlegroups.com
All CoreMPUs are tested before despatch.  In fact, we've been working with the MPU-6000 series from before it was even available to purchase.

The CoreMPUs are all tested, and even the SPI interface is tested and works on SolderCore for the MPU-6000 (as opposed to the MPU-6050).

The compass is also tested in pass-through mode.  What I've found is that if you have the MPU-6050 autonomously read the compass, as it is capable of doing, you have no means to stop it without (sometimes) locking the secondary I2C bus.

However, these work perfectly well on STM32 too -- I have run MPU-6000 and MPU-9000 hardware on STM32F1, F2, F3, and F4 devices as the code in CoreBASIC uses our Platform API.  (In fact, CoreBASIC is working nicely on STM32F4 devices right now).

CoreBASIC Wizard

unread,
Jan 1, 2014, 4:53:03 AM1/1/14
to solde...@googlegroups.com
Rowley Associates will be releasing the source of all the drivers we've written that go to make up SolderCore and CoreBASIC which you can use if you have a CrossWorks license.  I've attached a subset of our drivers for the Invensense MPU along with the CoreBASIC interfaces to them.  I would suggest that you take a look at invensense_mpu6000_evb_driver which implements the high-level code that ties the components of many Invensense EVBs together and also the CoreMPU.  The low-level code is in the mpu_6000 file.  I've also attached the HMC5883L driver for good measure.

Rowley Associates will also release a range of test programs and examples that run cross-device and cross-platform.  I've been saying it for a while now.  The intention is to make it easy to construct apps on many platforms.

Regards,

-- Paul.
hmc5883l.c
hmc5883l.h
hmc5883l_registers.h
invensense_mpu6000_evb_driver.c
mpu6000.c
mpu6000.h
mpu6000_registers.h
nb_mpu6000.c
Reply all
Reply to author
Forward
0 new messages