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.

MSP430FR584x: Does BSL Require LFXT?

I am designing a new MSP430 board, and I am considering leaving off the LFXT to save space.  However, I want to use the UART BSL as the firmware update interface.

Will the BSL work without LFXT?  I read the data sheet, the UG, and the BSL UG, and none of these documents give the clock requirements for the BSL (or at least I couldn't find it).  What clock does the BSL use?

  • Uart BSL don't need external XT1/2. USB BSL use it.
  • The BSL uses the DCO as clock. It uses timers to measure the bit length of the sync byte and adjusts its own timings to it. So if you approach the BSL with 9000Bd or 10000Bd, it will still work. Only requirement is that the DCO doesn't drift too much after the initial sync - and the incoming baudrate is in a sane relation tot he default DCO speed.

    The I2C BSL is not clock timing critical as long as the I2C clock is below 100kHz.

    The USB BSL requires a 4, 8 or 12MHz crystal. USB requires a very precise timing (48MHz) and the BSL, not knowing which crystal you attach, can only detect/distinguish a few by comparing their clock against the REFO.
  • Mr. Gross,

    Many thanks.  I designed the boards, and now have them in house.  Unfortunately, the UART BSL does not appear to respond.  I am using the BSL scripting tool, and I've also poked around a bit with RealTerm, and haven't gotten a byte back from the MSP430.

    Are there any debug pins so I know that it's alive?

    I've checked all the obvious problems (Vcc ok, pinout), but is there something else I should look for?

    I'd hate to have to solder in a JTAG connector to program the board...

    Regards,

    Bill

  • To answer my own question, the logic used in BSL Scripter was the opposite of what I would expect; that is it SET DTR to drive the RESET pin high; but of course, DTR is active low, so it needs to be cleared.

    Once I reversed the logic in BSL Scripter the communication stream worked properly.

    Now it complains of an incorrect password. I thought that the default was 0xFF etc.
  • The password is part of the interrupt vector table. On an empty MSP it is all FF as empty flash memory (and therefore the interrupt vector table too) contains 0xFF.
    By writing a firmware with interrupts, this will implicitly set a different password. (at least for those interrupts that are located where the password is read from - but lately, the compiler will place dummy vectors to a capture ISR to all unused vectors)

**Attention** This is a public forum