<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: UART transmitter complete interrupt timing in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674623#M103983</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Please look at my comments below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Yes, TXDC (Transmitter Complete) bit indicates that the transmit buffer (TxFIFO) and Shift Register is empty; &lt;BR /&gt;therefore the transmission is complete.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;&amp;nbsp; I think the scheme You use - with GPIO control under Linux - hardly can meet Modbus requirements.&lt;/P&gt;&lt;P&gt;There are a lot RS232-RS485 automatic converters. These converters contains a fast automatic TX enable&lt;/P&gt;&lt;P&gt;circuit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 07 Jun 2017 06:22:53 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2017-06-07T06:22:53Z</dc:date>
    <item>
      <title>UART transmitter complete interrupt timing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674622#M103982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;BR /&gt;We are using i.MX6 (MCIMX6Q7CVT08AC) on custom board, and trying&amp;nbsp;to make RS-485 communication for Modbus RTU.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RTS pin of RS-485 transceiver (externally attached, ADM2485) is&amp;nbsp;connected to i.MX6 GPIO, and we control the GPIO for half duplex send / receive change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Controlling GPIO from user process were not stable for real-time use,&amp;nbsp;so we are trying to control GPIO (RS-485 transceiver / RTS) from Linux kernel space, using UART send interrupt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From our trial, using interrupt handler imx_txint() of i.MX6 serial&amp;nbsp;driver (driver/tty/serial/imx.c), we could see two interrupt by oscilloscope,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(a) Transmit Buffer FIFO empty (UARTx_USR2 / TXEF)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt; The interrupt was 2 byte earlier from complete sending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;(b) Transmitter Complete (UARTx_USR2 / TXDC)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;--&amp;gt; The interrupt was observed 1.6~4.4ms after complete sending.&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unfortunately our external Modbus device sends response before this&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;interrupt, so RTS control by this interrupt doesn't meet deadline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***(a)(b)&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.nxp.com%2Fassets%2Fdocuments%2Fdata%2Fen%2Freference-manuals%2FIMX6DQRM.pdf" rel="nofollow" target="_blank"&gt;http://www.nxp.com/assets/documents/data/en/reference-manuals/IMX6DQRM.pdf&lt;/A&gt;&lt;BR /&gt; p.5263&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="TXDC_interrupt_timing.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/20223i7226159B8B74019C/image-size/large?v=v2&amp;amp;px=999" role="button" title="TXDC_interrupt_timing.png" alt="TXDC_interrupt_timing.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is,&lt;BR /&gt;(1) Is there any trigger that we can notice complete transmitting UART data?&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; TXDC interrupt corresponds to that?&lt;BR /&gt;(2) Can the delay of TXDC (observed &lt;SPAN&gt;1.6~4.4ms&lt;/SPAN&gt;) be shorten by some register setting?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Thanks in advance,&lt;BR /&gt;Yamada&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Jun 2017 09:38:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674622#M103982</guid>
      <dc:creator>masatsuguyamada</dc:creator>
      <dc:date>2017-06-05T09:38:29Z</dc:date>
    </item>
    <item>
      <title>Re: UART transmitter complete interrupt timing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674623#M103983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Please look at my comments below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Yes, TXDC (Transmitter Complete) bit indicates that the transmit buffer (TxFIFO) and Shift Register is empty; &lt;BR /&gt;therefore the transmission is complete.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;&amp;nbsp; I think the scheme You use - with GPIO control under Linux - hardly can meet Modbus requirements.&lt;/P&gt;&lt;P&gt;There are a lot RS232-RS485 automatic converters. These converters contains a fast automatic TX enable&lt;/P&gt;&lt;P&gt;circuit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Yuri&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 07 Jun 2017 06:22:53 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674623#M103983</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2017-06-07T06:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: UART transmitter complete interrupt timing</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674624#M103984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yuri, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the advice, I understand the TXDC is the expected trigger, &lt;BR /&gt;also I have considered using timer IC for RTS control, so your advice was very helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;Yamada&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Jun 2017 07:46:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/UART-transmitter-complete-interrupt-timing/m-p/674624#M103984</guid>
      <dc:creator>masatsuguyamada</dc:creator>
      <dc:date>2017-06-08T07:46:02Z</dc:date>
    </item>
  </channel>
</rss>

