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.

OMAP-L137 (TMDSOSKL137) Uart 115200 doesn't work due to L137 limitation or TMDSOSKL137 board design?

Other Parts Discussed in Thread: OMAP-L137, TMDSOSKL137, MAX3221

Hi OMAP-L137 Team,

The TMDSOSKL137 board UART doesn't work if baud rate is programmed to over 115200. Is this caused by the L137 controller or the board design?

I have modified the pspdrivers_01_20_00.packages.ti.pspiom.uart to let the uart controller be able to set baud rate to 230400 on TMDSOSKL137. But this baud rate doesn't work. My project needs OMAP-L137 UARTs run at 3 Mbps of the maximum speed mentioned on the OMAP-L137 data sheet. Can my new design achieve this official speed mentioned on the data sheet? Please be noted that my UART transceiver does support over 230400 baud rate.

Regards,

Ping Tai

  • Ping Tai,

    The UART transceiver on board (TMDSOSKL137) support 250 Kbps under typical condition. In your case it doesn’t work if the baud rate is programmed to 115200 bps that means 115.2 Kbps. So that is under transceiver speed limit.

    Can you please let me know whether you’re not getting any data or you’re getting some garbage values? If that is the case try to reduce the baud rate and check it’s working with the lower baud rate.

    Then Check the sampling mode (x16 or x13), SYSCLK2 frequency and the divisor value to meet the desired baud rate (115200) and cable.It should not be a problem with the controller or transceiver.

    Try to run the sample UART test program from spectrum digital to confirm the UART is working the sample test will run at 115200  .I've checked it with my EVM ti's working.

    If you want to run at 3 Mbps the maximum speed mentioned on the OMAP-L137 you need to select the right transceiver to support it and to consider PCB trace and cable characteristic.

    Regards

    Antony

     

    • --------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.
      --------------------------------------------------------------------------------------------------------
  • Hi Ping Tai,

    Thanks for your post.

    Basically,UART driver test code and UART sample application are tested only up to 115200 bps baudrate. In order to set up the new baudrate as you desire, you need to initialize the UART device by performing the necessary pin multiplexing setup, choosing the appropriate clock divisor values and writing the same to the divisor latch LSB & MSB registers (DLL and DLH). These divisor latches must be loaded during initialization of the UART in order to ensure desired operation of the baud generator.

    You need to program the desired baud rate and oversampling options (13x or 16x) by configuring the appropriate UART parameters in the code to develop any sample UART application. You have to calculate the divisor value using the formula for the desired baud rate to configure in the code as below:

    Divisor = UART input clock frequency / (Desired baudrate x 16) for 16x over-sampling mode

    Divisor = UART input clock frequency / (Desired baudrate x 13) for 13x over-sampling mode

    Please refer Sections 31.2.1 & 31.2.7, Table 31-1 & 31-2 in the OMAP-L137 Technical Reference Manual as below:

    http://www.ti.com/lit/spruh92

    You shall also find C6748 Starterware sample application to confgure UART to the desired baud rate as below:

    ~\Texas Instruments\pdk_C6748_2_0_0_0\C6748_StarterWare_1_20_03_03\examples\evmC6748\uart\uartEcho.c

    ~\Texas Instruments\pdk_C6748_2_0_0_0\C6748_StarterWare_1_20_03_03\examples\lcdkC6748\uart\uartEcho.c

    Thanks & regards,

    Sivaraj K

    ---------------------------------------------------------------------------------
    Please click the
    Verify Answer button on this post if it answers your question.
    ---------------------------------------------------------------------------------

     

  • Hi Ping Tai,

    Ping Tai: said:
    I have modified the pspdrivers_01_20_00.packages.ti.pspiom.uart to let the uart controller be able to set baud rate to 230400 on TMDSOSKL137. But this baud rate doesn't work.

    Do you have high baudrate supported UART device at another end to receive data from TMDSOSKL137 board?

    Most of the desktop machine's does not support more than 115200. Please check your machine supports high baudrate.

    What is your UART input clock & System clock frequency?

    Thanks.

  • Hi Sivaraj,

    Thanks for your supports. There is no problem to push to higher baud rate in C6748 board and I have done this on the C6748 LCDK board. But this does not apply to the TMDSOSK137 board.

    I modified the TMDSOSKL137 board to connect UART2_TX and UART2_RX pins to an external ADM2582EEBZ RS-485 transceiver before these two pins go into MAX3221 at U28. I did the same modifications for my other TMDSOSKL137 board and connect them via twisted wires. These two boards communicate fine with baud rate under 115200. But the communication goes bad if the baud rate sets to 230400.

    There are five lines comment starting at line 1072 in the .\pspdrivers_01_20_00\packages\ti\pspiom\uart\src\uart.c as recorded here.

    /* Release Note: Due to the inaccuracies introduced     */

    /* due to clock divide for baud rate selection,                */

    /* higher baud rates may not work - we will set            */

    /* this working threshold after testing on silicon          */

    /* Setting the baud rate                                            */

    Is this the silicon issue? My products need to be operating at at least 3 Mbps UART rate and I need to move to C6748 if C6747 can not achieve this baud rate.

    Regards,

    Ping

  • Hi Ping,

    Thanks for your post again.

    You don't need to move to C6748 to achieve higher baudrates. Actually, Your divisor value matters to operate at higher baud rates in C6747. You need to program to choose the rounded divisor value as referred in Table 31-1 & 31-2 in OMAPL137 TRM as below:

    http://www.ti.com/lit/spruh92

    You shall program your UART input clock frequency to select rounded divisor value as shown as Baud rate examples in the above mentioned tables. By this way, you shall achieve higher baud rates in both 16x & 13x Over-sampling modes.

    As Rajasekaran insisted on the above thread, please clarify the values of UART input clock frequency & divisor value chosen?

    Thanks & Regards,

    Sivaraj K

    ---------------------------------------------------------------------------------
    Please click the
    Verify Answer button on this post if it answers your question.
    ---------------------------------------------------------------------------------
     

     

  • Hi Ping,

    Please refer below thread in which the customer is able to work with higher baud rate on OMAP-L137. 

    The suggestion would be to use the shorter RS232 cables(2M) for higher baud rates.

    http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/282480.aspx

    Thanks.

  • Hi Ping,

    Coming to your point the main difference between C6748 LCDK board and the TMDSOSK137 board is the PCB Layout from the DB9 connector to the C674x device.

    I have compared both the layout and it looks like TMDSOSK137 board has a long trace travel from DB9 connector P1 through U12 (74cbtlv3253) and the total length of the trace contributes around  10 inch which is pretty long when compared it with LCDK board layout which contributes around  1.5 inch.

    I hope you have did some work around to hook up the ADM2582EEBZ transceiver .you need to do some more work around in order to isolated the long trace by removing the RN8 resistor network pack and R39 resistor and solder down the TX and RX lines on the (C674X device side) removed resistor pad which contributes around less than 1 inch trace to the C674x device and I hope this should work with your desired baud rate.

     Regards

    Antony

    • --------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.
      --------------------------------------------------------------------------------------------------------
  • Hi Ping Tai,

    Have you resolved this issue ?

    Please close this tread if you resolved this issue with the above recommendation.

    Regards

    Antony

    • --------------------------------------------------------------------------------------------------------
      Please click the Verify Answer button on this post if it answers your question.
      --------------------------------------------------------------------------------------------------------