Skip to Main Content

Embedded Technologies

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

I2CAccelerometerSample and Raspberry PI

HarrySattFeb 2 2016

Hi

I am trying to get the I2CAccelerometerSample running but I am not successful. The sample uses a read which communicats with the MMA without using combined read sequence. This means a STOP condition is send after the transfer of the register pointer which erases this information and the read always reads at 0x00. Which is defenitly wrong. With bash I can read in the data correctly. For example I was trying to read out the WHO_AM_I Device ID register. this shoul read 0x2A. That is fixed.

I tried with the command prompt on the RPi. This does well as you can see in the screenshot and the oscilloscop output.

I2C from console.jpg

I2C-oscilloscope.jpg

This is correct reading from the WHO_AM_I ID register.

If I try the I2CAccelerometerSample from the ME SDK and add one line in the private void initializeAccelerometer() to read out the WHO_AM_I ID register

| | private void initializeAccelerometer() throws IOException { |
| | // read WHO_AM_I DEVICE_ID from register 0x0D |
| | int ID = readRegister( (byte)0x0d ); |
| | // set 0 to 0x2A control register to set the accelerometer in configurable mode |
| | writeRegister(CTRL_REG1_ADDRESS, (byte) 0); |
| | // set accelerometer range to 8g |
| | writeRegister(XYZ_DATA_CFG_ADDRESS, (byte) 2); |
| | // turn the active mode on |
| | writeRegister(CTRL_REG1_ADDRESS, (byte) 1); |
| | } |

This gives me FF what is really wrong. See oscilloscope reading. The transfer of the register pointer is followed by a stop sequence and the MMA can not deal with this. The read request is far away leading to a wrong reading. I am not sure that this sample ever worked with a Raspberry Pi.

I2C-oscilloscope ME.jpg

I2C-oscilloscope ME 001.jpg

If the sample is running and it does I only see 0.

Console.jpg

What can I do.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 1 2016
Added on Feb 2 2016
0 comments
882 views