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.

CC3200 USB Serial works when debugging in CCS but not after flashing on launchpad

Other Parts Discussed in Thread: CC3200

Hi,

I'm wondering if anyone can help me.  I have a program that I've written that uses the USB Serial interface as a diagnostic and control port for the embedded CC3200 based embedded system.  When running the debugger in CCS, I am able to send and receive serial data to/from the CC3200 Launchpad board just fine using TerraTerm.  However, once I flash the generated .BIN and run the launchpad standalone, I no longer have any serial connectivity with the device.  I can see that the program is running though because it responds appropriately when I press the switches on the board.

Some things to note:

1) this was a new project I created - NOT made from copying one of the example programs.  I believe I have set all the appropriate project options/properties but I may have missed a couple since I don't know where all to look.

2) Flashing and running any of the example programs that use USB Serial all work fine regardless if ran using CCS Debug or standalone.

I am guessing that this is due to some sort of project properties/setting that I have failed to set correctly but I don't know which one nor where to look for it so if someone could at least point me in the right direction I would be grateful.  I've had issues with my project settings in the past, as an example, I was having problems with malloc() not being able to allocate any RAM regardless of the size of the program.  The issue was most troublesome because the Report() command in uart_if.c (which uses malloc()) would ALWAYS fail when it got to the malloc() statement.  I just found out why tonight after 2 weeks of scratching my head.  Turns out the default Heap Size is 0 bytes for a new project.  I changed this to 0x800 and viola' Report() started working!  (Hey I'm a hardware guy that can barely spell 'C', let along program in it well, so how was I supposed to know that the compiler doesn't handle setting the heap size automatically?)  So it wouldn't surprise me in the least if there is another setting I don't have set exactly right.

I've looked at the project settings for some of the provided examples and can't find any differences between them and my own (except for what is supposed to be different) so if anyone can help me at least look in the right place I'd appreciate it.

Thanks,

Shawn Standfast

p.s. My launchpad board is rev 3.2 and I have the latest service pack installed (the one just released in Oct.).

  • Hi Shawn,

    you might be missing the pin mux for UART in the code. you can do that using pinmux utility or just put the following code in the PinMuxConfig for your application.

        //
        // Enable Peripheral Clocks 
        //
        MAP_PRCMPeripheralClkEnable(PRCM_UARTA0, PRCM_RUN_MODE_CLK);
    
        //
        // Configure PIN_55 for UART0 UART0_TX
        //
        MAP_PinTypeUART(PIN_55, PIN_MODE_3);
    
        //
        // Configure PIN_57 for UART0 UART0_RX
        //
        MAP_PinTypeUART(PIN_57, PIN_MODE_3);

    In the Debugger sequence, this pin mux is already done in order to download the code from CCS.

    let me know if this resolves your issue.

    Regards,

    Rahul

  • Hi Rahul,

    That was it!  I feel dumb now.  When I generated my rom_pin_mux.c file using the PINMUX tool, I left the TX and RX pins as ANY on accident and they were assigned as PIN_03 and PIN_45 respectively.  Since the serial coms worked under CCS I had no reason to suspect the pin assignments.  I didn't realize that CCS over-rode UART0 pin configuration when in debug mode.

    Thanks again for the assist,

    Shawn