This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS160PR410: I2C interface specification

Part Number: DS160PR410

Is there any information on the I2C timing and bus commands structure?

I found timing info in the data sheet under 6.7 SMBUS/I2C Timing Charateristics, but there are no waveforms.

Also, neither the datasheet or SNLU255 provide any information on what exactly is the structure of a command to write (or read) to (from) one of the registers.

For example, Table 5. Sequence to Select a Target Channel. Is the I2C sequence required for this operation DEVICE_ADDRESS, REGISTER_ADDRESS, REGISTER_VALUE, REGISTER_MASK  ? So 4 bytes...in THIS sequence?

 What is the sequence for READING a register?

  • Hello-

    Here is an example READ sequence in XML batch format that reads channel registers of each channel:

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 01</i2c_write> // Select CH0

    <i2c_write addr="0x18" count="1" nostop="1" radix="16">00</i2c_write>
    <i2c_read addr="0x18" count="16" nostop="0"/>

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 02</i2c_write> // Select CH1

    <i2c_write addr="0x18" count="1" nostop="1" radix="16">00</i2c_write>
    <i2c_read addr="0x18" count="16" nostop="0"/>


    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 04</i2c_write> // Select CH2

    <i2c_write addr="0x18" count="1" nostop="1" radix="16">00</i2c_write>
    <i2c_read addr="0x18" count="16" nostop="0"/>

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 08</i2c_write> // Select CH3

    <i2c_write addr="0x18" count="1" nostop="1" radix="16">00</i2c_write>
    <i2c_read addr="0x18" count="16" nostop="0"/>

    Here is an example WRITE sequence in XML batch format that writes to the channel register 0x03 of each channel:

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 01</i2c_write> // Select CH0
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">03 81</i2c_write> // Set EQ Index 2 on CH0

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 02</i2c_write> // Select CH1
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">03 91</i2c_write> // Set EQ Index 3 on CH1


    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 04</i2c_write> // Select CH2
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">03 8A</i2c_write> // Set EQ Index 4 on CH2

    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FF 01</i2c_write> //  
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">FC 08</i2c_write> // Select CH3
    <i2c_write addr="0x18" count="2" nostop="0" radix="16">03 92</i2c_write> // Set EQ Index 5 to CH3

    Regards,

    Davor