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.

  • I assume you mean that they are not described in the ADuCM350 Devices Drivers API Reference Manual? If this is what you are referring to, then yes, this is an error. This manual was automatically generated based on inline commenting in the SDK. In this case, these API's are enclosed in a preprocessor macro which did not complile them, therefore Doxygen must have missed them. If you refer to these funtions within the source code itself (i2c.c), you will find that they are indeed fully described. Apologies for this. We will rectify it in the next revision.

    Regarding an example using slave mode, this is something that we will consider for a future revision.

  • It is possible in theory, but not tested! The I2CDIV register is used to set the high time and low time of the I2C clock. If my calculations are correct, a value of HIGH = 0x06 and LOW = 0x07 should yield a 50:50 1MHz clock. Note that this will require PCLK to be set to 16MHz. But as mentioned, this has not been tested.

  • Is it possible to increase I2C speed to 1MHz? Even if it was not tested, is there a register we can use to boost I2C speed?