<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=10251&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-17T16:12:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10251&amp;mode</id>
<entry>
<author><name><![CDATA[Zar_2004]]></name></author>
<updated>2015-01-17T16:12:49+01:00</updated>
<published>2015-01-17T16:12:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114534#p114534</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114534#p114534"/>
<title type="html"><![CDATA[Re: Komunikacja RS485 - USART ATxmega 128a3u]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114534#p114534"><![CDATA[
Pojawił się kolejny problem.<br /><br />Przejściówka umożliwia komunikacje rs232 TTL. Jeżeli korzystam z tego to wszystko śmiga w dwie strony jak ta lala. Gdy chcę korzystać z rs485 to potrafię już odbierać ładnie dane wysłane z PC do uC. Problem jest z wysłaniem z uC do PC. Zwarłem piny !RE i DE jeżeli chcę coś wysłać z uC do PC to ustawiam na nich stan wysoki z uC - rozumiem, że to stan nadawania. Moja dioda sygnalizujaca nadawanie daje znac o nadawaniu. Łopatologicznie sprawdziłem, czy st485cn zmienia polaryzację A i B w zależności od nadawania zera i jedynki - zgadza się z dokumentacją, różnica wynosi plus lub minus 2V ( czyli rozumiem, że sygnał jest wyraźny stąd taka duża wartość). Nie mnie jednak dioda na przejsciowce ani drgnie. Na terminalu cisza. Czy ogólnie przejsciowki wymagają jakiegos uruchomienia odbioru? Real Term umożliwia kontrole RTS i DTR ale w żadnej kombinacji nie spowodowało to odbioru wysyłanego znaku.<br /><br />Proszę o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7930">Zar_2004</a> — 17 sty 2015, o 16:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zar_2004]]></name></author>
<updated>2015-01-17T11:33:09+01:00</updated>
<published>2015-01-17T11:33:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114485#p114485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114485#p114485"/>
<title type="html"><![CDATA[Re: Komunikacja RS485 - USART ATxmega 128a3u]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114485#p114485"><![CDATA[
Witam<br /><br />Badam układ metodą &quot;inżynierii odwrotnej&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> . Ze specyfikacji, którą przeczytałem wynika, że sygnał startu dla transmisji z USART powinien mieć stan niski a stan idle powinien być wysoki. U mnie jest zupełnie odwrotnie więc już nie wiem zupełnie o co chodzi.<br /><br />Edit:<br /><br />Problem rozwiązałem. Okazał się elektryczny - nie dałem 120 Ohmów między linie A i B oraz podciągających rezystorów do masy i VCC.<br /><br />Pozdrawiam i przepraszam za zawracanie dupy oczywistością.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7930">Zar_2004</a> — 17 sty 2015, o 11:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zar_2004]]></name></author>
<updated>2015-01-16T22:40:45+01:00</updated>
<published>2015-01-16T20:32:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114424#p114424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114424#p114424"/>
<title type="html"><![CDATA[Komunikacja RS485 - USART ATxmega 128a3u]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10251&amp;p=114424#p114424"><![CDATA[
Witam<br /><br />Od dłuższego czasu przeglądam forum i poradniki jednak pojawił się pewien problem, którego nie umiem rozwiązać.<br />Wysyłam sobie za pomocą programu RealTerm pojedyncze znaki. Jako wyjsciowego RS485 używam przejściówki usb-rs3 - czyli port wirtualny. Do tłumaczenia rs485 na poziom sygnałow zrozumiały dla USART używam ST485CN. Skonfigurowałem sobie uC wg poniższego kodu:<br /><br />[syntax=c]/*<br /> * rs485.c<br /> *<br /> * Created: 15-Jan-15 9:16:51 PM<br /> *  Author: Tomasz<br /> */ <br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;hd44780.h&gt;<br />#include &lt;usart.h&gt;<br /><br />void USART_init()<br />{<br />PORTD_OUTCLR = PIN2_bm;<br />PORTD_DIRCLR = PIN2_bm;<br />PORTD_OUTSET=PIN3_bm;<br />PORTD_DIRSET=PIN3_bm;<br />USARTD0.CTRLB=USART_TXEN_bm | USART_RXEN_bm;<br />USARTD0.CTRLC=USART_CHSIZE_8BIT_gc;<br />usart_set_baudrate(&amp;USARTD0, 1200, F_CPU);<br />}<br />int main(void)<br />{<br />LcdInit();<br />LcdWrite(&quot;TEST&quot;);<br />Lcd2;<br />LcdWrite(&quot;TEST&quot;);<br /><br /><br />_delay_ms(3000);<br /><br />LcdClear();<br /><br /><br />unsigned char x=65;<br /><br />LcdData(x);<br /><br /><br />_delay_ms(4000);<br />LcdClear();<br /><br />// TERAZ TO CO DO usart<br />USART_init();<br />PORTD.DIRSET=PIN0_bm;// pin sterujacy wysylaniem maxrs485<br />PORTD.OUTCLR = PIN0_bm;<br /><br />int i=0;<br /><br />    while(1)<br />    {<br />        if(USARTD0_STATUS &amp; USART_RXCIF_bm) <br />{<br /><br /><br />unsigned char data=USARTD0_DATA;<br /><br />LcdDec(data);<br />i++;<br />if (i==10) LcdClear();<br /><br /><br />}<br />}<br /><br />}[/syntax]<br />Problem tkwi w tym, że odbieram poprawnie znak a zaraz po nim odbieram ramkę wypełnioną zerami. Czyli wysyłając &quot;A&quot; wyświetla mi się 65 i 0 na wyświetlaczu. W czym może tkwić problem ? Dostosowałem działanie ST485CN wg tych zaleceń: <a href="http://www.google.pl/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CCIQFjAA&amp;url=http%3A%2F%2Fe2e.ti.com%2Fcfs-file%2F__key%2Ftelligent-evolution-components-attachments%2F00-142-01-00-00-69-72-13%2F3V-MCU-to-5V-XCVR-Interface.pdf&amp;ei=zGe5VNSMBce1OvPAgegH&amp;usg=AFQjCNHaj7_O69JGh-LDthlNr-n9_RT6Og&amp;sig2=7K6RD6EWEzC6uM0pSgZfqg&amp;bvm=bv.83829542,d.ZWU"  class="postlink">http://www.google.pl/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CCIQFjAA&amp;url=http%3A%2F%2Fe2e.ti.com%2Fcfs-file%2F__key%2Ftelligent-evolution-components-attachments%2F00-142-01-00-00-69-72-13%2F3V-MCU-to-5V-XCVR-Interface.pdf&amp;ei=zGe5VNSMBce1OvPAgegH&amp;usg=AFQjCNHaj7_O69JGh-LDthlNr-n9_RT6Og&amp;sig2=7K6RD6EWEzC6uM0pSgZfqg&amp;bvm=bv.83829542,d.ZWU</a><br /><br />Już nauczyłem się stosować znaczniki. Dodam, że konfiguracja dotycząca ramki w uC i w programie realterm jest taka sama.<br /><br />Dodane:<br />Układ leży sobie kilka godzin i pojawiło się kilka zer na wyświetlaczu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7930">Zar_2004</a> — 16 sty 2015, o 20:32</p><hr />
]]></content>
</entry>
</feed>