8 Replies Latest reply on May 14, 2020 8:27 AM by LePo_1062026

    PSoC 6 & 4


      Hi All,


      I am relatively new to this technology so I started off using PSoC 6 and actually bought the PSoC Pioneer 6 kit thinking that since it is the latest it will have all the functionality of all the versions before it, say PSoC 4, plus some additions.


      However recently I happened to want a few hardware building blocks like readable/writable counters (counter values) but could not find them.

      To cut a long story short I ended up also buying the PSoC 4 Pioneer kit and to my surprise found a lot of handy hardware building blocks that were not available in my PSoC 6 environment including readable/writable counters! There is also a wealth of useful edge and pulse etc. functions under Digital/Utility.


      My questions are:

      • Where did I go wrong in my understanding of the conceptual positioning of PSoC 4 & 6?
      • Is it possible to promote a  PSoC 4 component to PSoC 6 so that one can work within PSoC 6 Pioneer Kit environment only?


      Many thanks,



        • 1. Re: PSoC 6 & 4



          It appears you are inquiring about the UDB (Universal Digital Blocks) functionality available on the PSoC4.


          Many of the PSoC6s available also have UDBs and user designed logic functions can be allocated on these specific PSoC6s.


          To determine which PSoC6 have UDBs, you can look up on the Device Selection chart based on the PSoC part number.


          You referred to the PSoC Pioneer 6 kit.  I'm assuming you are referring to the CY8CKIT-062-BLE kit.  If this is correct, the PSoC6 on this kit has UDBs.


          We should note in this discussion that ONLY the PSoC Creator IDE can allow the user to enter the "schematic" for the design to use UDBs and Components (which can be comprised of UDBs).


          At this time, ModusToolbox does not support Cypress components and cannot directly support UDBs in the IDE.



          • 2. Re: PSoC 6 & 4

            Hi Len,


            Yes, I have the CY8CKIT-062-BLE kit but I cannot find the components I mentioned.

            Perhaps I have to build them myself with some sort of UDB builder IDE, or something like that?

            Otherwise on a CY8CKIT-062-BLE kit, can you please tell me as an example how you would go about obtaining a writable/readable counter (counter value) component?



            • 3. Re: PSoC 6 & 4



              The Cy8CKIT-062-BLE uses the CY8C6347BZI-BLD53 which is highlighted in the pic below.  The item in RED is the number of UDB blocks available.

              Here's a pic of a TopDesign in PSoC Creator (the UDB builder) that implements a 8-bit CRC using logic gates and one using logic gates inside a "CRC" component.


              Here's a pic of some of the UDB/Datapath logic that can be used with the PSoC6.


              Here's a pic of the Resource Meter that indicates how many subblocks are used in your design.



              • 4. Re: PSoC 6 & 4

                Hi Len,


                It seems you have far more components in your component catalogue!,


                Here is my attempt to implement a 16 bit readable counter with d flip-flops, as you see very cumbersome!

                There is a single component that has all this functionality and more in my Pioneer 4 Kit.

                16 bit counter.PNG



                If you look at the API in the respective PDFs of the yellow highlighted components, you will not see a single API function let alone one to read or write their internal registers.


                I must admit I need to look into more depth at the raw building blocks (UDBs) which I haven't been up to now.


                Maybe my anxieties will then disappear albeit I will be doing far more work than I thought I had to do.



                • 5. Re: PSoC 6 & 4



                  Try opening a new project in the same workspace as your PSoC4 project.


                  When it asks for the target kit select "CY8CKIT-062-BLE".


                  Open the new project with an empty Schematic.


                  With the new PSoC6 project open its TopDesign.  Now copy all the components from your PSoC4 TopDesign to your PSoC6 TopDesign.


                  I believe every component will transfer directly except the UART and maybe the Clock.   However, there are PSoC6 equivalents you should be able to use.


                  Hopefully working with the PSoC4 you noticed that you can allocate a counter as a fixed-function block or as a UDB version.  The UDB version is generally more versatile but uses more UDB resources.  Some of the settings for the fixed-function blocks and UDB are compile-time friendly but do not have as many ways to modify these settings at run-time.


                  What Cypress decided to do with the PSoC6 is to create multi-personality fixed-function blocks.  The have more fixed-function blocks and generally less UDBs to work with.  However the fixed-function blocks have more SW configurable settings that can be altered at run-time.


                  Examples of some of these fixed-function blocks are:

                  •     SCB (Serial Communication Blocks)  that come in the following personalities:
                    • UART
                    • SPI
                    • I2C
                    • EZI2C
                  • TCPWM (Timer-Counter-PWM) that come in the following personalities:
                    • Timer
                    • Counter
                    • PWM
                    • Quadrature detector


                  These and other fixed-function blocks are interfaced with a "new" style called "PDL".  In many ways it's an improvement over the older PSoC Creator API style calls.  The PDL allows for less source code generation and is more "object orientated" in its implementation.

                  If you look at the API in the respective PDFs of the yellow highlighted components, you will not see a single API function let alone one to read or write their internal registers.

                  These PDL devices such as the SCBs and the TCPWMs do have API calls.  Instead of opening the datasheet for these components select "Open PDL Documentation ..."

                  Because these components have more SW controllable parameters at run-time, these are actually more API calls.


                  Last note:  If you know Verilog, PSoC Creator supports it as a replacement for defining all the logic elements to create a complex HW state machine.



                  • 6. Re: PSoC 6 & 4

                    Hi Len,


                    Thanks for your comprehensive set of suggestions.


                    Copying components from a PSoC 4 project to PSoC 6 suggestion did not work as all the components were flagged as incompatible on the schematic.


                    I am now investigating (and learning) the PDL route.


                    Many thanks.



                    • 7. Re: PSoC 6 & 4



                      I'm willing to bet you will find PSoC6 component equivalents for the "incompatible components" you copied over.



                      • 8. Re: PSoC 6 & 4



                        I entered your design in TopDesign with the target kit = CY8CKIT-062-BLE.


                        It built with no errors.


                        Attached is the TopDesign I used if you're interested.