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.

EVM6747 PSP uart example and UART boot

Other Parts Discussed in Thread: OMAP-L137

Hello,

I am using the PSP UART example to communicate with the EVM6747.  When I boot up from the emulator or the onboard SPI flash everything works fine.  When I bootup from the same UART (using the TI  UART boot host) the UART does not respond.  I am running at 115kbaud and have not tried any other speeds.  Why would booting from the UART stop the uart from working but the SPI flash boot work fine? 

In my target hardware I will be booting from the UART hence the need to have this working.

Regards,

Fawad

  • Hi Fawad,

    I have a couple of questions as mentioned below,

          1.  Could you please tell me which PSP BIOS version are you using?

          2.  Where exactly the UART sample application stops? (can you please provide the log)

          3. Which TI UART boot host are you using?

    Thanks and Regards,

    Sandeep K  

  • Sandeep,

    1. PSP 1.30.01 For The C6747

    2.  I get a -1 returned from    status = GIO_submit(hUart_IN,IOM_READ,buf,&len,NULL);    // read

    3.  OMAP-L137 UART Boot Host, ver 1.01 from

    http://focus.ti.com/dsp/docs/litabsmultiplefilelist.tsp?sectionId=3&tabId=409&literatureNumber=sprab04f&docCategoryId=1&familyId=1622

    My function for UART read/write reads one character and sends it to the output.

    The behavior is a little strange.  Using a terminal (terraterm) I type in one char (like the letter i) and I get two calls to the read TASK.  And two characters get echoed back.  This happens twice i.e. I can send two characters.  After that status from a GIO_submit (read) is -1.

    Once again if I boot up from SPI flash I do not see this issue.  The .bin file is created using the same program (AISgen for D800K003) other than changing the Boot mode from SPI to UART2.

    Regards,

    Fawad

  • Hi Fawad,

    Can you check if there is any conflict in the initialization and configuration settings between the GEL file and the bootloader(which you are using with UART boot host).

    What is the observation if the UART is configured in Polled mode of operation. Do you see the same behaviour?.
    Can you share the sample application code snippet where in which you are reading from and writting back to the UART?
    Does booting from UART work consistently for other sample applications?(I2C, SPI, GPIO, etc).

    As we do not have the same setup here, we need some inputs to debug the issue and arrive at a possible solution.

    Thanks & regards,

    Raghavendra

  • Ragavendra,

    I found the solution.  I did some debugging and found when the C6747 boots via the UART it sets the UART2DSP->MDR register to 1 (13x over-sampling).  The default is 0 (16x oversampling).  When the PSP sets up the UART it does not write to the MDR register and assumes it was 0 so we then have a speed error.

    So in my code when I manually set MDR=0 everything works fine. 

    May I suggest a fix in the PSP to set this register to 0?

    Thanks,

    Fawad

  • Hi Fawad,

     

    An IR (SDOCM00081075) has been raised to keep in track of this issue. This will be fixed in the future releases.

     

    Thanks & regards,

    Raghavendra