Routing Problems with Analog Hardware Mux

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

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hallo,

   

I want to design a project, where a reference is brought out on P0[0] with VDAC buffered by Opamp.

   

At the same time I want to measure the P0[0] with ADC_DelSig over AGL[4].

   

Please look at the attached project for full understanding.

   

The project works fine for Analog Mux but with the Analog HW Mux I get the following Error Message:

   

"Signal "\Opamp_1:Net_29\" is expected to connect to only one GPIO analog pin but instead it connects to "\Opamp_1:ABuf\". Please fix the connection."

   

(Please do not care about ADC_DelSig sampling or AMux switching, this is done later.

   

Only concentrate on the routing problem!)

   

 

   

regards Willi

0 Likes
25 Replies
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Here is a picture of the routing with AMux that works fine.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Have a look into the PSoC5 Architecture TRM starting at pg 274. There is outlined what the "ARBs" are that the HW-AMUX connects to. This will explain (so I hope) your routing problem.

   

Datasheet of AMUX-HW says (at the beginning) it is only connecting GPIO-pins to ARBs.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

I've already read this (and not only once).

   

But my problem is that I want to multiplex between P0[0] and P0[7], which works with Analog HW Mux.

   

But when I am connecting the Opamp 2 to the P0[0] to send out a reference, it only works with the Analog Mux.

   

What is my fault?

   

regards Willi

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Can you please use the "Create Workspace Bundle" function to create an archive. I am VERY suspicious of installing another program for a task that is already embedded in my OS (win).

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 Hello Der_Willi,

   

I did check out your project. I was not able to build your project because of the routing issues. When I replaced the AmuX harsware one with the Software one the project builds. 

   

When I looked through the datasheet of the component, it clearly shows that the Hardware Amux is only meant for GPIO inputs. whereas there is no restriction with the Amux software

0 Likes
Anonymous
Not applicable

 And another thing I noticed in the Analog routing is that , when the Amux is used the pins 0[0] and 0[7] are connected. When I make the connection in Amux as atleast one active then one connection is closed and other open. 

   

And regarding the Analog Hardware Mux, the conection is similar to the later one where one is connected and the other open. 

   

But the creator doesn't throw error when the Amux with atleast one connected is enabled.

0 Likes
Anonymous
Not applicable

 May I know the reason why the DAC output should be brought as well fed in to the ADC. Also the reason why the 0[1] is brought out. 

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

@Bob

   

Here is the the workspace bundle.

0 Likes
Anonymous
Not applicable

@microHari

   

The VDAC is brought out to P0[0] buffered by opamp2!

   

This is possible because P0[0] is a special pin (OpAmp: out). If you look in the PSoC® 5 Architecture TRM on page 275 (Figure 31-2. Analog Interconnect), you can see that P0[0] has one connection to opamp2 and as well one connection to AMUXBUSL and AGL[4].

   

I want to connect the opamp2 to P0[0] to bring out the voltage of the VDAC (to drive a sensor) and at same time I want to measure the voltage at P0[0] (which is the reference of the sensor) via AGL[4] and multiplex between P0[0] and P0[7] (which is the signal voltage of my sensor).

   

At P0[1] I am bringing out the Vssa voltage of the Psoc to my sensor.

   

I hoped this will explain my setup.

   

The only proplem I have is, that it works fine with the Analog Mux (SW) which takes the voltage directly at P[0] and P0[7] (green signal), which you can see in the routing_AMux.bmp above.

   

But it won't work with HW Mux.

   

 

   

The problem is I think that Creator thinks I want to route the Opamp to Analog HW Mux, but I want to route it to P0[0].

   

and then measure the voltage at P0[0].

   

 

   

If there is no possibility of doing this, I have to do it with the Analog Mux (SW). That has already worked.

   

But I want to get rid of polling and interrupts and the only way of doing this, is by switching the Amux by HW!

   

 

   

Willi

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

@Willi

   

Despite by setting the appropiate registerrs to make the connection progammatically which can turn out to be some fuzz when re-fitting the design I would suggest you to create a MyCase although that may take some time. My last experiences with MyCases have not been overwhelming, so you may additionally drop a mail to a (the) PSoC Sensei (Brad) or Chris.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

The problem would be solved if the special I/O pins had another input.

   

Maybe a hint for creator 2.3! 

   

 

   

@Bob & microHari

   

Thanks anyway for your time!

   

A mycase is probably my last chance!

   

 

   

best regards

   

Willi

0 Likes
Anonymous
Not applicable

I heard it from the street that the next creator is 3.0

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Yes, and I was told that it is expected to come september this year.

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Another solution can be to spend an extra pin for the output of the opamp buffer and make the connection to the AMUXHW outside the chip. Costs: 1 pin, Saves: A lot of time...

   

 

   

Bob

0 Likes
Anonymous
Not applicable

@Bob

   

It's too late now.

   

The PCB was already made.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Sh***!

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 Hello Bob,

   

You mentioned that the previous Mycases were not overwhelming - Was there any trouble or was the solution not satisfactory??

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Both. My problem could not (yet) be solved (malloc() not working in PSoC4) and it took nearly 3 weeks to get a satisfying answer.

   

I would have calculated: 2 Days to confirm that my reported error is an error, 3 Days to come up with a satisfying workaround (self-written malloc() and free() ). The workaround I had to provide myself to stay within my time-line and the error should be corrected in Creator 3 (hopefully).

   

 

   

Bob

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Exact timing details:

   

   

MyCase creation:

   

> Ticket #: 2132544742

   

   

> Subject: malloc() not initialized for PSoC4

   

> Status: New

   

   

> Date: 06/26/2013

   

 

   

Final answer at 08/01/2013

   

 

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

I have filed ~ 50 CASES and my best guess is solutions and closure,

   

on average, 3 - 4 days. I have had a Bob like experience, but again

   

on average fairly good response.

   

 

   

There are Cypress field engineers in most sales regions that one

   

can contact that have, in addition to a lot of training, direct access

   

to factory folks, where they can make calls and respond generally

   

within 24 hours.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable
        Hello Bob, We apologize for the inconvenience caused. The reason why the software related issues or the Creator related issues get delayed is , the Apps team will have to contact the Creator team for a satisfactory response. So, Apps team cannot respond to the customer with a solution until they hear from the Creator team. However, we have to fix this asap.   
0 Likes
Anonymous
Not applicable
        Hi, I wonder if this issue has been "resolved" in recent versions of PSoC Creator (I am using 3.1 CP1). I am also stuck with a design where an internal analog signal (from PGA) is already routed to an external pin. The software tools do not allow me to use this pin as an input for the HwAmux (e.g. SEQ ADC), but I need to use another pin and external shorting of these two pins.   
0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Using 3.1 release date 2/2/2015 below would not route. I also tried inserting

   

follower OpAmp in signal path to mux, still same problem.

   

 

   

   

 

   

Seems like odd limitation in fabric.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Dana,

   

 

   

Thank you for checking this out and confirming the limitation.

   

After a bit more careful reading of the TRM (Figure 29-5: GPIO Pin Input/Output Block Diagram), I start to understand why this cannot be done. The hardware analog multiplexer uses the "Digital System Output" line (from the DSI) to control the analog switch of the GPIO from hardware (for that the PRTAMUX and PRTBIE configuration registers are also needs to be asserted). The problem is that if the pin is also conntected to an analog global (i.e. an output pin for the PGA or whatever internal signal - this is done by asserint the PRTAG register) this analog connection will also be distrupted by the toggling of the  DSI signal by the amux.

   

Funny thing, that I do not need that output pin anyways, so I would be fine by this side-effect. It still would save me a pin per analog signal by not forcing me to do an "external loopback".

   

I might open a support case when I run out of pins in the design.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Thanks for actually finding the answer, I learned from this and am grateful.

   

 

   

Regards, Dana.

0 Likes