USB for Bootloader and Application?

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

cross mob
Anonymous
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.

   

 

   

Thanks

0 Likes
4 Replies
Anonymous
Not applicable
        I recommand you of this link. http://www.cypress.com/?rID=34870 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.   
0 Likes
Anonymous
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.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

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

   

Bob

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Some help -

   

 

   

www.cypress.com/     AN73503 - USB HIAN60317 - PSoC® 3 and PSoC 5LP I2C BootloaderD Bootloader for PSoC® 3 and PSoC 5LP

   

 

   

www.cypress.com/     AN68272 - PSoC® 3 and PSoC 5LP - Customizing the Bootloader Communication Channel

   

 

   

www.cypress.com/     AN60317 - PSoC® 3 and PSoC 5LP I2C Bootloader

   

 

   

Regards, Dana.

0 Likes