Make component for specific uC (PSoC5)

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

cross mob
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Hi, 

I want to dedicate a custom-made component exclusively to PSoC5.

       It is straightforward to EXCLUDE a component by adding the Exclude files. For example, by excluding PSoC3, PSoC4 and FM0 (3 exclude files), one can leave PSoC5 the only remaining option.

     But is there a simple way to mark component as PSoC5 only? (Sort of 'include' file)

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.

/odissey1,

I believe I found what you are looking for.  However, I haven't found any documentation about its format.  I have noticed this file is included on many of the Cypress design components at the component root level.

Attached is a file with a ".cystate" extension.  It's an XML file.  Here's a small excerpt:

 

    <Rule>
        <Pattern>
            <Architecture>PSoC4</Architecture>
            <Family>PSoC4L</Family>
            <Revision>*</Revision>
            <Device>*</Device>
        </Pattern>
        <State>Production</State>
        <Severity>None</Severity>
        <Message />
    </Rule>
    <Rule>
        <Pattern>
            <Architecture>PSoC6</Architecture>
            <ArchMember />
        </Pattern>
        <State>Production</State>
        <Severity>None</Severity>
        <Message />
    </Rule>
    <Rule>
        <Pattern>
            <Architecture>FM0p</Architecture>
            <ArchMember />
        </Pattern>
        <State>Incompatible</State>
        <Severity>Error</Severity>
        <Message />
    </Rule>

 

You can notice the reference to "Architecture", ArchMember", "Revision", "Device" and "State".  Sadly, I could find what the proper syntax is for this file. 

If you can decode the syntax, it appears to be a "one-stop-shop" you're looking to use.

UPDATE!!!

I have found reference/syntax info about the .cystate file.

Consult the "Component Authoring Guide" section 7.5.

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

View solution in original post

8 Replies
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

/odissey1,

I believe this is what you are looking for.

  •  "Add a Component Item ..."
  • Select the Item type you want to add. (example: Schematic Macro)
  • deselect "Target generic device"
  • Pull-down the "Family:" list. 
  • Select "PSoC5LP" 
  • Select "Create New" (or  "Add Existing" if already existing).

Len_CONSULTRON_0-1649376747566.png

It should create a new folder under the component called "PSoC5" with the component item.

Len_CONSULTRON_1-1649377198946.png

 

Now if you already have created other component items you can move them by drop-n-drag into the "PSoC5" folder.

Or you can copy the item and paste it into "PSoC5".

This appears to have worked for a few components that I wanted to define segregate.

 

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

Len,

I believe this approach only creates separate implementations for PSoC3, PSoC4, PSoC5, etc. Yet, the component's Symbol can't have processor-specific implementations, and will show in the catalog for any processor.

I suspect that the only way to make component processor-specific is to exclude ALL other processors using multiple Exclude files. To make it worse, the component I am referring to is Reg16, which can be used only by PSoC5 processor with 24 UDB cells. But some of the PSoC5s have 20 UDB cells, and must be excluded also.  That makes about 20 Exclude files added to the custom component.

So I wonder if there is more succinct way to list all allowed/restricted processors in a single file? 

0 Likes

/odissey1,

I imported the Comparator "Comp_P4_v_1_20" into a design.  I ONLY works on a PSoC4.

Using a PSoC4 or PSoC5, the symbol doesn't show up in the catalog unless "Show Hidden Components" is selected as a Design Entry option.  In this option the symbols are ghosted and selecting the symbol shows a "Incompatible" watermark over the symbol.

In the component definition there .exclude files under the PSoC3 and PSoC5 directories. I assume this is what you mean by "excluding".

Len_CONSULTRON_0-1649504410190.png

About the PSoC5s with only 20 UDB blocks:  You are correct.

The symbol cannot not be assigned to a target device.  But the schematic (.cysch) can.

It can also be further filtered by 

  • Family
  • Series
  • Device

Len_CONSULTRON_1-1649504861052.png

I don't know if this helps.

I realize you're trying to make sure the component is only available on PSoC5s with 24 UDBs.

I would appear the user is forced to find out the limitation of 20 UDBs when they perform the "Application Build" phase.

Since your component uses so many UDBs, I'm assuming that UDB functions such as UARTs, SPI, Counters/Timers/PWMs etc will not be accessible.  They would have to use Fixed Function equivalents.

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

Len,

In Comp_P4_v1_20 example, it has PSoC3 and PSoC5 "Exclude" files. If I go that route to exclude about 15 of  PSoC5s with 20 UDB cells, I will end with numerous "Exclude" files attached to the component.

Is there any way to list all "excluded" uC in a single file? 

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

/odissey1,

I believe I found what you are looking for.  However, I haven't found any documentation about its format.  I have noticed this file is included on many of the Cypress design components at the component root level.

Attached is a file with a ".cystate" extension.  It's an XML file.  Here's a small excerpt:

 

    <Rule>
        <Pattern>
            <Architecture>PSoC4</Architecture>
            <Family>PSoC4L</Family>
            <Revision>*</Revision>
            <Device>*</Device>
        </Pattern>
        <State>Production</State>
        <Severity>None</Severity>
        <Message />
    </Rule>
    <Rule>
        <Pattern>
            <Architecture>PSoC6</Architecture>
            <ArchMember />
        </Pattern>
        <State>Production</State>
        <Severity>None</Severity>
        <Message />
    </Rule>
    <Rule>
        <Pattern>
            <Architecture>FM0p</Architecture>
            <ArchMember />
        </Pattern>
        <State>Incompatible</State>
        <Severity>Error</Severity>
        <Message />
    </Rule>

 

You can notice the reference to "Architecture", ArchMember", "Revision", "Device" and "State".  Sadly, I could find what the proper syntax is for this file. 

If you can decode the syntax, it appears to be a "one-stop-shop" you're looking to use.

UPDATE!!!

I have found reference/syntax info about the .cystate file.

Consult the "Component Authoring Guide" section 7.5.

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

/odissey1,

I created a .cystate file for a component.   I had limited success in inclusion/exclusion of specific part numbers.   I believe Infineon will have to clarify some of the syntax of the XML file to perform these functions.

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

Len,

Thank you for help. I will research this approach. Meanwhile accepting it as a solution.

Sincerely,

odissey1

0 Likes

/odissey1,

I would have thought that listing the State = Incompatible would show up in the Component catalog as "Incompatible".   That didn't happen.

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