Jump to content
monsonite

The BSL Bootloader - A Poorman's Guide

Recommended Posts

I got interested in the BSL bootloader about 6 weeks ago whilst trying to find a programming solution for a product at my work.

 

I have done a bit of research and written it up as a 2 part post on my blog:

 

Part 1      http://sustburbia.blogspot.co.uk/2016/02/the-great-msp430-bootloader-swindle.html

 

Part 2      http://sustburbia.blogspot.co.uk/2016/03/the-great-msp430-bootloader-swindle.html

 

 

If you want to program an MSP430 but don't want to have to use a FET based device, then this could be what you are looking for.

 

My programmer?  Sure - that's it on the left hand end of my ChipStick board - costs about $1.

 

post-48241-0-38681500-1459531160_thumb.jpg

 

 

 

Ken

Share this post


Link to post
Share on other sites

Doesn't using BSL without a password end up wiping out the info segment where the factory calibrated settings are stored?

This might have been an msp430g series only issue. I remember there was a reason I didn't like BSL. I think that was it.

 

My memory is foggy on this, and I looked unsuccessfully to see if i could find the info.

 

[edit] ... actually I found it

 

http://www.ti.com/lit/ug/slau319k/slau319k.pdf#page=6

 

...

 

Share this post


Link to post
Share on other sites

Doesn't using BSL without a password end up wiping out the info segment where the factory calibrated settings are stored?

This might have been an msp430g series only issue. I remember there was a reason I didn't like BSL. I think that was it.

 

At the time, when I was working on BSL for 2xx (before I switched forever to SBW), I made automatically updates for password (stored in separate file) with previously builded (not the last one) txt file, to avoid infoA memory segment erase. 

 

Bottom line. BSL isn't really useful for the msp430g series as it will destroy the factory calibrated values. This may be true for the msp430F2 series as well

 

Same thing is with F2xx family. However, there is msp430g2x44_dco_flashcal.c example in slac548c MSP430G2x44 Code Examples (Rev. C) where (almost) any DCO frequency can be calculated and calibrated values stored to info memory. Example can be found also in code examples for other 2xx devices. 5xx/6xx family use TVL for constants and info memory is not used.

 

Share this post


Link to post
Share on other sites

At the time, when I was working on BSL for 2xx (before I switched forever to SBW), I made automatically updates for password (stored in separate file) with previously builded (not the last one) txt file, to avoid infoA memory segment erase. 

 

 

 

Same thing is with F2xx family. However, there is msp430g2x44_dco_flashcal.c example in slac548c MSP430G2x44 Code Examples (Rev. C) where (almost) any DCO frequency can be calculated and calibrated values stored to info memory. Example can be found also in code examples for other 2xx devices. 5xx/6xx family use TVL for constants and info memory is not used.

 

FR5xx/6xx don't use infomem for constants but don't the flash F5xx at least use InfoA?

Share this post


Link to post
Share on other sites

FR5xx/6xx don't use infomem for constants but don't the flash F5xx at least use InfoA?

 

No. All factory-provided calibration data for 5xx/6xx flash devices are stored in TLV structure. Info memory (including Info A segment) is (free) not used.

Share this post


Link to post
Share on other sites

No. All factory-provided calibration data for 5xx/6xx flash devices are stored in TLV structure. Info memory (including Info A segment) is (free) not used.

Double-checked, you are right ...

#define TLV_START              (0x1A08)       /* Start Address of the TLV structure */
#define TLV_END                (0x1AFF)       /* End Address of the TLV structure */
 
infomem lives in 0x1800 - 0x19FF.
edit: Nevermind the datasheet has a whole section on TLV :)

Share this post


Link to post
Share on other sites

Hi All,

 

I am aware of the limitations of the BSL, and the power of the Mass Erase function.

 

I am suggesting that BSL is a convenient way of getting your initial code into the device - in my case an image of Forth or Simplex.

 

Once this code is in place you have a device that runs an interpreted language, with it's own mechanism for programming code into the FRAM. 

 

Perhaps I should have made this clearer in my post.

 

 

 

Ken

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...