26 Replies Latest reply on Sep 26, 2018 3:31 AM by ronniejk

    PSoC 5LP Programmer Firmware

    cy.wbz

      Hello!

       

      Today I would like to post an extra project for you guys. Attached to this post is the firmware for the PSoC 5LP device on the Pioneer kit. If you are designing a board and need a programmer and debugger for the board feel free to copy the PSoC 5LP layout on the Pioneer board and use this firmware to enable programming and debugging. The layout files are on the Cypress Pioneer Kit web page:

       

      www.cypress.com/cy8ckit-042

       

      This will allow you interface your custom board with our PSoC Creator and PSoC Programmer development tools.

       

      In the example attached we have two projects, the source code for the PSoC 5LP and a base bootloadable project. To build the project you will need to perform the following actions:

       

      1. Make the project KitProg_Bootloader active and build it first.

      2. Open the KitProg project TopDesign.

      3. Doube click the bootloadable component to open the bootloadable configuration.

      4. Select the tab 'dependencies' and select the browse button.

      5. Browse to the folder where the KitProg Bootloader.hex file is generated and select this file. Click Ok.

       

      Good Luck!

      Matt

        • Re: PSoC 5LP Programmer Firmware
          zgbkdlm

          Hi Matthew~

          Could you describe the process in detail? I don;t understand something there.

          • Re: PSoC 5LP Programmer Firmware
            hlipka

            Is there a changelog available? There were mentions of some issues, and I want to know whether to update or not...

             

            Thanks,

             

            hli

            • Re: PSoC 5LP Programmer Firmware
              JohnHind

              First, thanks Matthew for pointing me to this - just what I was looking for.

               

              Anyone having any luck building this in Creator 3.0? I loaded the workspace and let it update the components when offered. Then I built the bootloader project, set the paths in the KitProg bootloader component and tried to build the KitProg project. This gave the following error:

               

              sdb.M0013:Extra schematic terminal that does not appear in symbol: (sof).

               

              This is connected to the "sof_int" pin on the USB component on USBFS_v2_51.cysch.

                • Re: PSoC 5LP Programmer Firmware
                  cy.gul

                  John,

                   

                  try this:

                   

                  1. When openeing the project in Creator 3.0, select the option to update all your components to the latest version.

                  2. Ensure you have set the correct dependencies for the bootloadable project as described in Matt's 1st post

                   

                  let us know if that helps!

                    • Re: PSoC 5LP Programmer Firmware
                      JohnHind

                      Gagan,

                       

                      I thought I had done all that (as described in my OP). Can I be impertinent and ask if you have actually tried compiling this in Creator 3.0 yet? I did some more testing and it looks to me that there are some fundamental problems.

                       

                      I was getting very confused between the two projects, so I unpacked a new copy and this time on opening the workspace I cancelled out of the component update, removed the "KitProg" project and manually invoked "component update" on the "KitProg_Bootloader" project. During this the "sof" error message appeared. Exploring the "components" tab, I find a USBFS_v2_51 component (in addition to TopDesign). I assume this is redundant because the USBFS component has updated to v2_60, so I remove it. Now the "sof" error message disappears.

                       

                      However on building I still get four errors:

                       

                      kitprog.png

                      I've tried to bottom this out, but there is a tangle of compatability macros that I've not yet been able to fathom.

                       

                      - John

                        • Re: PSoC 5LP Programmer Firmware
                          cy.gul

                          Hi John,

                          Thanks for the detailed explanation.

                           

                          After some testing on our end, we've identified a possible issue with the latest version of the "Bootloader" Component.

                          To work-around this, please try the following:

                           

                          1. Open the project in Creator 3.0 (start with a fresh download of the .zip from here)

                          2. Chose to update all Compnents, EXCEPT the "Bootloader" Component. "Bootloader" should be forced to stay at v1_10 (do not update to v1_20)

                          3. Apply correct dependency to the Bootloadable Component (point to the .hex file from the Kit)

                          4. Build you project - it should now be free of the bootloader erros you were seeing

                          5. In case you notice a DRC error related to "SOF Terminal", you can ignore that without any impact on the design. Alternately, you could close any .cymacro files that open up after the build proceess to ignore this DRC.

                           

                          We're continuing to further investigate this issue on our end, will keep you posted. Thanks!

                            • Re: PSoC 5LP Programmer Firmware
                              COMPACT

                              Hi Gagan,

                               

                              Just a note to say;

                               

                              The Pioneer Kit Guide is geared up for PSoC Creator 2 and not for PSoC Creator 3 and there is a difference with the System Tab screen between versions thus it is impossible to match the screen shot with the screen.

                              (It's the Require XRES pin Checkbox option - It's missing from PSoC Creator 3.)

                               

                              The procedure works perfectly with PSoC Creator 2.2 (CS6) but I have had no success with using PSoC Creator 3.

                              I get "The command 'cyelftool.exe' failed with exit code '1'.

                              I've tried various suggestions such as using Bootloadable component version 1.10 and clean build environments (i.e. only with the nominated GCC version) with no success.

                               

                               

                              Very Compact

                      • Re: PSoC 5LP Programmer Firmware
                        Javier Hernandez

                        I was looking for this for a while and has been here since September! oh my god. Today is Christmas eve so I would see this as my Christmas present. Now I'll do my testing to see if my wish can be a reality.

                        Great post, thanks.

                          • Re: PSoC 5LP Programmer Firmware
                            Javier Hernandez

                            Compiling the project is not a issue for me, however after flashing the PSoC5 on the Pioneer kit is not beeing recognized by the PC as a KitProg. Tried to browse for the drivers to have windows install it as a kit prog like when has the KitProg from the kit firmware. But without any luck. Will resume trying on it latter. If anyone has any update with this please comment bellow.

                            I tried upgrading and without upgrading the bootloader component.

                              • Re: PSoC 5LP Programmer Firmware
                                Javier Hernandez

                                Success!. This works. However I had to leave the Bootloader as mentioned above on 1.10 plus the USBFS at version 2.40. For the rest it is working. Now I can try what I actually wanted to do. Quick update, this was on my case with Creator 3 Component Pack 7. Note, this is version 2.03 and the latest is 2.07 and I do not know what difference there might be.

                                 

                                My current version: From the Creator about:

                                Environment:

                                PSoC Creator  3.0 Component Pack 7 (3.0.0.1539)

                                Culture: English (United States)

                                OS Version: Microsoft Windows NT 6.1.7600.0

                                CLR Version: 2.0.50727.4984

                                 

                                Installed CyInstaller Products:

                                CY8CKIT-042CY8CKIT-042PSoC 4 Pioneer Kit Rev*B

                                PSoC Programmer 3.20.0

                                PSoC Creator 3.0 Component Pack 7

                            • Re: PSoC 5LP Programmer Firmware
                              r@njith

                              Hi all,

                               

                              Posting the PSoC 5LP firmware updated for PSoC Creator 3.0

                               

                              -Ranjith

                              1 of 1 people found this helpful
                              • Re: PSoC 5LP Programmer Firmware
                                miguelvp

                                So I got this compiled and working on Creator 3.0 upgrading booloader and bootable to only 1.10 and not letting USBFS upgrade at all.

                                Now I'm trying to use this and redirect the programming output to use the 5LP 12 pin header. Mapped xres_n to P0.0, SWDCLK to P3.4, SWDIO to P3.6.

                                I used the same configuration to modify AN84858 to program a 4200 prototype board (the $4 ones). using the included C# to create the HexImage file out of a .hex bootloadable program, that I couldn't program before because I did run the default AN84858 code that removed the bootloader.

                                 

                                But I want to take it a step further to be able to use the pioneer as a debugger for an external PSoC 4200. The kitprog shows up but it doesn't find the PSoC 4 chip, even if the modified AN84858 can program it just fine. I also connected the Pioneer PSoC P3.0 and P3.1 to the prototype board P3.0 and P3.1 respectively for the I2C communication since in the pioneer they are connected to the 5LP P12.0 and P12.1 as shown in page 102 of the pioneer manual (awesome work btw). The only thing the prototype board doesn't have that the Pioneer does is XRES in the pioneer is pulled high to P4_VDD with a 4.7K resistor shown in page 101 and I'm using P5LP_VDD instead of the P4_VDD but that will be easy to do since it's available in pin 6 of J2.

                                 

                                The prototype chip has the same chip (CY8C4245AXI-483 44TQFP) as the Pioneer one.

                                 

                                So I'm going to try to put a 4.7K resistor between XRES and P4_VDD on my breadboard, but I doubt that's all it takes.

                                Am I missing anything obvious?

                                IMG_20140903_185934.jpg

                                  • Re: PSoC 5LP Programmer Firmware
                                    miguelvp

                                    So I moved from the 5LP_VDD to the P4_VDD and added a 4.7K resistor between /XRES and P4_VDD

                                    IMG_20140903_195952.jpg

                                    The prototype board runs it's blinking bootable program, but KitProg can't see the chip.

                                    KitProg.png@

                                    I remember somewhere in the project that it forced contiguous pins, can that be the reason?

                                    Like using P3.4 and P3.5 in the 5LP instead of P3.4 and P3.6 for the SWDCLK and SWDIO?

                                     

                                    Edit: I know the MiniProg 3 will solve my issue, but for $90 I can get more dev kits instead of programming ones.

                                    I have 40 PSoC for a project that of course I can program now with the altered AN84858 Pioneer code.

                                    10 QFPs 10 SSOPs and 20 QFNs, the last ones I ordered by mistake, but the thing is I would love to build a prototype board of my own and use the Pioneer as a programmer/debugger. I can do the programmer but not the debugger.

                                     

                                    I'm also aware about using the $4 prototype boards as programmers but I would love to do the debugging as well without purchasing the MiniProg 3B which I should probably get anyways.

                                      • Re: PSoC 5LP Programmer Firmware
                                        miguelvp

                                        Success:

                                         

                                        I connected the Pioneer's PSoC 4 P3_0, P3_1, GND, P4_VDD & /XRES to the same pins in the prototype kit.

                                        For SWDIO and SWDCLK used the PSoC 5LP P0_0 and P0_1 and connected those to the prototype board.

                                        I only had to change the ProgKit pinout for SWDIO from P5LP2_0 to P5LP0_0  and SWDCLK from P5LP2_1 to P5LP0_1 and wired it as shown here:

                                        IMG_20140904_230058.jpg

                                         

                                        Now I can use program directly from Creator 3.0 and if I open Debug/Select Debug Target... I get the KitProg with the chip enumerated within it.

                                        KitProgSuccess.png

                                        Finally I was able to attach to the running program or debug it from scratch and set a Breakpoint

                                        KitProgBreakpoint.png

                                         

                                        Thank you for making the KitProg source available!

                                         

                                        Edit: I was too hasty about debugging from scratch, but I can however attach to the running project and put breakpoints after attaching, will investigate further about being able to use F5 to debug from scratch. Also P3_0 and P3_1 don't seem to be needed, and the pull-up resistor probably can go away as well.

                                          • Re: PSoC 5LP Programmer Firmware
                                            miguelvp

                                            If the program is not bootloadable it has full debug, meaning you can press F5 and step through the code from main.

                                            KitProgF5Debug.png

                                            Of course I don't run it in such a small window, I resized the IDE to make it more post friendly

                                             

                                             

                                            Excuse the mess of jumper wires, but this has the Pioneer debugging the prototype kit that runs a frequency counter (on the floating yellow wire on the left) that is picking up the 60Hz mains that is everywhere.

                                            The frequency counter code comes from this site:

                                            self.clue++ : Starting the PSoC frequency counter series

                                             

                                            IMG_20140905_005837.jpg

                                             

                                            I overdid the contrast so it will show up in the camera. Also the thing on the right of the breadboard is two pots and a buzzer, i'm using one of the pots to adjust the contrast of the LCD screen. Although it could be controlled with and analog output pin and use capsense to adjust it.

                                             

                                             

                                            So it's acting like a MiniProg3 after all. Also I didn't need the pull up resistor nor the 2 wires for SPI, so it's a 5 wire programmer just like the MiniProg3.

                                             

                                             

                                            Also I don't have to care about removing the bootloader on the prototype kit since I can upload a bootloader anytime now.

                                              • Re: PSoC 5LP Programmer Firmware
                                                miguelvp

                                                So that there is no doubt, other than the 4200 $4 prototype kit I have a 4100 $4 prototype kit as well.

                                                 

                                                I soldered one set of male headers like I did on the previous one and hooked it up to the breadboard and fired it up.

                                                IMG_20140906_010151.jpg

                                                 

                                                The 4100 chip showed up under the KitProg:

                                                PioneerKitProgPrototype4100.png

                                                 

                                                Also I was able to acquire it:

                                                PioneerKitProgPrototype4100Acquired.png

                                                And program it with a bootloadable image, and of course you can program and debug it the same as the Pioneer built in 4200. Note the capsense pionner RGB demo is still running in the built in 4200 I just did touch the slider to turn it green instead of red. The 4100 has the blinky bootloadable demo but I could use it to display something on the LCD, but no analog so I didn't bother.

                                                 

                                                 

                                                IMG_20140906_010154.jpg

                                                If you want more detailed connections or explanations (I would think it's clear enough if you look at the schematics), let me know in this thread. a thumbs up will help too even if the hard work was really done by the hard working folks from Cypress. I just rewired 2 pins!

                                                 

                                                I don't have access to PSoC 3 boards or PSoC 5LP ones either, nor the original PSoC 1. So I don't know if they will enumerate right, I don't see why not but I didn't look deep in the code. I do however have 40 4200 chips for a small project in all three packages (QFN, TQFP & SSOP) that I intend to use the Pioneer to program them.

                                                 

                                                Edit: this should work for the 4000 chips as well.

                                              • Re: PSoC 5LP Programmer Firmware
                                                ronniejk

                                                Sorry, I am a little late to the party. I can see if I try to remap the SWDIO and SWDCLK pins only P0.0(P5LP0_0) and P0.1(P5LP0_1) can be used on PSOC5 GPIO Extender connector J8. What is the reason? I tried using P3.4(P5LP3_4) and P3.5(P5LP3_5) but it does not work. Also I stipped and removed all the functionality, I just needed the programming functionality. Wonder why then limitation on which PIN can be used.

                                              • Re: PSoC 5LP Programmer Firmware
                                                miguelvp

                                                The other day I found a little SOIC 0.65 pitch board (schmartboard) so I used one of my 4200 SSOP 28 pin chips. I bought 10 SSOPs 10 QFPs and 20 QFN while they were (and still are) a dollar a pop.

                                                 

                                                I had some 0805 caps so I put it together with the headers and bypass caps.

                                                With the bypass you can feed VDDD from 1.8V to 5.5V and get regulated 1.8V out of VCCD.

                                                Edit: I used TDK 1uF 25V (C2012X7R1E105K125AB $0.037 qty 100) and Syfer 0.1uF 50V (0805J0500104KJT $0.055 qty 100) both 10% that I got from Mouser.

                                                 

                                                Here is how I wired it up and feed it 3.39V coming from the Pioneer that, also connected the SWD clock and IO as well as the /XRES and ground.

                                                 

                                                 

                                                The internal regulator is outputing 1.7985V. Well within the range of 1.71 to 1.89 V (1.8 ±5%) if I didn't bypass VDDD and VCCD and shorted them that's the regulated external supply you have to give it, but 3 tiny caps and it's happy from 1.8V to 5.5V.

                                                 

                                                I powered it up and launched Creator and made a blinky which took no time because I just told it to do the example and just wired the led to a pin that I could use.

                                                 

                                                The programmer didn't show the board at the beginning it just showed a cortex m0 and that's it but once I click on the Port Acquire on the kitprog it saw the target chip just fine.

                                                 

                                                pressed program and:

                                                 

                                                So from begin to end took me 15 minutes to put the board together and less than 2 to wire it up and program it.

                                                  • Re: PSoC 5LP Programmer Firmware
                                                    miguelvp

                                                    So today I decided to export a PSoC creator project to Keil and I was greeted by a nice surprise:

                                                     

                                                    Of course I did press the install,even if I don't have a miniprog3 I was thinking that maybe I can modify the kitprog that I use on my Pioneer to make a full programmer/debugger for Keil as well.

                                                     

                                                    So on the export it asked me if I wanted to open the exported project with keil, so I went ahead with it.

                                                     

                                                    I looked in: Project->Select Device for Target...

                                                     

                                                    And selected my chip, it defaulted to Generic CPU Database either clicking ok in there or selecting PSoC devices the target chip was already selected to the one I used in the PSoC Creator project.

                                                     

                                                    Then I went to: Flash->Configure Flash Tools... then to the Utilities Tab.

                                                    There I selected the Use Debug Driver.

                                                     

                                                    Then to the Debug tab and selected use (instead of use simulator).

                                                     

                                                    The drop down debugger selection had the MiniProg driver on it so I selected that one.

                                                     

                                                     

                                                    Then I clicked on Settings, thinking the KitProg wouldn't be there because it expects a MiniProg, but...

                                                    There it was KitProg listed and the full port configuration all set and unchangeable, clicked on the detected device and clicked on Port Acquire, even if I don't know if I need to do that.

                                                     

                                                    Ok and Ok to save the settings, saved the project and restarted Keil just to make sure it all took in (yeah I'm paranoid)

                                                     

                                                    Restarted it again, checked everything was still set as I left it, compiled the code and then selected: Flash->Download

                                                     

                                                    Sure enough it programmed my device and I saw the LED blinking happily.

                                                     

                                                    Done? nope, gotta try to debug it. So: Debug->Start/Stop Debug Session (or Ctrl+F5) and...

                                                    No problem since the PSoC 4 only has 32K of programmable memory 

                                                     

                                                    Clicked OK and...

                                                    It programmed it and stopped in the for loop since I had Run to main() selected in the debugger options.

                                                     

                                                    So there you have it a $25 dollar PSoC programmer that also works with Keil uVision 

                                              • Re: PSoC 5LP Programmer Firmware
                                                wire67

                                                Hi, how to transfer the bootloadable to the PSoC 5 ?

                                                  • Re: PSoC 5LP Programmer Firmware
                                                    wire67

                                                    according to the source code:

                                                    - Press PSoC 4 reset switch for more than 100ms during power-up.

                                                    => If yes, blink the LED slowly(ON Time = 1.5s, OFF Time = 1.5s) to indicate that the device is in bootloader

                                                     

                                                    Then I guess using "bootloader host", leaving the default settings

                                                    08:51:51 PM - program Started

                                                    08:51:52 PM - The operation has timed out.

                                                    08:51:52 PM - Communication port reported error 'Unable to read data from the target device'.

                                                    08:51:52 PM - program failed in 1193 ms.