- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Labels:
-
PSoC 6 MCU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 :
P5_2 for test level-threshold only.
I test on Logic analyzer and confirm with the value (print on serial )
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
- Open the PSoC Creator or ModusToolbox and create a new project or open an existing one.
- Open the Design-Wide Resources (DWR) file.
- Navigate to the \"Pins\" tab.
- Find the I2C and INT pins you want to configure.
- Set the \"Drive Mode\" to \"Open Drain, Drives Low\" for I2C pins and \"Input\" for INT pins.
- Set the \"Initial Drive State\" to \"High (1)\" for I2C pins.
- Enable the \"Input Buffer\" for both I2C and INT pins.
- 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-...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
but these are all the options I get in the input tab:
When I go into the pin components datasheet this section seems relevant:
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @rickyrosa ,
I've tested on my PSoC 63,
I set the frequency to 1MHz and set the threshold to LVTTL
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Andri,
Since the I2C is a float high drive low, won't you have the "Initial drive state:" = High?
"Engineering is an Art. The Art of Compromise."
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 :
P5_2 for test level-threshold only.
I test on Logic analyzer and confirm with the value (print on serial )
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content