cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

New Contributor II

Hey, I'm trying to use the Accelerometer and the Gyroscope on the LSM6DS3 Sensor. Is there a way to read a register directly with the psoc library? I'm unsure of how to poll for a specific addresses stored info.

   

Thanks in advance!

0 Likes
Reply
3 Replies
Esteemed Contributor II

Welcome in the forum.

   

You have to decide which of the interfaces you want to use with your LSM6DS3 chip. I would suggest to use I2C.

   

Byte I2C interface is quite simple: After setting up the component and starting it you use

   

    I2C_MasterSendStart(DeviceAddress,I2C_WRITE_XFER_MODE);    // Initialize a transaction for writing
    I2C_MasterWriteByte(Register);                // Indicate which register you want to write to
    I2C_MasterWriteByte(Value);                // Write to register
    I2C_MasterSendStop();                    // End of transaction

   

When you want to read from a device you use (example for reading two bytes

   

    I2C_MasterSendStart(DeviceAddress,I2C_WRITE_XFER_MODE);    // Initialize a transaction for writing
    I2C_MasterWrite(Register);                // Indicate which register you want to write to
    I2C_MasterSendRestart(DeviceAddress,I2C_READ_XFER_MODE);
    I2C_MasterReadByte(I2C_ACK_DATA);            // Read from register
    I2C_MasterReadByte(I2C_NAK_DATA);            // Read from register, last byte is NAKed
    I2C_MasterSendStop();                    // End of transaction

   

Not too difficult. Keep in mind that most of the APIs (except those for reading a byte) return a status byte which, when non-zero indicate an error condition.

   

The device address is 0x6a, the register to read from you'll have to take from the datasheet.

   

 

   

Bob

0 Likes
Reply
New Contributor II

Thanks Mr. Marlowe your reply was exact and to the point. I'm able to read values now. Thank you!

0 Likes
Reply
Esteemed Contributor II

You are always welcome!

   

 

   

Bob

0 Likes
Reply