Search FAQs on the left to see if your question has been answered. Click on the dropdown to view all of the documents associated with the product. If you can't find your question, click on Ask a Question

ADuCM350 FAQ I2C serial interface

1. What bit rates are supported by the I2C interface?

>> The I2C channel can be set to operate in fast mode (400 kHz) or standard mode (100 kHz).

2. How many slaves can be addressed?

>> Supports four 7-bit device addresses in the slave  or one 10-bit address and two 7-bit addresses.

3. What features from the standard I2C spec does it support?

>> 10-bit addressing, repeated starts, Clock stretching for both master and slave, master arbitration and General call features are supported.

    •  Analog Employees 
    in reply to devangs3


    We don't have example for independent slave function, but if you follow the adi_I2C_MasterSlaveLoopback function in i2c.c, you should be able to implement an i2c slave 


  • The MasterSlaveLoopback function implements a master TX and slave RX. I want to implement a fully independent slave RX/TX which can be used to exchange data with some other hardware. Is there an example for the same?

  • I have problem that ADUMC350 do not send acknowledgement when I address it (slaveID) in the bus.

    I use the following steps:



    adi_I2C_SlaveInit (ADI_I2C_DEVID_0,  &hDevice)

    adi_I2C_RegisterCallback(hDevice, cbHandler, hDevice)


    adi_I2C_SetBlockingMode(hDevice, false)

    adi_I2C_SlaveReceive (hDevice,slaveID,rx,MAXBYTES,false)

    while (true)    ;   //loop

    Where is mistake?

    If there is no I2C slave example available please provide steps (function names) which needs to be taken to initiate i2c as slave receiver/transmitter.

  • In sdk functions adi_I2C_SlaveInit, adi_I2C_SlaveReceive, adi_I2C_SlaveTransmit are not described, and there is no example of using I2C in slave mode. Can you give example of using slave mode in I2C by ADUCM350?

    •  Analog Employees 
    in reply to Bemben

    There is a function in i2c.c for implementing a master/slave loopback (adi_I2C_MasterSlaveLoopback). Following the flow of this function may help you.