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.

AM5728: GP EVM UART access

Part Number: AM5728


My team is working with the AM5728 General Purpose Evaluation Module, and using the Processor SDK for Linux for our embedded application development. One of our requirements is that we communicate with an external device via a UART interface. Based on some of the documentation I have read on the AM572x General Purpose EVM HW User Guide (see link below), it appears that all of the UART pins are in the expansion headers (P16-P19 on the Processor Module), and not broken out anywhere on the Processor Module itself for access. For example, the UART9 pins exist within the expansion connector P17.

Based on this observation, I have two questions:

  1. Does Texas Instruments (or some other vendor) offer an expansion/breakout board that may attach to the connectors, exposing the UART pins for access, as well as others (like SPI/GPIO)?
  2. Is there a way, within the Processor SDK for Linux, to configure the Serial Debug Header for General Purpose UART, instead of the default serial console use?

If there is a well-documented way to address the second question above, we would prefer that option (as additional hardware wouldn't be needed). 

Thank you,

Andrew

Link:

http://processors.wiki.ti.com/index.php/AM572x_General_Purpose_EVM_HW_User_Guide

  • Hi,

    UART3 (debug UART) is available on P10, only RX/TX signals though. Please refer to that thread for changing it from default: e2e.ti.com/.../2037780
  • Thank you for the response.

    I have looked at the directed forum post, but I still have a few questions.

    When following step 1. of Yordan Kovachev's advice, I am asked to comment out a few lines regarding UART3 in mux_data.h. If I comment these out, will this disable UART3 for use? We still intend on using that UART; our goal is to simply disable it at stdout (not switch it to UART2). If I am still to follow this step, will running "make u-boot" build in the changes?

    Step 2. seems more intuitive to me, as commenting out the "stdout-path" in the device tree would seem to disable UART3 as the console. However, I am using a board that uses am57xx-evm-reva3.dtb, and the associated .dts files don't have any mention of "stdout-path" like am57xx-beagle-x15.dts.


    Thanks,

    Andrew

  • Hi Andrew,

    If I comment these out, will this disable UART3 for use?

    No this won't disable UART3, it will change the pinmux settings & uart3 tx&rx pins will no longer be muxed on device pads. This will make the uart3 unusable (but will not disable the module itself), because it's tx/rx will not be muxed.

    We still intend on using that UART; our goal is to simply disable it at stdout (not switch it to UART2)

    In that case, if you still want to use UART3, then you should leave the pinmux in mux_data.h as is.

    If I am still to follow this step, will running "make u-boot" build in the changes?

    Running make u-boot will build all changes made to u-boot source code.

    Step 2. seems more intuitive to me, as commenting out the "stdout-path" in the device tree would seem to disable UART3 as the console

    stdout-path is used by bootloader to identify console, so your understanding is correct.

    However, I am using a board that uses am57xx-evm-reva3.dtb, and the associated .dts files don't have any mention of "stdout-path" like am57xx-beagle-x15.dts.


    In latest SDK, u-boot/arch/arm/dts/am57xx-beagle-x15.dts is used for all am57xx GP devices.

    Also if you DON'T want to use UART3 as a console you need to change the defined CONSOLEDEV in include/configs/am57xx_evm.h.

    Best Regards,
    Yordan
  • Thank you for the response,

    While I have followed your instructions, I am still unable to achieve my goal. Let me walk you through my exact process:

    • Within u-boot/arch/arm/dts/am57xx-beagle-x15.dts, I commented out this entire block of code, so as not to use uart3 for stdout (I do not want to use anything for stdout!)

    chosen {
        stdout-path = &uart3;
    };

    • Within u-boot/include/configs/am57xx_evm.h, I changed CONSOLEDEV to "/dev/tty01", so that it is defined and doesn't throw a compile error. It was originally "/dev/tty02"
    • In the top-level u-boot directory, I ran

    make u-boot

    make

    • I moved over the generated u-boot.img and MLO files to the boot partition of my microSD card
    • I inserted the card, turned the board on, and received errors

    The specific errors are below:

    DRA752-GP ES2.0

    Trying to boot from MMC1
    reading args
    spl_load_image_fat_os: error reading image args, err - -1
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img

    Just to reiterate, I want to use the pins on the bottom of the board for something else other than a command-line interface. I will control the board using SSH over Ethernet.

    Thanks,

    Andrew

  • Hi,

    As an update, it seems like this method worked (as far as disabling the debug port as a serial console). When I change "chosen std-out" to &uart4 and CONSOLEDEV to /dev/ttyO3, I get no errors on boot.

    However, it seems that now I cannot use the debug port as a serial connection in general. Here is what I want to do:

    • Tell AM5728 that I do not want to use UART3/ttyS2/serial debug as a console. Instead I want to use it as just a general UART.
    • Open an SSH connection to log in and talk to the board
    • Open a serial connection to echo characters
    • Transmit characters over the serial connection, and read them in my SSH session with cat /dev/ttyS2
    • Receive characters over the serial connection, by writing them in my SSH session with echo "FF" > /dev/ttyS2

    Am I following the correct approach to do this? The main reason for doing this is that we want to avoid building a board to use one of the other UARTS.

    Thanks,

    Andrew