What is the I2C speed I can get after powered on the PHY for low speed I2C

A follow up question for https://www.toradex.com/community/questions/55771/use-low-speed-i2c-as-general-purpose-i2c.html?childToView=56194#comment-56194

After activated the MIPI-CSI or MIPI-DSI, may I know if the I2C will be running in standard speed (400kHz) or it will still stay as low speed?

Side note: In our application, we need more than 4 I2C buses running in standard speed.

Hi @kh_ong,

To be sure of the desired I2C Speed, you need to define it for each I2C bus in the given device tree with the parameter “clock-frequency”.

In order to assist you better:

  • Which version of the Apalis iMX8QXP are you using?
  • Which Operating System are you using?
  • Are you using your own customized carrier board?
  • In order to expose the 4 (or more), have you verified the necessary I2C bus you may expose in order to avoid conflicts? You can check that by using the Pinout Designed Tool.

Best regards,

André Curvello

Hi @andrecurvello , thank you so much for your prompt response.

  • I will be using “Apalis iMX8QXP 2GB ECC IT”, likely V1.1A due to V1.1B is still not available at the moment. Does the version matters? Because eventually we have to deploy our solution on the released “Apalis iMX8QXP 2GB ECC IT” once it is available to purchase.
  • We will be using OpenEmbedded/Yocto image
  • Yes, we will be using a customized carrier board
  • Yes, I have verified with Pinout Designer Tool.

Since I need more than 4 I2C buses, I have to make use of the I2C buses that are dedicated for MIPI and LVDS (which listed as “low speed I2C” in the datasheet).

From the datasheet, it says after powered on the corresponding PHY, I can use those I2C buses as general purpose. However, I am not clear if these buses is capable to run at what speed.

The datasheet call out these buses as “low speed I2C”, hence I would like to understand after I powered up the corresponding PHY, what is the max speed that I can configure these I2C buses to?

Hi @kh_ong,

Thanks for the feedback.

Does the version matters?

Depending on the version you’ll be using, it’s a possibility. We just check to guarantee that there are no changes on that.

We will be using OpenEmbedded/Yocto image

OK.

Yes, we will be using a customized carrier board

OK.

Yes, I have verified with Pinout Designer Tool.

OK.

The datasheet call out these buses as “low speed I2C”, hence I would like to understand after I powered up the corresponding PHY, what is the max speed that I can configure these I2C buses to?

I’ve checked with the BSP team, and this “low-speed”, according to NXP documentation, is 100 kbits/s.

Also, could you share with us why do you require all of these I2C buses to be available?

Best regards,

André Curvello

Hi @andrecurvello ,

We are trying to purchase the V1.1B for our initial development, but eventually our product will be shipped with the released version of Apalis iMX8QXP 2GB ECC IT.

Also, could you share with us why do you require all of these I2C buses to be available?

Because our product/application deal with a lot of I2C devices. According to our Hardware Engineer, we need 5-6 I2C buses in order to support all these devices.

May I know is there any possible way for us to configure the 100 kbits/s speed to 400 kbits/s?

Thanks.

Hi @kh_ong,

May I know is there any possible way for us to configure the 100 kbits/s speed to 400 kbits/s?

For the I2C interfaces of the MIPI, I don’t think so, due to the limitations of that given interfaces.

But… If you have the signal “easy” to test on your bench, you can try to set the I2C frequency for that given interface to 400k, with something like this “clock-frequency = < 400000 >;” in the device-tree for that I2C node configuration. Then, if you have an oscilloscope or signal analyzer, you can set it using i2c-tools or something similar on Linux, verifying if the frequency of the I2C transactions is set to 400k.

Changing topics a little bit from the I2C/MIPI discussion, can you check with your engineer if there is a possibility to use I2C Switch or Multiplexer? IMHO, that would be a good solution in your case.

You can also use something like SPI-to-I2C bridge, making use of available SPI ports on the iMX8 as well.

Best regards,

André Curvello

Thanks for the input, @andrecurvello !

can you check with your engineer if there is a possibility to use I2C Switch or Multiplexer?
Yea we do plan to use I2C mux in our design, but due to we have a lot of I2C devices on the board, putting too many mux may increase the latency. So we are trying to see if we can make use of the remaining I2C that is dedicated to MIPI/camera interface.

Will definitely try out your suggestion on setting clock-frequency attribute in the device tree and consider SPI-to-I2C bridge. Thanks!

Hi @kh_ong,

You are welcome.

If you have any updates on this matter, please let us know.

Best regards,
André Curvello