This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Invoke the USB BSL by user software

Other Parts Discussed in Thread: MSP430F5529

·         I’m working on a project with the MSP430F66xx device.

·         In this project  I need to modify the USB BSL VID and PID to our own.

·         Also I need to invoke the USB BSL by our user software, not by a blank reset vector or by PUR pin held high.

·          

·         How do I modify the USB BSL VID and PID?

·         What code commands are necessary to invoke USB BSL?

 

Any hint or link to demo application source code are highly appreciated?

 

Thanks in advance for the help,

Steffen kristensen

  • Hi,
    You may consult the "USB Device Firmware Update on MSP430 MCUs" document from the product folder to know more about USB BSL.
    Some other links on MSP430F5529 USB BSL:
    Regarding VID and PID you may use "MSP430 USB Descriptor Tool" provided in the product folder above.
    And  There is a nice document on Starting a USB Design with MSP430 MCUs 
    available from MSP430F5529 product page – here
    Regards.

  • Thanks for the fast reply.

     

    Regarding my first question:

    Using the "MSP430 USB Descriptor Tool", can set the VID/PID for CDC and HID user devices, but I don’t believe that it can set the USB BSL VID and PID.

    This is default VID: 0x2047 and PID: 0x0200 but I’m not sure we may use this in production.

    Can TI comment on this?

     

    Regarding my second question:

    I got the answer:

    Setting the program counter to the memory location 0x1000 invokes the BSL

     ((void (*)())0x1000)();

    Regards

    Steffen Kristensen

     

     

  • As for TI commenting on the use of VIDs and PIDs in your own production, they mention a bit about this in the Device Firmware Update document, found here:

    http://www.ti.com/litv/zip/slac299

    They also mention it in the Getting Started with USB Design guide, which can be found here:

    http://www.ti.com/litv/zip/slac293b

    I hope those links work for you, if not they are under the MSP430F5529 page. From what I understand they do not recommend using the defaults for your own production because there can be conflicts in the field, which could cause problems.

     

    I would assume that it would be the same for the 6xx devices as the 5xx devices. Just be forewarned, this documentation is listed as Preliminary; this means things can change as new releases of documentation come out.

    Best of luck with the USB devices, I've only recently started playing around with the F5528 and its BSL/USB peripheral.

    -NJC

    ______________________________

    http://msp430launchpad.blogspot.com

  • Hi,

       I was unable to post the answers earlier, glad to see you got some already.

    For some clarification: The current recommended method for changing the VID/PID of the BSL is to recompile the source.  Currently, for the 6638, this is not available.  You could always read out the BSL image, change the constants, and then reprogram this, however I'm not sure this is really required for your goals...

    You mention using the BSL for production.  If you mean production programming of devices, the default VID/PID should be fine, as long as your system is simply designed to mass pogram this one device/image.

    For field firmware upgrades, it is still ok, but there is a (albeit very small) chance that another unrelated product could be in "BSL mode" and connected at the same time, leading to confusion on the part of your upgrade software.

  • Hi

    Thanks for all the valuable answers to  my questions.

    I highly appreciate it

     

    ·         Setting the program counter to the memory location 0x1000 invokes the BSL

     ((void (*)())0x1000)();

     

    For field firmware upgrades I will use USB BSL default VID: 0x2047 and PID: 0x0200 and from the BSL read some  memory locations to make sure it’s our device before upgrading.

    This way I’m sure it’s our device and not any other unrelated product with the same VID/PID

     

    Regards

    Steffen kristensen

  • >read some  memory locations

    This sounds like a good plan.  My only further suggestion would be to look into the CRC command in the BSL, as it was put in for memory verification purposes like you describe.

  • Hello,

     

    I'm searching about an example of USB BSL code with memory verification with CRC.

    Are there it on your website or where can I find it ?

     

    Thanks.

**Attention** This is a public forum