PSoC 5LP unable to fit configuration in 24 UDBs

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.
Alfo_Desiderio
Level 1
Level 1
First reply posted First question asked Welcome!

Hello, I'm trying to place 4 Quadrature Decoders, 4 Timers, 4 DACS and one UART in a CY8C5888-LP (using CY8CKIT-059). The UDB's Resources seem to be enough but build fails. Can anyone tell me where is the error? Thanks, Alfonso

0 Likes
1 Solution

@Alfo_Desiderio ,

You have to select the USB block in the system clock tab.  Without selecting USB, you will not get the +/- 025% tolerance on the 24MHz IMO.

Len_CONSULTRON_0-1704205364668.png

 

Len
"Engineering is an Art. The Art of Compromise."

View solution in original post

0 Likes
8 Replies
neilsh
Level 2
Level 2
5 questions asked 5 replies posted First like received

Hello Alfonso,

The error I see after I enable the fourth component is the following in Encoder_2_DAC_Bridge.rpt in the results tab of the Workspace explorer:

E2071: Unable to pack the design into 24 UDBs. See the Digital Placement section of the report file for details. For additional assistance, see the Mapper, Placer, Router section in the PSoC Creator help.
I2722: The following instances could not be placed:

   Net_112:macrocell
   \Debug_UART:BUART:tx_status_2\:macrocell

The problem is that although your design is only using 80.1% of the available p-terms, the router can't route all the signals through the connecting mesh. The usage is actually quite high and you'll need to simplify the design somehow. 

A simple option is to change the debug UART.  Do you really need both input and output? Or can you make do with just a debug output or a debug input? Your design can be routed if you make the debug UART TX or RX only.

If you do require TX and RX, you could drop the debug UART and instead use a USBFS component to implement a CDC UART that would connect via a USB cable separate from the USB programming cable.

0 Likes
Hello Nelish,

Thanks for Your Reply.
I've tried to implement USBUART but it seems not to work without a Crystal,
is ti correct?

I've also tried another solution (RX-only UART + Tx Software UART).
Build of this configuration is successful but I'm don't know if there will
be any side effect by using Sw Tx UART. What do you think about it?

Thanks,
Alfonso
0 Likes

Alfonso,

Implementing the USBUART requires setting up the clocks to provide a 48MHz clock.  A crystal isn't required, but the IMO has to be set to 24 MHz and the USB clock uses that and doubles it to 48.  If you open a new project in PSOC Creator, there's a USBFS_UART example.  I don't have the links currently but there are many Infineon application notes and samples that show how to use USB and at least one that specifically goes into using the USBFS UART.

I haven't used the Sw TX UART myself but have looked at one project that makes use of it recently.  At first glance, it looks to be a bit-banging method of sending data back - it's a software only component that uses arm assembly to send bytes and I think turns off interrupts while doing so. The processor will be tied up while sending output so I wouldn't use it if you have lots of other processing to be done or require interrupts to be serviced while sending data over the serial link.

Neil

0 Likes

Hi @Alfo_Desiderio ,

I had written a KBA article on why we sometimes get this error even though 100% of the UDBs are not utilized: Resolving the error: “Unable to pack the design into available UDBs” - KBA233032

In case you want to use the USBUART component in your design then you would need to trim the IMO to +/- 0.25 % accuracy and the frequency required would be 48 Mhz. This is because the USBUART component is basically a USB component configured to work as UART. USB requires the above frequency to work. You can do the clock configurations shown below for the usbuart to work properly. 

Ekta_0-1704178778773.png
With the above configuration you would be able to use usbuart without ECO.

Hope this helps.

Best Regards
Ekta

Hello ekta,

Thanks for Your Reply, I already tried to configure IMO with 0.25% tolerance but i could not find such an option!!!!

No Available frequency has a tolerance less than 3% (CY8C5888xxx)

 

Alfonso

Alfo_Desiderio_0-1704203819958.png

 

0 Likes

@Alfo_Desiderio ,

You have to select the USB block in the system clock tab.  Without selecting USB, you will not get the +/- 025% tolerance on the 24MHz IMO.

Len_CONSULTRON_0-1704205364668.png

 

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

@Alfo_Desiderio ,

I downloaded your project.  I got it to build without ANY errors both in the Application Build and Compile phases.

@neilsh I don't see the issue.  However, I did notice that "Encoder_Section_4" sheet is disabled.

If I enable  "Encoder_Section_4" sheet I see the error.

I also noticed that you're only using the Debug_UART to transmit debug info out.

Change Debug_UART to "Tx-only" and recompile.   The design now fits in your selected PSoC5 part.

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Your project doesn't have any code, so I am just guessing.  If the purpose of the encoders was to measure motors' RPM (not the absolute position), then you can use much simpler Tachometer component instead of the array of QuadDecoders

Tach24: 24-channel Tachometer component 

we could assist you better if you describe the project in general. 

0 Likes