Hi, I'm using an DM8148 SoC type. I want to communicate only with 1 slave device, and DM8148 is the only master, there are no other devices. When I send the slave address, which is 0x20 in hexa, for writing, I see on oscilloscope 0x40, the cause I don't see the acknowledge. Is with 1 bit shifted to the left. If I shifted to the right, or send 0x10, the slave receives the data and send an acknowledge, but the flag inside the DSP it is set as no acknowlegde received. Other thing is that the last bit is always 0, if I send 0x03, on the output pin I see 0x60. The main ideea of how I send the address is (after configuration)
HIS_I2C_SA=address; // put address is the slave address register
HIS_I2C_CON=0x8601;//set as master and generate start
HIS_I2C_DATA=0x20;
HIS_I2C_CON=0x8602; // generate stop
If you want more details please say. Thanks.