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.

MSP430F5528: USB BSL with 4MHz Resonator

Part Number: MSP430F5528


Hi Experts,

I previously used the same resonator as the 5529LP in my 5528 design and was able to leverage USB BSL programming in my factory flow. That resonator is Murata's CSTCR4M00G15L99-R0 which is not REACH compliant. I migrated my latest design to AVX's PBRV4.00MR50Y000 which is a REACH compliant alternative. When I received my first prototypes with this new resonator, the board was not recognized in USB BSL mode. I flashed the board using SBW, and the USB functionality worked as normal. Later, I took one of the prototypes, and replaced its AVX resonator with the old Murata resonator. I didn't expect this to be a problem, but it turns out that board now works in USB BSL mode with the Murata resonator. 

Can you explain why USB BSL will work with one 4MHz resonator but not with the other? Keep in mind the board works with both resonators after it has been flashed.

Do you have recommendation for REACH compliant resonator that will work with USB BSL?

Thanks,

Ren

  • Hi Ren,

    I am not familiar with the AVX resonator, but the lower capacitance could be an issue. If you can find a REACH compliant part that has the same capacitance to the Murata part (or at least a closer capacitance), that may be a possibility.

    As for a REACH compliant recommendation, I believe that is the only such resonator that is used on our boards. I will try to find out if there are any REACH compliant alternatives that have been used.

    Regards,
    Nathan
  • Hi Ren,

    That is the only resonator that we use on our board for that purpose.

    Regards,
    Nathan
  • Nathan,
    Can you confirm it is the capacitance that causes the issue? The CSTCR is listed as having higher capacitance. I could potentially add capacitance to PBRV. Alternatively, I would be willing to switch to a different frequency or package as long as the footprint size and price is similar to CSTCR.
    Thanks,
    Ren
  • Hi Ren,

    The issue is the capacitance. Because you are using a crystal with a different required load capacitance, you will need to change your 2 load capacitors to match this new required capacitance.

    You can find information on how to calculate the necessary values in section 2.1 of this document: www.ti.com/lit/slaa322 (this is an app note on low frequency crystals, but the procedure will be the same for the 4 MHz crystal).

    Regards,
    Nathan
  • Nathan,

    The CSTCR has integrated capacitors. There are no load capacitors in my design nor in the 5529LP.

    Thanks,
    Ren
  • Hi Ren,

    Sorry for the oversight. Could you please clarify the original issue? With no code on the device, USB BSL will not work. And you said that it worked after you flashed it over SBW. From your original description, you then switched the resonator on that board. In that case, the everything will work because the USB BSL code will already have been flashed to the device. So I am a little confused about what is not working correctly. If you take a board that already has the USB BSL code flashed on it with the CSTCR crystal does USB BSL work?

    Regards,
    Nathan
  • Hi Nathan,

    Sorry for any confusion. I use the 'Python Firmware Upgrader' tool which is included with MSPWare. My design includes a BSL push button in the same manner as 5529LP.

    USB BSL mode does not work at all on boards populated with the AVX resonator. By this I mean that they do not appear as 'ready...' in the 'Python Firmware Upgrader' tool under any condition.

    USB BSL mode does work on boards populated with Murata CSTCR resonator. A new assembly appears as 'ready...' on first connection, and previously flashed devices appear as 'ready...' if BSL button is held during plug-in.

    All boards, with AVX or Murata resonator, work in their 'mission mode' after being flashed. This includes USB HID operation as programmed in my firmware. Since the boards populated with AVX refuse to cooperate with USB BSL, I flash these boards using SBW.

    My understanding is that the 4MHz resonator is required for correct USB operation, but may not be required for normal operation of F552x devices if not utilizing USB. That's why I find it especially interesting that USB BSL mode will not cooperate but the 'mission mode' USB HID does. I understand that resonator frequency is configured by the Descriptor Tool while in 'mission mode,' and that during USB BSL, the F552x device is capable of automatically detecting the frequency of the resonator. I suspect this auto detection has something to do with the issue. Can you confirm that my understanding of these features is correct?

    Thanks,
    Ren
  • Ren Schackmann said:

    My understanding is that the 4MHz resonator is required for correct USB operation, but may not be required for normal operation of F552x devices if not utilizing USB. That's why I find it especially interesting that USB BSL mode will not cooperate but the 'mission mode' USB HID does. I understand that resonator frequency is configured by the Descriptor Tool while in 'mission mode,' and that during USB BSL, the F552x device is capable of automatically detecting the frequency of the resonator. I suspect this auto detection has something to do with the issue. Can you confirm that my understanding of these features is correct?

    TI factory preloaded USB BSL (that is working only with 4,8, 12 or 24 MHz XT2 with auto detection) is HID, same as your 'mission mode'. If both have the same (setup) PLL divider and XT drive strength, both should be enumerated by OS on the same way. You can check in source code (for BSL and file generated by descriptor tool) if setup is the same or not. You can also export factory preloaded BSL, update binary to force only one PLL divider (4 MHz) for all selected XT2 values (disable auto detection), and write it back. You can find example for this, here on e2e (how to reconfigure factory preloaded BSL binary to unsupported XT2 value).  

  • Hi Ren,

    Yes, your understanding is correct. I am still not sure of what about the different crystals is causing this behavior. To help us figure this out, could you please check the registers to see if any fault flags are being set? Hopefully this is the case and it will help us narrow in on what the issue is.

    Regards,
    Nathan
  • Hi Ren,

    Has this issue been resolved? And, if not, do you have an update?

    Regards,
    Nathan
  • Hi Nathan,

    I would be interested in debugging the registers, but haven't had a chance to work on this. Which ones are of interest?

    Regardless of root cause, it doesn't seem like I will get the resolution I was looking for. I will most likely abandon USB BSL in my production flow in favor of SBW.

    Thanks,
    Ren
  • Hi Ren,

    The first thing to check would be the XT2OFFG bit in the UCSCTL7 register. This is the high frequency external crystal fault flag, and if it is set, that means that a fault condition exists for the clock.

    Regards,
    Nathan

**Attention** This is a public forum