- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Labels:
-
PSoC 5LP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I heard it from the street that the next creator is 3.0
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, and I was told that it is expected to come september this year.
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@Bob
It's too late now.
The PCB was already made.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sh***!
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Bob,
You mentioned that the previous Mycases were not overwhelming - Was there any trouble or was the solution not satisfactory??
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 PRT
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for actually finding the answer, I learned from this and am grateful.
Regards, Dana.