How many I2C masters can I have in PSoC 5LP

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
yaga_3967241
Level 3
Level 3
50 sign-ins 25 sign-ins 10 replies posted

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
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

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
Moderator
500 replies posted 50 likes received 250 sign-ins

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
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

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."
yaga_3967241
Level 3
Level 3
50 sign-ins 25 sign-ins 10 replies posted

Hi,

The parts#. we used is CY8C5467AXI-LP108.

Thanks,

Winston

0 Likes
yaga_3967241
Level 3
Level 3
50 sign-ins 25 sign-ins 10 replies posted

Hi,

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

Thanks,

Yan

0 Likes

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

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
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

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.