This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 31st, when you will be able to use this site as normal.

    Forum Stats

  • 3,890,583 Users
  • 2,269,776 Discussions
  • 7,916,824 Comments

Discussions

I2CAccelerometerSample and Raspberry PI

HarrySatt
HarrySatt Member Posts: 26
edited Feb 2, 2016 8:00AM in Java ME Embedded

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.

This discussion has been closed.