cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC™ 5, 3 & 1

yaga_3967241
New Contributor II

Hi,

There are already one I2C master and one I2C slave in our design. Can I add another I2C master (and the third I2C component can use any gpio pin, right?)? Is there a limitation on number of I2C components in PSoC 5LP?

Thanks,

Winston

0 Likes
1 Solution
Len_CONSULTRON
Honored Contributor II

Winston,

Assumptions:

  • You are using a PSoC5LP with 24 UDB blocks.
  • Each I2C Master is unique and individual.

Given the assumptions above, you can create 4 I2C Masters.  One of them will be in the fixed function and the other three using UDB blocks.

Len
"Engineering is an Art. The Art of Compromise."

View solution in original post

7 Replies
ncbs
Moderator
Moderator

Hi @yaga_3967241,

Can you mention the specific part number being used?

I2C can be realised by making use of Universal Digital Blocks (UDBs).

Regards
Nikhil

0 Likes
Len_CONSULTRON
Honored Contributor II

Winston,

Assumptions:

  • You are using a PSoC5LP with 24 UDB blocks.
  • Each I2C Master is unique and individual.

Given the assumptions above, you can create 4 I2C Masters.  One of them will be in the fixed function and the other three using UDB blocks.

Len
"Engineering is an Art. The Art of Compromise."

View solution in original post

yaga_3967241
New Contributor II

Hi,

The parts#. we used is CY8C5467AXI-LP108.

Thanks,

Winston

0 Likes
yaga_3967241
New Contributor II

Hi,

Following question. Are there any drawbacks and usage differences comparing I2C made of UDB to fixed I2C? 

Thanks,

Yan

0 Likes
Len_CONSULTRON
Honored Contributor II

Yan,

I don't generally use I2C devices.  So I can't properly answer that question.

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
KyTr_1955226
Valued Contributor

There are some differences, the datasheet for the I2C component covers them so I would recommend reading through it.

  1. The UDB implementation allows you to choose between an external or internal clock to serve as the serial clock source for the I2C component (Fixed Function just uses the BUS_CLK automatically scaled).
  2. RAM/Flash usage differences.  Not too significant (See table from the I2C  datasheet) :KyTr_1955226_0-1629480457345.png
  3. Differences in registers.  This most likely won't matter too much if you're just using the generated API, but if you're writing your own driver, the UDB and FF modes differ in the register definitions.  The UDB registers are covered in the I2C component datasheet, the FF registers are covered in the Technical Reference Manual.
  4. Looks like there are also some possible differences in power usage between UDB and FF.  I won't drop all the DC characteristics tables here, but they are included in the I2C component datasheet (Page 54)
RodolfoGL
Employee

You can implement an I2C Master with bit-bang (no fixed-function or UDB). It will not run as fast, and it will take CPU cycles. But if your application has the bandwidth, you can have as many I2C Masters you want. You are limited to the number of available I/Os.