7 Replies Latest reply on Sep 19, 2017 6:08 PM by spinolio_2737416

    CY8CKIT-049-42xx bootloadable 1.5 / 1.3

    spinolio_2737416

      I'm just starting to experiment with the CY8CKIT-049-42xx prototyping kit (also new to Cypress PSOC in general). I'm following the documentation for the board, starting with the projects in the SCB_Bootloader workspace. I cannot get very far in the build process due to this error:

       

      The instance 'Bootloadable', of component Bootloadable_v1_30, contains an error. Unable to locate and customize component 'Bootloadable_v1_30' used in schematic 'C:\Users\Steve\Documents\PSoC Creator\Firmware\SCB_Bootloader\Bootloadable Blinking LED.cydsn\TopDesign\TopDesign.cysch'.

       

      The component catalog only has V1.50 of the Bootloadable/-loader, and I am unable to find any references to compatibility between versions 1.3 and 1.5. Is there some way to find out what is on the proto board? I'm assuming the Bootloadable version has to match what is on the board, but that's definitely an uninformed assumption. The bootloader component in the TopDesign.cysch (for Bootloadable Blinking LED) cannot be opened and just displays this message:

       

      Cannot find v 1.30 of component Bootloadable

      This design uses an older version of a component than is available in your dependencies. Please update the component via the Project > Update Components menu.

       

      I tried to get both 1.30 and 1.50, but the component list continues to display only 1.50. I had installed PSOC Creator 4.1 before getting the board, so I installed the software and documentation specific to the CY8CKIT-049-42xx kit after the Creator installation. Any tips or links would be appreciated. I searched the web for quite a while and wasn't finding anything that helped. Thanks!

        • 1. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
          user_1377889

          Try updating your components to latest: Creator -> Project -> Update Components.

           

          Bob

          • 2. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
            ntan

            You can download the 1.3 version of Bootloadable from the "Component Update Tool" invoked by the menu item Project->Update Components(xxx)...

            GS003214.png

            Once V1.30 is downloaded the component is included in the PSoC Creator.

             

            If you see any problem using the V1.30 please consider to use the latest (1.50) version of Bootladable.

             

            When you create a new Bootloadable application, the SCB_Bootloader project should not be built because the ELF and HEX files are overwritten by the BUILD process.  Use the ELF and HEX file in the SCB_Bootloader\UART_Bootloader.cydsn\CortexM0\ARM_GCC_484\Debug directory for the parameter of the Bootloadable component.

             

            Please refer following application note too.

            AN73854 - PSoC® 3, PSoC 4, and PSoC 5LP Introduction to Bootloaders | Cypress Semiconductor

             

            Regards,

            Noriaki

            • 3. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
              spinolio_2737416

              Thank you for the prompt reply, Noriaki. I had tried doing what has been recommended above last night and it didn't seem to work. Perhaps I was updating the bootloader instead of the bootloadable. I tried again this evening and the original error has been resolved. Despite the update, the component catalog continues to show only the 1.50 version (see attached screenshot below). Is that normal?

               

              I'll have to reread the documents on the bootloader. It seems more complicated than I expected. In the past I used prototype boards with a programmer (TI and ST) and of course the Arduino with its very simple bootloader process.

               

              I was a little confused by the second half of your post. Not sure if the instructions were for using 1.30 or 1.50. I tried switching the bootloader and bootloadable components to be version 1.50, but that seems to have messed things up (in main.c: Build error: 'Bootloader_START_BTLDR' undeclared (first use in this function)). Not sure how to get back since the 1.30 components aren't available in the component catalog (despite having done the update to get 1.30). I might have to uninstall everything and start over at this point. Perhaps a board with KitProg would be better?

              • 4. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
                ntan

                I have tried with my Prototyping kit.

                 

                There are two solution to create a Bootloadable application.  The first one is to use the 1.50 version of Bootloadable component.  Create a new project on PSoC Creator 4.1 Update1 and put some components as follows.

                GS003225.png

                In the Bootloadable component, specify the HEX and ELF file location in the Dependencies tab as follows.

                GS003224.png

                Modify the configuration of other components and main.c file as you like.

                When the project is built, CYACD file is created at your project's directory like Design332.cydsn\CortexM0\ARM_GCC_541\Debug\Design332.cyacd

                 

                GS003226.png

                You can use the "Bootloader Host" application to load the CYACD file into the target device.

                 

                Regards,

                Noriaki

                • 5. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
                  ntan

                  The second solution uses the 1.30 version of Bootloader.

                  At first, click the "Show All Versions" button on the "Component Catalog" pane.

                  GS003228.png

                  Now you can see all versions of components PSoC Creator has.  Bootloader v1.30 does not appear in this step.

                  Open the "Component Update Tool" dialogue by selecting the menu-item Project->Update Components(xxx)...

                  GS003229.png

                  Select the "1.30 (Downloadable)" from the drop-down list of the Bootloadable component and then click "Next>" and "Finish"

                  Now, the Bootloadable v1.30 is downloaded from the Cypress's site and the component is listed in the Component Catalog pane as follows.

                  GS003230.png

                  The Bootloadable v1.30 uses same configuration to v1.50  So, new CYACD file can be built.

                   

                  Regards,

                  Noriaki

                  • 6. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
                    spinolio_2737416

                    Very helpful -- thank you! What is still a little strange to me (and I think this is the source of my confusion) is that the specific bootloader doesn't really matter, at least not with the proto kits. By this I mean the bootloader is already on the chip and won't be overwritten regardless of what I build in the project. Building a new one as part of the project seems like it's only a formality because it's not going to be programmed into the proto kit (The CY8CKIT-049-42xx). My build of the bootloader failed for the SCB_Bootloader example, so I just used whatever .hex and .elf files I could find in the UART_Bootloader.cysdn (in the ARM_GCC_484 / _541 directories as shown in the screenshot below). There was a bootloader .hex and .elf file in each of those directories with different dates/sizes. I tried using both sets in the bootloadable depencies tab and it worked each time. Please feel free to correct me or add any comments. I didn't want to modify the code for the provided example since I wasn't sure what they were trying to do with the bootloader main.c file. I just plan to use 1.50 for any projects I build from scratch in the future. Thanks again.   -Steve

                     

                    • 7. Re: CY8CKIT-049-42xx bootloadable 1.5 / 1.3
                      spinolio_2737416

                      Ok, this is pretty cool. I modified the example LED blink code so that it blinks rapidly if the button is pressed. Not very impressive, I know, but it's just my first attempt using PSOC Creator. Everything worked as expected. Next I'll try something with serial communication with the computer. Thanks again, Noriaki.

                       

                      -Steve

                       

                      int main()

                      {

                           int last_state = 1;

                          int push_state = 1;

                         

                          PWM_Start();

                         

                      for(;;)

                          {

                              /* Read the button and update the PWM to change blink rate */

                              push_state = SW1_Read();

                              if (push_state != last_state) {

                                  PWM_Stop();

                                  if (push_state == 1) {

                                      PWM_WritePeriod(1500);

                                      PWM_WriteCompare(750);

                                  } else {

                                      PWM_WritePeriod(100);

                                      PWM_WriteCompare(50);

                                  }

                                  PWM_WriteCounter(0);

                                  PWM_Start();

                                  last_state = push_state;

                              }

                              CyDelay(100);

                          }

                      }