i'm having some issues with a Sensor. Precisely TLE493D-W2B6(Product typ: A1). I want to read it registers but it seems my UNO can't communicate with the Sensor. According to datasheet write address is 0x44 and read address is 0x45. But Wire.h uses only 8-bit address. Is there anyway i can still communicate with the Sensor??
Seth_30:
i'm having some issues with a Sensor. Precisely TLE493D-W2B6(Product typ: A1). I want to read it registers but it seems my UNO can't communicate with the Sensor. According to datasheet write address is 0x44 and read address is 0x45. But Wire.h uses only 8-bit address. Is there anyway i can still communicate with the Sensor??
1. In I2C Protocol. the device/slave address is usually 7-bit covering this range: 0b0001000 to 0b1111111
2. When Master sends something to Slave, it is a 'write mode'; the data direction is from Master to Slave which is registered by putting LOW-bit (0) at the right side of 7-bit Slave address. Accordingly, the I2C address for your Slave is: 0100010[0] ==> 0100010. For example:
Wire.beginTransmission(0b0100010); //7-bit slave address is: 0100010
Wire.write(0x01);
Wire.endTransmission();
3. When Master wants to read something from Slave, it is a 'read mode'; the data direction is from Slave to Master which is registered by putting HIGH-bit (1) at the right side of 7-bit Slave address. Accordingly, the I2C address for your Slave is: 0100010[1] ==> 0100010. For example:
Wire.requestFrom(0b0100010, 2); //7-bit slave address is: 0100010; 2-byte to read