Can the PSoC 6 pin voltage range be lower than VDD?

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

cross mob
rickyrosa
Level 1
Level 1
First like received 5 sign-ins First reply posted

Hello,

We have a set up where we have a peripheral with 1.8v VDD and a PSoC 6 with 3.3v VDD. Is there a way to set some of the PSoC 6 pins voltage range to be 0-1.8v to accommodate the peripheral I2C and INT lines even thought the PSoC VDD is 3.3v?

In other words, is there a way to set a threshold for what defines Logic(0) and Logic(1) that is different from VDD?

Thanks,

Ricky

 

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

Hi @Len_CONSULTRON ,

Yes, you're right.. 
I set the initial drive state = "Low" because I want to confirm if that pin can read the 1.8V logic level, not for I2C 
Thanks for reminding me.

@rickyrosa , 
I've tried with CY8CPROTO - 063 - BLE board to communicate with my BMP280 via I2C with level 1.8V. Here is my simple-diagram : 

Andrisetyabudi_0-1685789518837.png

P5_2 for test level-threshold only. 
I test on Logic analyzer and confirm with the value (print on serial )

Andrisetyabudi_1-1685790353929.pngAndrisetyabudi_2-1685790389323.png

I have attached my simple project as reference. 
Forgive me if my code is very messy 😅

I hope, it can help you..

Warm regards,
Andri

 

View solution in original post

0 Likes
7 Replies
Giraffe1492
Level 5
Level 5
25 sign-ins 25 likes received 10 solutions authored

Hello Ricky,

 

Yes, you can set the voltage range of some PSoC 6 pins to accommodate the 1.8V peripheral I2C and INT lines. PSoC 6 supports multiple voltage domains, which allows you to configure the voltage levels for specific pins. You can use the PSoC Creator or ModusToolbox to configure the pins' voltage levels.

 

To set the voltage range for the I2C and INT pins, you can follow these steps:

  1. Open the PSoC Creator or ModusToolbox and create a new project or open an existing one.
  2. Open the Design-Wide Resources (DWR) file.
  3. Navigate to the \"Pins\" tab.
  4. Find the I2C and INT pins you want to configure.
  5. Set the \"Drive Mode\" to \"Open Drain, Drives Low\" for I2C pins and \"Input\" for INT pins.
  6. Set the \"Initial Drive State\" to \"High (1)\" for I2C pins.
  7. Enable the \"Input Buffer\" for both I2C and INT pins.
  8. Set the \"Voltage\" field to \"1.8V\" for both I2C and INT pins.

 

By setting the voltage range to 1.8V, you are effectively changing the threshold for what defines Logic(0) and Logic(1) for those specific pins. Please note that you will also need to use external pull-up resistors connected to the 1.8V supply for the I2C lines (SDA and SCL).

 

For more information on PSoC 6 pin configurations, youhttps://www.infineon.com/cms/en/product/sensor/current-sensors/tli4971-a075t5-e0001/
https://www.infineon.com/cms/en/product/sensor/current-sensors/tli4971-a025t5-e0001/
https://www.infineon.com/cms/en/product/microcontroller/?redirId=54599#collapse-d60188f4-2a69-11ec-b...
https://www.infineon.com/cms/en/product/microcontroller/?redirId=54599
https://www.infineon.com/cms/en/product/microcontroller/?redirId=143858#collapse-d60188f4-2a69-11ec-...

0 Likes
rickyrosa
Level 1
Level 1
First like received 5 sign-ins First reply posted

Hi thanks for getting back at me.

I'm using Creator 4.4 and there does not seem to be an option to configure the pin's input buffer. I can set the drive mode and initial state:

rickyrosa_0-1685373128970.png

 but these are all the options I get in the input tab:

rickyrosa_1-1685373199980.png

When I go into the pin components datasheet this section seems relevant:

rickyrosa_2-1685373298955.png

But it is unclear to me how to implement this in Creator.

Also, the links you provided do not seem to be working as they all require me to input my credentials, and when I do, the request times out and the page expires.

Thanks in advanced!

Ricky

 

 

0 Likes
Andri-setyabudi
Level 5
Level 5
50 likes received 50 sign-ins 25 solutions authored

Hi @rickyrosa , 

I've tested on my PSoC 63,  
I set the frequency to 1MHz and set the threshold to LVTTL

Andrisetyabudi_1-1685517860298.png

Andrisetyabudi_2-1685517987037.png

That's work for me to read the logic with 1.8V level voltage. 
access for SCB.

LVTTL level works from 0.4V ~ 2.5V, threshold : 1.5V

 
 

 

 


Warm regards, 
Andri

 

 

Hi Andri,

Thanks for taking the time. We have tried your suggested approach and, while we can get the pins to 1.8v, it does not seem to work for an I2C interface. We have tried setting the frequency to 1MHz like suggested and to 400kbps and neither seem to work. Could you elaborate on your solution with a focus on I2C?

Thanks!

Ricky

0 Likes

Andri,

Since the I2C is a float high drive low, won't you have the "Initial drive state:" = High?

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
lock attach
Attachments are accessible only for community members.

Hi @Len_CONSULTRON ,

Yes, you're right.. 
I set the initial drive state = "Low" because I want to confirm if that pin can read the 1.8V logic level, not for I2C 
Thanks for reminding me.

@rickyrosa , 
I've tried with CY8CPROTO - 063 - BLE board to communicate with my BMP280 via I2C with level 1.8V. Here is my simple-diagram : 

Andrisetyabudi_0-1685789518837.png

P5_2 for test level-threshold only. 
I test on Logic analyzer and confirm with the value (print on serial )

Andrisetyabudi_1-1685790353929.pngAndrisetyabudi_2-1685790389323.png

I have attached my simple project as reference. 
Forgive me if my code is very messy 😅

I hope, it can help you..

Warm regards,
Andri

 

0 Likes
Andri-setyabudi
Level 5
Level 5
50 likes received 50 sign-ins 25 solutions authored

Hi @rickyrosa , 
Are you still working in this thread ? 

Warm regards,
andri

0 Likes