Multiple Channel Bootloading

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

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable
    
      Multi- Channel Bootloading with PSoC Creator V2_0    
    
           
    
           
    
      With PSoC Creator v2_0, you can now bootload images using multiple channels. You can have multiple communication interfaces in your design and dynamically choose which communication protocol to use for Bootloading the image at run time.    
    
           
    
      For this you have to choose custom interface in IO component of Bootloader(BL) in system DWR settings and implement the following five communication APIs for each of the communication component used:    
    
           
    
      CyBtldrCommStart    
    
      CyBtldrCommStop    
    
      CyBtldrCommReset    
    
      CyBtldrCommWrite    
    
      CyBtldrCommRead    
    
           
    
           
    
                     
    
           
    
      As seen from the above figure, USBFS and I2C are used as BL communication component. To switch dynamically during run time, you can use an interrupt that switches to one of the two available IO communication component whenever a flag is set.    
    
           
    
       For eg:    
    
           
    
      CY_ISR(MY_ISR_ROUTINE)    
    
      {    
    
         If ( switch_pressed)    
    
      Flag=1;    
    
      }    
    
           
    
      And implement the instance specific APIs according to the flag set.    
    
           
    
      For eg:    
    
           
    
      void CyBtldrCommStart(void)              
    
      {    
    
                  if(Flag==1)          
    
      I2C_1_CyBtldrCommStart();    
    
                      
    
                  else    
    
      USBFS_1_CyBtldrCommStart();          
    
      }    
    
           
    
           
    
           
    
           
    
       Happy Bootloading     
   
   
        
0 Likes
1 Solution
Anonymous
Not applicable

Great idea!.. I am working on exactly the same thing,but where one can select bootloading between USB,UART and SD Card.

   

 

   

Thanks 🙂

View solution in original post

0 Likes
3 Replies
Anonymous
Not applicable

Great idea!.. I am working on exactly the same thing,but where one can select bootloading between USB,UART and SD Card.

   

 

   

Thanks 🙂

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

 Hi kmmankad,

   

Are you interfacing the SD card using SPI comm protocol?  I have attached the code snippet (comm_protocol_switch.c)  that explains how to switche between UART, SPI and USB for bootloading. You just need a slight modification to make it bootload from SD card. 🙂

   

Thanks,

   

srim

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Attached the top deisgn of my proj.

0 Likes