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.

AM3352:

Part Number: AM3352
Other Parts Discussed in Thread: IWR6843

Hi,

I am communicating with AM3352 on a Linux system based on Proccessor SDK 05.03 using a modified tty driver.
I am now implementing the communication protocol that communicates with one host and multiple nodes, sends tokens from the host with even parity to determine which node is allowed to send and receive, and sends and receives between the node and host with odd parity.

In the standard Linux tty driver, the parity change is done in omap_8250_set_termios() <drivers/tty/serial/8250/8250_omap.c>.
If changing the parity setting, we only need to change the LCR register, but this function sets other many communication setting related registers. Unfortunately, the standard driver is not in time for the reception sent by the host after the parity change. Therefore, i modified to operate only the LCR register when additional parameters are given.


Then, the following phenomenon occurred with this modified device driver.

If transmission is performed after changing the parity by operating the LCR register, the following illegal operations may occur.
-One byte extra byte data is transmitted before the transmission data.
-Transmission DMA may not work.

There is a related errata related to the MDR1 register, but what is happening to me is due to the LCR register.
Another person's question: "IWR6843: Change UART parity odd to even in flight"(e2e.ti.com/.../949346 may be similar to my phenomenon.

As a countermeasure, clear the TX-FIFO between the parity switching and the start of transmission.
Due to the behavior not described in the errata information and RTM, it took time to take measures.
This was done in a standard driver, a process I omitted.
Therefore, it does not occur with the standard driver.

I would appreciate it if you could add errata information, or get an opinion like "Do not change settings during sending and receiving", or tell me that "It is this description on TRM".

  • Hi Yukinori-san,

    yukinori bando said:
    As a countermeasure, clear the TX-FIFO between the parity switching and the start of transmission.
    Due to the behavior not described in the errata information and RTM, it took time to take measures.

    Please confirm that you have got your driver working properly with clearing TX FIFO before switching the parity and want to provide us the feedback to improve the documentation, is my understanding correct? I just want to ensure if you need additional support regarding this UART driver modification.

  • Thank you for your reply.
    Considering what the driver is doing and the general behavior of the hardware, it's a natural operation. I didn't notice it because it was moving halfway.