PSOC5LP Bootloader related doubts

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

cross mob
AbPa_4654881
Level 3
Level 3
10 replies posted 10 questions asked 10 likes given

Hi Guys,

I am new to the bootloader related things. as of now I am having kit cy8ckit059. in this Kitprog is use to program the targer IC (CY8C5888LTI-LP097).

can anyone Please tell me where is the bootloader located (is it in the Kitprog IC or Target IC)?

1)  I want to use CY8C5888LTI-LP097 IC's as standalone IC's for my design. How I can Program this standalone IC ?

2)  If I buy CY8C5888LTI-LP097 standalone IC's. will there be bootloader inside this IC's?

2)  How  I can program CY8C5888LTI-LP097 standalone IC's using Bootloader?

3) if using Bootloader then How I can place the bootloader Code into CY8C5888LTI-LP097 standalone IC's so that I can Program these IC's using serial communitcation for PC(computer)?

Please Help me to understand These things.

Thanks..

0 Likes
1 Solution
lock attach
Attachments are accessible only for community members.
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

AbPa,

I'm very sure I can help you here.  I just finished using the Bootloader/Bootloadable example that Cypress provides for the PSoC5.  It is configured for the CY8CKIT-059.

I've attached my workspace  (USBFS_Bootload.cywrk) with the Bootloader project and the Bootloadable project.

There are some setup that you will have to do that is explained in the pdf of the projects attached.

These setup procedures once you understand why it is necessary (explained in the pdf), the build is then trivial.

Build the Bootloader project first.  Once the build is successful, program the Bootloader into the Target using the KitProg.

Build the Bootloadable project next.   Once the build is successful, the Target which has the Bootloader in it will have the BLUE LED (port 2.1) light constantly.

Use the Bootloader Host program to load the .cyacd file of the Bootloadable code.   Connect a USB cable to the Target's USB port (wait for the COM driver for this device to get configured).

pastedImage_6.png

Once you see the (04B4_B71D) VID_PID, select it and press the Actions\Program (F5) or the button

This should load your compiled Bootloadable program into the Target PSoC.

My Bootloadable example will blink the BLUE LED.

If you need to update the Bootloadable project into the Target, press the RESET switch (or power up) and you have 10 seconds to use the Bootloader Host to load it.

I suggest using my example workspace as a starting point for what you want to do.

Now to try to answer your questions:

1)  I want to use CY8C5888LTI-LP097 IC's as standalone IC's for my design. How I can Program this standalone IC ?

You can use a MiniProg3 with the 5-pin connection.

2)  If I buy CY8C5888LTI-LP097 standalone IC's. will there be bootloader inside this IC's?

No.   You have to load it.  Because you have the Bootloader project, if you want you can  modify it to enhance it if desired.

2.a)  How  I can program CY8C5888LTI-LP097 standalone IC's using Bootloader?

See 1) answer or the description of the USBFS_Bootload workspace above. 

3) if using Bootloader then How I can place the bootloader Code into CY8C5888LTI-LP097 standalone IC's so that I can Program these IC's using serial communitcation for PC(computer)?

The Bootloader project in the USBFS_Bootload workspace assumes you are using Cypress' Bootloader Host program or the equivalent.  (The Bootloader Host source code is available.)   If you want to use the USBFS port on the Target CPU in serial comm mode, there would probably need some changes.  If you want to use the Target's UART port as a Bootloader port, this is doable.  There is already code for this.  I don't know the example project.  But there is Bootloader code that uses the CY8CKIT-059's KitProg in serial comm mode.

The Bootloader configuration allows for USBFS, UART, I2C and Custom interface.

pastedImage_0.png

Maybe someone can help with this request.

Len

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

View solution in original post

5 Replies
lock attach
Attachments are accessible only for community members.
Len_CONSULTRON
Level 9
Level 9
Beta tester 500 solutions authored 1000 replies posted

AbPa,

I'm very sure I can help you here.  I just finished using the Bootloader/Bootloadable example that Cypress provides for the PSoC5.  It is configured for the CY8CKIT-059.

I've attached my workspace  (USBFS_Bootload.cywrk) with the Bootloader project and the Bootloadable project.

There are some setup that you will have to do that is explained in the pdf of the projects attached.

These setup procedures once you understand why it is necessary (explained in the pdf), the build is then trivial.

Build the Bootloader project first.  Once the build is successful, program the Bootloader into the Target using the KitProg.

Build the Bootloadable project next.   Once the build is successful, the Target which has the Bootloader in it will have the BLUE LED (port 2.1) light constantly.

Use the Bootloader Host program to load the .cyacd file of the Bootloadable code.   Connect a USB cable to the Target's USB port (wait for the COM driver for this device to get configured).

pastedImage_6.png

Once you see the (04B4_B71D) VID_PID, select it and press the Actions\Program (F5) or the button

This should load your compiled Bootloadable program into the Target PSoC.

My Bootloadable example will blink the BLUE LED.

If you need to update the Bootloadable project into the Target, press the RESET switch (or power up) and you have 10 seconds to use the Bootloader Host to load it.

I suggest using my example workspace as a starting point for what you want to do.

Now to try to answer your questions:

1)  I want to use CY8C5888LTI-LP097 IC's as standalone IC's for my design. How I can Program this standalone IC ?

You can use a MiniProg3 with the 5-pin connection.

2)  If I buy CY8C5888LTI-LP097 standalone IC's. will there be bootloader inside this IC's?

No.   You have to load it.  Because you have the Bootloader project, if you want you can  modify it to enhance it if desired.

2.a)  How  I can program CY8C5888LTI-LP097 standalone IC's using Bootloader?

See 1) answer or the description of the USBFS_Bootload workspace above. 

3) if using Bootloader then How I can place the bootloader Code into CY8C5888LTI-LP097 standalone IC's so that I can Program these IC's using serial communitcation for PC(computer)?

The Bootloader project in the USBFS_Bootload workspace assumes you are using Cypress' Bootloader Host program or the equivalent.  (The Bootloader Host source code is available.)   If you want to use the USBFS port on the Target CPU in serial comm mode, there would probably need some changes.  If you want to use the Target's UART port as a Bootloader port, this is doable.  There is already code for this.  I don't know the example project.  But there is Bootloader code that uses the CY8CKIT-059's KitProg in serial comm mode.

The Bootloader configuration allows for USBFS, UART, I2C and Custom interface.

pastedImage_0.png

Maybe someone can help with this request.

Len

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

Thank you so much LePo !!!

I understood the complete thing and able to do bootloading using USBFS module. but my final field design is having RS485 compatibility so I want to do bootloading using RS485. Is that thing possible ?

In your bootloader TopDesign.cysch "USBFS" module is used. as Now I want to do bootloading using RS485 then I think I should use "UART" module to configure with RS485 thing ?

0 Likes

AbPa,

Yes.  You should be able to substitute the UART in place of the USBFS.

As an experiment, connect the UART to pins 12.7 (Tx) and 12.6 (Rx) on the CY8CKIT-059.   This will connect to the UART-2-USB interface on the KitProg.   This will be your RS-485 HW substitute for now.   Get it to work as a bootloader.  Once that works, connect the UART to your RS485 HW.  This should be a simple transfer.  I'm assuming you're RS-485 will be using the COM port interface on the PC.

Len

Len
"Engineering is an Art. The Art of Compromise."
0 Likes
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

AbPa,

If you haven't worked with PSoC5 before, I recommend to develop the application w/o using a bootloader first, as it is much easy to debug. By that time you will become quite familiar with the PSoC. Then it will be easy to convert your project into a bootloadable simply by adding a Bootloader and Bootloadable components.

Another thought is that how much do you need a bootload-ability? Usually it is done for in-field upgradeable product. Otherwise it is simpler just to add a 5-pin connector on the PCB for standard programming using a KitProg or MiniProg without all that headache.

/odissey1 

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

AbPa,

/odissey1 is correct.   Unless you plan to have a field-distributed FW update file available to the end users, it makes more sense if your updates can be done in-house with a MiniProg3.

There are two other disadvantages to the Bootloadable code:

  • You need to supply the Bootloader Host with some drivers to the end-users needing to field-upgrade.
  • The code in FLASH is not protected for viewing but unauthorized users.

With the 5-pin header and MiniProg3, the code in FLASH can be READ-protected.   A reprogram will erase ALL FLASH first before loading the updated code which can then protect the FLASH from SWD reads.

Len

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