You are here

USB for Bootloader and Application? | Cypress Semiconductor

USB for Bootloader and Application?

Summary: 4 Replies, Latest post by danaaknight on 05 May 2013 05:53 AM PDT
Verified Answers: 0
Last post
Log in to post new comments.
user_284667277's picture
1 post

 I am brand new to the PSOC and about to start working on my first project.

The project requires a bootloader and also a facility for users to make changes to program settings. Until now I have been using the Microchip 32 bit ptocessor and have the USB just for Bootloader and a serial RS232 port for interfacing to a PC based GUI for users to set parameters.

I note there is a USB/UART appplication which appears that it would make the interface to the GUI a beeze via the USB port (Mainly using VB.NET for GUI) as I can use standard UART code I have already running.

My question is: Can I also set up the USB to facilitate the bootloader AND my user parameter setup? (ie. Set up a reserved command on the PC software to put the target into bootloder mode and enable upload of new firmware).

Alterantely, is there an example gthat shows how to set up the target device as an HID USB and a "template" program for communicating with the PC. I am not familiar with USB programming from the PC to the target so would need something that does the underlying endpoint handling etc and gives me simple access (say a buffer I can drop data into at either end of the link and pick it up at the other). I would expect the USB would be a lot faster than using USB-UART?

Hope this make sense.



user_119377051's picture
866 posts

I recommand you of this link.
This firmware is for psoc1 but host program and test program is same.
Many host examples are useful.
Examples for each psoc firmware is there every where.
I'm not shavvy about bootloader actually. Thank you.

user_39759791's picture
357 posts

Yes it is possible to use the USB module in both bootloader and Main program.

Also,  There is a USB-HID example in PSOC Creator. Just look in the example projects.

user_1377889's picture
9283 posts

The bootloading process will look at first whether there is a valid device with a valid new bootloadable program. If not, the usual initialization process is started which in turn supplied your main() with all the hardware you defined.

If there is a new bootloadable it will get transferred through the interface and after completion a reset is made and the process starts all over again. Since now the bootloadable is not "New" (it has been installed already) control is taken over by the initialization process of the bootloadable.


Hope that helps for understanding


user_14586677's picture
7646 posts

Some help -     AN73503 - USB HIAN60317 - PSoC® 3 and PSoC 5LP I2C BootloaderD Bootloader for PSoC® 3 and PSoC 5LP     AN68272 - PSoC® 3 and PSoC 5LP - Customizing the Bootloader Communication Channel     AN60317 - PSoC® 3 and PSoC 5LP I2C Bootloader


Regards, Dana.

Log in to post new comments.