i.MX6: What does the DTE/DCE in i.MX6's UART do and how are RTS and CTS affected by the UARTxUFCR[DTEDCE] bit?

Document created by Yixing Kong Employee on Oct 14, 2013
Version 1Show Document
  • View in full screen mode

Question:

What exactly does the DTE/DCE interface in the i.MX6's UART module do and how are RTS and CTS affected by the UARTxUFCR[DTEDCE] bit?

 

In i.MX6 RM, revision 1:

Sections 64.2.1.2.1  (CTS) and 64.2.1.2.2 (RTS) both state that CTS and RTS change direction between DCE and DTE modes.  However, sections 64.4.3.1 (RTS_B) and 64.4.3.8 (CTS_B) state they do not change functions.  Is this a documentation error, or is there a difference between CTS/RTS and CTS_B/RTS_B?

It appears that some of this is covered in the IOMUX daisy chain by switching which pins are connected to CTS and RTS.

 

Answer:

Example 1: UART1 in DTE mode. RTS is an output from the UART IP block so it must be routed to a CTS pin.
Therefore, the SELECT_INPUT register could only use settings 00 or 10.

 

Example 2: UART1 in DCE mode. RTS is an input to the UART IP block so it must be routed to an RTS pin.

Therefore, the SELECT_INPUT register could only be set to 01 or 11.

 

At this point, we have assumed that the internal signals connected to the UART block do not change direction.  We believe that DCEDTE from the UART block connects into the IOMUX logic and controls the direction of the PAD.  Then, the IOMUX INPUT_SELECT mux is used to choose one of four pads to connect to the UART inputs while the IMOUX MUX_CTRL connects the output path.  Further, we assume it is an error to connect the UART input to a pad configured as an output or a UART output to a pad configured as an input.

 

The attached shows our assumptions

 

For the Uart IP, the CTS_B is always an output and RTS_B always an input. But the RTS_B &CTS_B IO will be swapped  when UART operates in different DTE or DCE mode. 

 

IO port

DTE mode

DCE mode

direction

Uart IP port(internal)

direction

Uart IP port(internal)

UART_CTS_B

O

CTS_B

I

RTS_B

UART_RTS_B

I

RTS_B

O

CTS_B

UART_TXD

O

TXD

I

RXD

UART_RXD

I

RXD

O

TXD

 

Regarding how to configure the IOMUX, please see the attached PDF.

4 people found this helpful

Outcomes