pin assignments for UART_B, UART_C and UART_D

  • Dear F&S support,


    We are currently migrating our software from an ArmstoneA9r2/r4 running WEC 7 to ArmstoneMX8MP.We want to maintain our interface board as much as possible without hardware changes.
    To accomplish that, we want to ensure UARTs are on the following Rx / Tx pins:

    * UART 1: pin 56 + 58
    * UART 2: pin 13 + 15

    * UART 3: pin 36 + 38

    (note: this numbering is our internal numbering, not related to the UART numbering of the F+S hardware doc)


    UART 1 is the console UART (UART_A, /dev/ttymxc1) which is fine.


    However, we are having trouble to correctly configure UART2 and UART3:

    * in the hardware doc, UART_B is assigned to pin 13, pin 15, and looking at the armstonemx8mp.dtsi file, it should be assigned to /dev/ttymxc2 as it is identified as uart3 in the dtsi file. However, we are not able to communicate on that port. What strikes me is that although the hardware doc assigns UART_B to pin13, 15, in the dts file, the comment says that UART_B is assigned to pin 17 and 19:
    /* UART_B - Feature connector J20 pins 17,19 */

    * the UART assignments for pin 36 + 38 are very confusing in the hardware doc: it states that both UART_C and UART_D are assigned to it, with a comment "Note 5: UART_C, UART_D can be chosen for RS232 RXD and TXD signals".


    Can you clarify how we can assign (i guess by patching the dts file) UART's to pin 13, 15 and pin 36,38 respectively?


    Thanks for your support.

  • Hello,


    for UART_B and UART_C there are different hardware variants. Could you post the revision of your board as well as the serial number on the label?

    If you do not want to share the serial number here, you can also write an E-Mail to support@fs-net.de with the information and a short summary of the problem with the UART_B and UART_C.


    For the hardware options:

    • UART_B on pins 13 + 15 can be RS485 or TTL signals directly (default is RS485 on Rev. 1.10)
    • UART_C on pins 36 + 38 can be RS232 from UART_C or RS232 from UART_D (default is RS232 from UART_C)


    I hope this clarifies the connector pins a bit. For more information I will need the revision and the serial number of the board you are using.



    Your F&S Support Team

  • Hi,


    When booting, U-boot shows the following

    I see "Board: armStoneMX8MP Rev 1.00 (2x LAN, WLAN, eMMC, 1x DRAM)", so I assume this is Rev 1.00?


    Not sure how to get the serial number. Don't see a label on the board with the serial number (but it might be hidden behind the heatsink?). Or is this the label on the HDMI port (which is used as the MAC address)?


    Regards,


    Didier.

  • Hello Didier,


    it is the label on the HDMI port, but revision 1.00 is enough.


    For UART_B the RX and TX pads are switched, but you can set them right via the pinctrl in the Device-Tree.

    Under arch/arm64/boot/dts/F+S/armstonemx8mp.dtsi:

    Code
    1. pinctrl_uart3: uart3grp {
    2. fsl,pins = <
    3. MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX 0x140
    4. MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX 0x140
    5. #ifdef CONFIG_ARMSTONEMX8MP_UART_B_RTSCTS
    6. MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
    7. MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS 0x140
    8. #endif
    9. >;
    10. };

    You will need to change this to the following:

    Code
    1. pinctrl_uart3: uart3grp {
    2. fsl,pins = <
    3. MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DTE_TX 0x140
    4. MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DTE_RX 0x140
    5. #ifdef CONFIG_ARMSTONEMX8MP_UART_B_RTSCTS
    6. MX8MP_IOMUXC_ECSPI1_MISO__UART3_DCE_CTS 0x140
    7. MX8MP_IOMUXC_ECSPI1_SS0__UART3_DCE_RTS 0x140
    8. #endif
    9. >;
    10. };


    This bug is only present at revision 1.00 of the armStoneMX8MP. As revision 1.10 is already out, please contact Support@fs-net.de with this.



    Your F&S Support Team

  • Thanks for the feedback.


    Just to avoid misunderstandings, can you confirm the following?


    * UART_B (pin13+15) is on a rev 1.00 board a regular RS232, but with TTL levels?

    * UART_C is the default UART on pin 36+38, so nothing to be changed in the device tree to activate it?


    Thanks again for the support.


    Didier.

  • Hello Didier,


    • UART_B is the direct UART signal with TTL, so a RS232 transceiver is still needed. For revision 1.00 switch the RX- and TX-signal.
    • UART_C on pin 36 + 38 should already be the RS232 signals and active. No need to change the device-tree. You will need to make sure that pin 23 + 25 are left open, as the TTL signals also get rooted there.



    Your F&S Support Team