How can I make the "RESTART" condition of I2C?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I want to connect a gyro-sensor to BCM20737S.

And the read sequence is like this.

[START] [SLAVEADDR+W] [ack] [REGADDR][ack][RESTART][SLAVEADDR+R][ack][data][ACK][data][ACK][STOP]

Capital letter is "Master to Slave".

Small letter is "Slave to Master".

"REGADDR" is a address of the sensor data like, 0x20 is for X-axis, 0x21 is for Y-axis, so on...

The data is 16bit length.

I already know the sample code of i2c_temperature_sensor and i2cm.h. But it is not like this behavior.

I already have made some products using the i2c function of BCM20737S, and i had thought this gyro-sensor is the same as the read sequence of the  i2c_temperature_sensor, but is not. I made the PCB already for this gyro-sensor...

How can I control the I2C?

0 Likes
2 Replies
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

Did you have a chance to review I2C in "WICED Smart HW Interfaces.pdf"? There are some capabilities pertaining to the use of I2C. Let me know if it helps.

0 Likes
Anonymous
Not applicable

Please use cfa_bsc_OpExtended() as used in i2c_temperature_sensor.

It allows what you want I think.

0 Likes