- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello together
Is there a possibility to dynamical swap interface or instance in a SCB ?
Example: SCB 0 has scb[0].i2c_scl:0 and scb[0].i2c_scl:1.
I can only map one pin to either scb[0].i2c_scl:0 or scb[0].i2c_scl:1. Is there a way to multiplex them ?
I think that PSoC4 had some unconfigured SCB with this feature.
Thanks a lot
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
>>"If im running I2C on Pin 13.0/Pin 13.1 should i firstly disconnect these pin from SCB with HSIOM_PRTx_PORT_SEL and than attach P12.0/Pin12.1 ?"
--> Yes. You can change the HSIOM mode of pins 13.0/13.1to firmware driven or High impedance analog. And then convert the mode of P12.0 and P12.1 to SCB pins.
>>"So i can swap these pins in run time only by manipulate the HSIOM_PRTx_PORT_SEL ?"
--> Yes. You can do this in runtime.
If you are using PSoC Creator, you can see the initial HSIOM setting of the port (settings given in .cydwr window) in System_init() function call inside cy_fitter_cfg.c file.
Hope this response answers to your questions. Else, please reply.
Thanks
Ganesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Can you please elaborate more regarding your query?
1. What is your application and what do you exactly mean by multiplexing? or what are the expected results when you multiplex?
2. Which IDE are you using? What is the MPN of the part you are using?
As per my understanding, you want to dynamically switch a pin from connecting to SCB and other component in run time. If that is the case it is possible under certain limitations.
Please refer the GPIO cell architecture from the image below. Each physical pin is routed to different internal components through a multiplexer/demultiplexer which can be configured through HSIOM_PRTx_PORT_SEL register. Here 'x' refers to post.
Please see the Pins table in device datasheet which says that what are the possible multiplexing options for that particular pin.
Please refer register TRM for HSIOM_PRTx_PORT_SEL register to get information on how to select different alternate routings of the pin.
Hope this helps! Please respond if you have any queries/need other information.
Thanks
Ganesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ganesh
1. What is your application and what do you exactly mean by multiplexing? or what are the expected results when you multiplex?
I would like to attach all pin which have I2C capability to a physical port. So PSoC62 has 9 SCB but if you look in the attached table 5: "Multiple alternate functions" column ACT7 you see, there are 15 I2C instance. Some instance share the same SCB so the idea is to multiplex as an example Pin 13.0/Pin 13.1 (scb[6].i2c_scl:1 / scb[6].i2c_sda:1 ) and P12.0/Pin12.1 (scb[6].i2c_scl:0 / scb[6].i2c_sda:0). As i understand from your explanations it should work by changing HSIOM_PRTx_PORT_SEL.
If im running I2C on Pin 13.0/Pin 13.1 should i firstly disconnect these pin from SCB with HSIOM_PRTx_PORT_SEL and than attach P12.0/Pin12.1 ?
So i can swap these pins in run time only by manipulate the HSIOM_PRTx_PORT_SEL ?
2.Which IDE are you using? What is the MPN of the part you are using?
I work with PSoC Creator and use in my design CY8C6247BZI-D54.
Thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
>>"If im running I2C on Pin 13.0/Pin 13.1 should i firstly disconnect these pin from SCB with HSIOM_PRTx_PORT_SEL and than attach P12.0/Pin12.1 ?"
--> Yes. You can change the HSIOM mode of pins 13.0/13.1to firmware driven or High impedance analog. And then convert the mode of P12.0 and P12.1 to SCB pins.
>>"So i can swap these pins in run time only by manipulate the HSIOM_PRTx_PORT_SEL ?"
--> Yes. You can do this in runtime.
If you are using PSoC Creator, you can see the initial HSIOM setting of the port (settings given in .cydwr window) in System_init() function call inside cy_fitter_cfg.c file.
Hope this response answers to your questions. Else, please reply.
Thanks
Ganesh