Showing results for 
Search instead for 
Did you mean: 

PSoC™ 5, 3 & 1

Not applicable

 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.





4 Replies
Not applicable
        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. HID, BULK, MIDI... I'm not shavvy about bootloader actually. Thank you.   
Not applicable

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.

Expert II

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



Esteemed Contributor

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.