<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/5200/does-the-uart-disable-rts-when-it-sees-cts-disabled</link><description>We have two nRF51822 chips (&amp;quot;A&amp;quot; and &amp;quot;B&amp;quot;) connected via GPIO pins on our board, communicating via UART using the app_uart SDK module (in APP_UART_FLOW_CONTROL_ENABLED mode). One of the chips (&amp;quot;B&amp;quot;) does not need to be active all the time, so it shuts down</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 21 Jan 2015 14:54:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/5200/does-the-uart-disable-rts-when-it-sees-cts-disabled" /><item><title>RE: Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/thread/18210?ContentTypeID=1</link><pubDate>Wed, 21 Jan 2015 14:54:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e12940f5-89ca-48d5-9050-5d25d71b5295</guid><dc:creator>David Robins</dc:creator><description>&lt;p&gt;I guess you can&amp;#39;t do unidirectional (without co-operation, at least). Like I said, I &lt;em&gt;am&lt;/em&gt; trying it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/thread/18209?ContentTypeID=1</link><pubDate>Wed, 21 Jan 2015 14:37:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a0ea7c88-e0a6-4bf5-8c8d-bb1f4cdaad93</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;That seems rather broken then. Just because B doesn&amp;#39;t wish to receive, it should be able to send to A if A still wants to listen. If you wanted a unidirectional communication like that, how would you achieve it if one UART stops receiving just because it&amp;#39;s prevented from transmitting.&lt;/p&gt;
&lt;p&gt;Time to get two boards out and try it I think.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/thread/18208?ContentTypeID=1</link><pubDate>Wed, 21 Jan 2015 14:31:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:18a28812-d0c5-447d-ac8d-1f1d948d9eae</guid><dc:creator>David Robins</dc:creator><description>&lt;p&gt;That&amp;#39;s what I expected too, but reality (as observed through my &amp;#39;scope and gdb) matches Stefan&amp;#39;s answer. Yes, the GPIO pins are set correctly (with RXD and CTS as NOPULL). B is sending 2 bytes and it is being read immediately.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/thread/18207?ContentTypeID=1</link><pubDate>Wed, 21 Jan 2015 01:49:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f045f28-28f0-4811-88be-d6f96ff94726</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;No that doesn&amp;#39;t make sense to me. The two should be entirely independent of each other. Just because B doesn&amp;#39;t want to receive any more data, if A does it should keep RTS low and keep waiting. The only two things which should make A raise its RTS line (telling B to stop sending data) are either&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;STOPRX being called in A&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A buffers 2 received bytes which haven&amp;#39;t yet been read.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You said that as part of B&amp;#39;s shutdown sequence it sends data to A, how much is it sending and are you reading it in time? If it sends more than 2 bytes which get buffered than A will raise RTS at that point until they are.&lt;/p&gt;
&lt;p&gt;The only other thing occurs to me is GPIO config. Can you check you do have B&amp;#39;s pins configured in the GPIO explicitly as in the manual so B&amp;#39;s CTS is an input pin and not an output pin and I would think you want pull disabled. When the system goes into power off mode, the GPIO configuration is what the pins revert to, the UART no-longer controls them. That is the default, input, no pull, but worth checking.&lt;/p&gt;
&lt;p&gt;I note by the way that the manual doesn&amp;#39;t even mention SHORTS for the UART, not even the latest version of the manual, although yes I do see them in the bitfields header. Nor do they make much sense to me either. I can&amp;#39;t see instantly why a UART would want to stop reception just because it&amp;#39;s not clear to send, transmission, possibly, but not reception.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does the UART disable RTS when it sees CTS disabled?</title><link>https://devzone.nordicsemi.com/thread/18206?ContentTypeID=1</link><pubDate>Tue, 20 Jan 2015 14:21:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:948e70bb-5ad0-42fb-aae4-b3cb6e207ba3</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Yes, I think this is expected behavior. When one device is disabled and sets its RTS high, the other side does the same to indicate it has no data to send. Then when one of the devices has data to send it will set its RTS low and the other device should respond with setting its RTS low, indicating it is ready to receive data.&lt;/p&gt;
&lt;p&gt;I do not see this specified either in the nRF51 Reference Manual. It should be there.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>