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.

MSP430F5529: Issues with connecting over USB on breadboard

Part Number: MSP430F5529
Other Parts Discussed in Thread: MSP430F5510, ENERGIA

Hi, 

I am trying to prototype an MSP430F5529 microcontroller on a breadboard, so that I can implement it in a PCB design for a large power supply unit. I intend to use the 16 ADC channels to monitor the voltage of all the power lines (PCB manufacturing facilities at Uni are closed due to Covid-19 and I am also horrendously delayed, hence I am working on breadboard). I have implemented the 5529 on breadboard with the help of a TQFP80 adapter, soldering the chip onto that and adding the various capacitors and resistors exactly like the launchpad schematics with no differences, but I keep getting an 'Unknown file descriptor error" in the device manager of my Windows computer. I have double checked all connections and have looked at the forum posts here with users experiencing similar errors but I have been unsuccessful, the USB port is not damaged and pressing the BSL button forces a reload and redetection of the USB device but it still ends in failure. I have checked the voltage levels and my crystal oscillator and they match exactly with the voltages of the evaluation board. 

To be honest I have done some research regarding the USB firmware in the flash on the microcontroller and I have seen that there is actually a dedicated programming device, a full ZIF MSP430 breakout for the board, and a JTAG programmer as an alternative to USB, do I need to purchased anything else to install the USB drivers to the flash ? None of the other forum posts seem to mention their procedure or mention that they used anything else to program it on their custom PCB. I am rather overwhelmed with the volume of methods and approaches available for programming/connection to the device, any help would be greatly appreciated. 

Of course let me know if any other details are needed, my schematic is exactly the same as the launchpad down to the resistor values and I've been on this for 4 or 5 days without much progress. I am also quite experienced with circuit design and using breadboards, I have also used FTDI chips as USB com ports in exactly the same way which has been very successful. 

Best Regards, Ren

  • First, I should ask: What is your overall goal? Do you want to bring USB all the way in to your target (F5529), or do you want to have a programmer and maybe a UART link?

    If it's the former, you'll need firmware in your target MCU to talk over the USB. TI has some samples for doing that here:

    http://dev.ti.com/tirex/explore/node?node=AAUJ6YInKu.PpzCDv2gn2w__IOGqZri__LATEST

    If it's the latter, there are simpler ways to do this.

    Typically, one doesn't design a programmer into a target board, rather connects a separate programmer as needed. If you bring out the UART and SBW signals to header pins, you can use the Launchpad's programmer to program your target.

    For a UART/USB connection, you can use the Launchpad's backchannel UART (temporary), or a separate converter (permanent). I've used FTDI chips for this, though many sing the praises of the Cypress devices.

    In either case, re-creating the entire Launchpad (USB side) is probably much more than you need.

  • Jarez Patel said:

    I am trying to prototype an MSP430F5529 microcontroller on a breadboard, so that I can implement it in a PCB design for a large power supply unit. I intend to use the 16 ADC channels to monitor the voltage of all the power lines (PCB manufacturing facilities at Uni are closed due to Covid-19 and I am also horrendously delayed, hence I am working on breadboard). I have implemented the 5529 on breadboard with the help of a TQFP80 adapter, soldering the chip onto that and adding the various capacitors and resistors exactly like the launchpad schematics with no differences, but I keep getting an 'Unknown file descriptor error" in the device manager of my Windows computer. I have double checked all connections and have looked at the forum posts here with users experiencing similar errors but I have been unsuccessful, the USB port is not damaged and pressing the BSL button forces a reload and redetection of the USB device but it still ends in failure...

    This was my first MSP USB board that I used for years, with entry level MSP430F5510. Later it was changed to work with two PUR / RESET buttons.

    I liked MSP430 USB family because it was enough to have only chip surrounded with few discrete elements on board, for development. Device is factory preloaded with HID BSL that is working with Windows MSP430 USB Firmware Upgrade Example application. Device will enter to BSL mode automatically in case of blank device (after reset or power up), or if both buttons RESET and PUR are pressed together, than first RESET button is released, and after this PUR button. Or if device is powered up by pressed PUR button. In any case, correctly enumerated device factory HID BSL is proof that everything is OK with USB and related on board hardware. If there is problem with HID BSL enumeration, then there is some problem on board. Factory HID BSL can work only with 4, 8, 12 or 24 MHz XT2.

  • Hi Bruce,

    Thanks for the reply on Saturday! Yes I would like USB to be available at the target permanently, I will need the device to appear as a serial device (COM port) in Windows and also in Linux (I have a C code working based on the launchpad). Cheers for that link it seems extremely useful, I will check that out.

    No, I don't think I will design a complete programmer into my final PCB as you say, it is not an elegant solution, but I will have the necessary programming pins on an external header and will hopefully program the firmware once, using the launchpad board to do this (tips on this procedure would be greatly appreciated!). I see have mentioned the UART (TX and RX) and SBW pins, I did connect this up to the launchpad a couple of days ago and uploaded some code to blink an LED I had connected up, but it didn't work - it was a big shot in the dark. Is there are any debug lines or any pin on the 5529 that shows that the chip is fully working and not perhaps damaged from the hot air soldering process? 

    I will certainly try this again and will post pictures of my setup tomorrow. 

    Best Regards, Jarez

  • Hi Soli, 

    Thank you for confirming that the device comes preloaded with HID BSL, I implemented the Reset button and the BSL button as per the schematics and any combination of RST and BSL presses made no difference to what was detected on device manager. I did find that holding the BSL button down causes a redetect of the driver (that's probably as expected). I probed the D+ and D- with an oscilloscope and did indeed see activity when the BSL button is pressed, though I have little experience with understanding how USB lines look like and it could equally be the computer side generating the signals. (FYI I am using the same crystal oscillator as that in the launchpad and I think it reports some frequency like 3.97 MHz, exactly the same as the launchpad). The fact that I am not seeing anything other than an error is indication that maybe my wiring needs improvement or is incorrect. 

    I will post some pictures of my breadboard and setup tomorrow. If you there is any other documentation that you guys could point me to read for tonight then that would be good. 

    Best Regards, Jarez

  • Hi Jarez,

    Is ther any update or do you need our support for your question?

    Thanks!

    Best Regards

    Johnson

  • Hi all, 

    Sorry for the delay, I have reassembled the system on breadboard (exactly the way it was) and I am still experiencing "Unknown USB Device (Device Descriptor Request Failed)" and again pressing the BSL button on the right causes the device manager to be refreshed in Windows, however still resulting in device failure. Below is copy and paste of the information in the Events window of the device. 

    Device USB\VID_0000&PID_0002\5&112bc8d3&0&10 was not migrated due to partial or ambiguous match.

    Last Device Instance Id: USB\VID_046D&PID_C534\5&112bc8d3&0&10
    Class Guid: {36fc9e60-c465-11cf-8056-444553540000}
    Location Path: ACPI(_SB_)#ACPI(PCI0)#ACPI(XHC_)#ACPI(RHUB)#ACPI(HS10)
    Migration Rank: 0xF000FFFFFFFF0020
    Present: false
    Status: 0xC0000719

    Below is a picture of my breadboard, I apologise as it quiet hard to visually see the connections, I have double checked that everything is the same/as close as possible to the original launchpad schematic but if anyone can spot any problems visually please let me know! 

    • In the bottom left I have two 56R resistors in parallel to give 28R rather than 22R but I am sure this is not the issue.
    • I have also briefly switched the Green and White (D+ and D- connections) to see if that was incorrect (like I've seen in another 5529 device descriptor error forum post) that yields no difference in the behaviour.
    • Again in the bottom left I have a 1.5k pull up resistor to 3.3v on the D+, like on page 4 of the schematic - this causes the BSL button to be ineffective when pressed. 
    • In the middle/top of the breadboard I have 1.4k resistor between the D+ and the target PUR line
    • Again in the middle/top I have soldered some copper wires to the pads of the XTAL and plugged them in the breadboard - I have verified that this produces 3.984 MHz with a voltage offset of 400mV just like the launchpad board (it also looks pretty clean on the scope). 
    • I have omitted the 32.768 KHz XTAL as that seems to be a GPIO line which is enabled after. 
    • All the voltages are bang on correct, is there any debug or voltages I can check on the 5529 device? 
    • And no, no stray resistor legs are touching unless it is intentional. 

    I have a launchpad evaluation board, where I can tap in the the Tx/Rx and the SBW from the emulator, but I am unsure of what to do after as the CCS software is also quite bewildering. Any tips will be greatly appreciated! (I will also be away until next Tuesday)

  • zrno soli has much more experience with this, but the general idea is to jumper the SBWTDIO and SBWTCK pins on the Launchpad (USB side) to pins 76 and 71 on your adapter board, connect the Launchpad USB, and load a program with CCS debugger.

    Start with a simple program, something that blinks an LED (if you don't have an LED you can watch the GPIO on a scope), so you exercise just the download/debug process. Maybe this one that wiggles P1.0:

    http://dev.ti.com/tirex/explore/node?node=ABFhtUwmZd4KARe81SLNXw__IOGqZri__LATEST

    Then you can dive into the USB code.

  • Hi Bruce, 

    Brilliant I was able to get this working with little issue, I wasn't aware that was how you could get the Launchpad to program specified targets. I used the blink.c code provided in the examples and programmed the target like you said through the CCS and it works like a charm (blinking my green LED on P1.0). I then tried the "MSP430 USB Firmware Upgrade Example" as per Soli's suggestion and used the 'CDC Echo Firmware' option and got Windows to recognise the 5529 target as a COM port, though when I disconnect the USB and plug it back in, it does not automatically recognise itself as a COM port again.

    Do I need to generate some code with MSP430 USB descriptor tool and then flash the firmware, to make permanent changes? 

    Thanks for the suggestions everyone, I am just waiting for the light bulb in my head to activate when I finally realise how all of these programs are linked together with each other, then I think I will be confident to dive into full development and deployment.

    Best Regards, Jarez

  • If you are using HID  or CDC on Windows 10, driver is automatically handled by OS without user intervention. On older Windows for CDC device inf file is needed with correct VID/PID (this can be found inside TI USB stack).

    There is no way to "make permanent changes". If your (USB) firmware example is flashed correctly, device enumerated and working fine, than after replug / reset / power-up it should start and work again. If device entering again to BSL mode than there is some issue related to PUR button.

  • Hey, 

    Thanks for the reply I managed to get the MSP430 working with the "C1_LED_ON_OFF" project, though the connecting of the COM ports is a little finicky (lots of plugging and unplugging). I also managed to load a simple project using Energia to blink two LED's but then my COM Port device disappeared, is there a way to retain the COM Port device through using Energia. The reason I ask is the example in CCS is quite complicated and I am not sure I have the time to learn the full microcontroller functionality and the hierarchy of the code, I also feel I simply don't need it. My final application, would be to use the 16 ADC's and stream the values over the COM port to a Linux based device. 

**Attention** This is a public forum