6 Replies Latest reply on Sep 2, 2018 12:51 AM by DheerajK_81

    MiniProg3 Device/Protocol Question

    user_447586425

      Hello,

       

      Is there any technical information on the MiniProg3 functionality or protocol?

       

      I'm building a production programmer that uses Tag-Connect pins, and I'd like to be able to implement power cycling and other options in PSoC Programmer.

       

      I'm emulating a KitProg 2_1 at the moment, which technically works, but it looks like GetProgrammerCapabilities is limited based on the USB ID.  Any attempt to change the options is denied by the PP com interface.

       

      Emulating the MiniProg3 looks like significantly more work - it looks like it might use a FX2LP for USB, then program a FPGA.  I'm curious why the FPGA is used - given the size of the MiniProg3, I would expect the FPGA to be something small like a ICE40 UltraLite, but I don't know what that gets you that the FX2LP doesn't.

       

      The ARM headers are expensive, and 5 pin programming headers in production products are a pain.  The Tag-Connect approach is really easy to work with, uses minimal board space, and doesn't require adding components on.  It would be nice if I could get this to support PSoC Programmer, JTAG, and voltage control too.

        • 1. Re: MiniProg3 Device/Protocol Question
          DheerajK_81

          The programming specification linked below is intended for those developing their own programming systems. Based on the target device you an choose the corresponding programming spec under the Design Support tab in the link below:

          http://www.cypress.com/products/psoc-programming-solutions

           

          In the Appendix C of the linked document you can find the implementation of SWD Protocol: http://www.cypress.com/file/409516/download

           

          The programming specification is generic and it is tested only on devices supported by Cypress. You can understand how programming is implemented based on your target device and it should work with your custom programmer. Do let us know your observations.

           

          Regards,

          Dheeraj

          • 2. Re: MiniProg3 Device/Protocol Question
            user_447586425

            I'm familiar with those resources.  They are a good guide on how to talk to the hardware itself.

             

            My goal, however, is to make things easier for developers.  The goal is to support PSoC Designer, not provide an alternative.

             

            Right now, my programmer works with both PSoC Programmer and PSoC Creator.  You can hook it to a target board, hit program, and it will work.  What doesn't work are advanced features supported by both PSoC Creator and PSoC Programmer, like changing the protocol, voltage, or programming mode.

             

            As such, I'm looking for information on how PSoC software communicates with PSoC hardware.  I like Cypress chips, and am trying to base the hardware I release around them.  I develop hardware to support older arcade equipment, and having an open-source toolchain with documented code has permitted others to develop in the Cypress ecosystem.

             

            PSoC Programmer seems to support customized KitProg3 hardware - it has a message when it detects it:

             

            PSoC Programmer has detected custom Miniprog3 hardware. Please refer to the kit documentation for any limitations or directions on use.

             

            Is it possible to get information on making a customized MiniProg3, or any of the protocol or design, or even information on the PP COM internals, so that I can make a programmer that supports all the PSoC software, rather than just trying to roll everything from scratch?

            • 3. Re: MiniProg3 Device/Protocol Question
              DheerajK_81

              The design, schematic and internal implementation of the Miniprog3 is proprietary and cannot be provided. Please refer to the documentation mentioned in the previous response which is the only resource available to customers to make custom programmers.

               

              Information on how PSoC Software talks to the hardware is all about following the sequence mentioned in the programming specification.

              http://www.cypress.com/products/psoc-programming-solutions

               

              Regards,

              Dheeraj

              • 4. Re: MiniProg3 Device/Protocol Question
                user_447586425

                DheerajK_81

                 

                Ok, if the MiniProg3 is propreitary, how about the KitProg?  I’ve seen it distributed on non-cypress dev boards, and there is a firmware example in the PSoC Programmer distribution for creating a KitProg2 custom firmware.

                 

                Is it acceptable to distribute a customized firmware that uses the sample project?

                • 5. Re: MiniProg3 Device/Protocol Question
                  DheerajK_81

                  You can refer to the section Developing Applications for PSoC 5LP for firmware examples in the Kitprog user guide (Link: http://www.cypress.com/file/157966/download )

                   

                  Regards,

                  Dheeraj

                  • 6. Re: MiniProg3 Device/Protocol Question
                    DheerajK_81

                    In Summary,

                     

                    The design, schematic and internal implementation of the Miniprog3 is proprietary and cannot be provided. Information on how PSoC Software talks to the hardware is all about following the sequence mentioned in the programming specification. Based on the target device you an choose the corresponding programming spec under the Design Support tab in the link below:

                    http://www.cypress.com/products/psoc-programming-solutions

                     

                    In the Appendix C of the linked document you can find the implementation of SWD Protocol: http://www.cypress.com/file/409516/download

                     

                    The programming specification is generic and it is tested only on devices supported by Cypress. You can understand how programming is implemented based on your target device and it should work with your custom programmer.

                     

                    For developing custom Kitprog 2 firmware you can refer to the section Developing Applications for PSoC 5LP for firmware examples in the Kitprog user guide (Link: http://www.cypress.com/file/157966/download )

                     

                    Regards,

                    Dheeraj