How to configure PSoC Creator for 2 different QSPI devices.

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

cross mob
MuKh_4408861
Level 3
Level 3
10 replies posted 10 sign-ins 5 replies posted

Hi,
As per topic I need to add ADC with QSPI interface to the project that already has QSPI NOR-Flash. They can be multiplexed by CS pins. Why configurator is letting to connect only 1 QSPI to the same pins and how to overcome it?

0 Likes
1 Solution

Hello @MuKh_4408861 ,

You should be able to multiplex the two components but not at design time. You must do it at runtime programmatically. You cannot multiplex the two components in the TopDesign to use the same pins because the PSoC Creator internally won't know which functionality to assign to the pins. 

You need to add one component in TopDesign and write the configuration structures manually for the other component. Whenever you want to switch between the components, change the functionality of the pins and then initialize your other component. And then vice versa to switch to the first component. I think it should work.

Let me know your observations.

Regards,
Dheeraj

View solution in original post

6 Replies
DheerajK_81
Moderator
Moderator
Moderator
First comment on KBA First comment on blog 5 questions asked

Hello @MuKh_4408861 ,

Can you please let me know which PSoC device you are referring to here? 

Regards,
Dheeraj

0 Likes

Hi Dheeraj,
Sure. I'm using PSoC6
CY8C6347FMI.  The purpose is mary off ADS8920B to it using QSPI. This is task on its own, but I'm wondering if I can keep my S25FL064 NOR-Flash on the same bus within one project.

0 Likes
MuKh_4408861
Level 3
Level 3
10 replies posted 10 sign-ins 5 replies posted

Hi Dheeraj,
Yes sure. I'm using CY8C6347FMI and trying to connect it with ADC ADS8920B using QSPI. 
There is NOR-Flash  S25FL064 on the same QSPI bus. 
How to multiplex them both in PSoC Creator IDE?

0 Likes

Hello @MuKh_4408861 ,

For interfacing the Nor Flash, I believe you are using the SMIF component. When using SMIF, each memory device uses a dedicated device select signal: memory device 0 uses select[0], the memory device 1 uses select[1], and so on. In other words, there is a fixed, one-to-one connection between memory device, register set, and select signal connection.

Since SMIF is for interfacing external memory chips only, to interface the ADS8920B, you will need to create your own custom component that implements the QSPI interface by making use of the SPI master as the primitive block. Please refer to this example project which makes use of the QSPI component. It was created for PSoC5 and for interfacing external memories but the concept remains the same. 

You need to modify the component for your device and also modify the APIs to send the right commands according to the ADC datasheet. 

Hope this helps 🙂

Regards,
Dheeraj

0 Likes
MuKh_4408861
Level 3
Level 3
10 replies posted 10 sign-ins 5 replies posted

Hi Dheeraj,
Thanks for info and a reference project to connect with ADC using QSPI. Its good for start.
However, I still don't have an answer to the question in the topic. 
How to multiplex these 2 components work in one project. Because, If I assign pins to one component it won't let me use the other component. Is there a way to overcome this limitation?

I have had this issue with standard SPI too. Needed 2 different devices on SPI bus. One was 16 bit and other one 8 bit. I have used workaround to make it work, but never could assign 2 independent SPI components (requiring different configuration) on the same bus/pins multiplexed by CS pins.

0 Likes

Hello @MuKh_4408861 ,

You should be able to multiplex the two components but not at design time. You must do it at runtime programmatically. You cannot multiplex the two components in the TopDesign to use the same pins because the PSoC Creator internally won't know which functionality to assign to the pins. 

You need to add one component in TopDesign and write the configuration structures manually for the other component. Whenever you want to switch between the components, change the functionality of the pins and then initialize your other component. And then vice versa to switch to the first component. I think it should work.

Let me know your observations.

Regards,
Dheeraj