<?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=8&amp;t=6862&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-24T14:36:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=6862&amp;mode</id>
<entry>
<author><name><![CDATA[petter0]]></name></author>
<updated>2014-04-24T14:36:00+01:00</updated>
<published>2014-04-24T14:36:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79059#p79059</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79059#p79059"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79059#p79059"><![CDATA[
Brawo! Problem rozwiązany, wszechświat uratowany. Ale zastanówmy się dlaczego?<br />Wywnioskowałem, że aby tryb Master w komunikacji SPI działał prawidłowo to pin SS musi być ustawiony jako WYjście. Jeżeli jest ustawiony jako WEjście to musi na nim być utrzymywany stan wysoki. Jest to spowodowane tym, że gdyby ten port był wejściem i byłby na nim stan niski to ATmega odczytałaby to jako znak, że ma być Slave'em. Natomiast jeżeli port ten jest ustawiony jako WYjście to może być używany do zadań innych, zupełnie nie związanych z komunikacją SPI.<br />Na schemacie do pinu PB2 (SS) podłączony jeden z pinów ULN2803 odpowiedzialny za świecenie pierwszego wiersza w matrycy. Zatem kiedy cały układ został zestawiony wraz z ULNem to pin ten został ustawiony jako WYjście i SPI działało jak należy. Wcześniej, gdy ULNa nie było to pin ten nie był w żaden sposób obsługiwany przez program, dlatego wg domyślnego stanu pinów był wejściem. Bardzo prawdopodobne, że właśnie z tego powodu SPI nie działał prawidłowo, ponieważ ATmega myślała że jest Slave'em.<br /><br />Dobrze rozumiem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2948">petter0</a> — 24 kwi 2014, o 14:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-04-24T08:37:37+01:00</updated>
<published>2014-04-24T08:37:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79032#p79032</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79032#p79032"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79032#p79032"><![CDATA[
Odpowiedź znajduje się w datasheetcie, rozdział &quot;SS Pin Functionality&quot;, podrozdział &quot;Master mode&quot;. <br />Mała ciekawostka - gdybyś uruchomił cały układ, a przede wszystkim ULN2803 to by tych chocków-klocków nie było <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> A teraz mały konkurs: potrafisz powiedzieć dlaczego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 24 kwi 2014, o 08:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-23T23:33:27+01:00</updated>
<published>2014-04-23T23:33:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79015#p79015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79015#p79015"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79015#p79015"><![CDATA[
<div class="quotetitle">petter0 napisał(a):</div><div class="quotecontent"><br />Zauważyłem jedną rzecz tylko jeszcze: Jeżeli przypisze się zmienną SS odpowiadającą za zatrzask do pinu PB2 to wszystko działa prawidłowo.<br /></div><br />No właśnie to jest jedna rzecz ciekawa. Ale teoretycznie to nie powinno mieć znaczenia. SPI można zrealizować programowo i używać dowolnych pinów. <br /><br />Programator jeśli to jest USBasp to powinien mieć na wyjściu bufory trójstanowe. Po zakończeniu programowania one się rozłączają i nie obciążają wejść. Współdzielenie pinów ISP może robić problemy przy programowaniu jeśli piny procesora są czymś obciążone (podciągnięte silnie do masy albo do VCC) np. LCD HD44780. Wtedy będzie problem z zaprogramowaniem. Ale nie odwrotnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 23 kwi 2014, o 23:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petter0]]></name></author>
<updated>2014-04-23T23:10:33+01:00</updated>
<published>2014-04-23T23:10:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79014#p79014</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79014#p79014"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79014#p79014"><![CDATA[
W skład układu wchodzi tylko mikrokontroler i rejestr przesuwny z diodami. Program nie zawiera nic więcej poza tym co wkleiłem. Zauważyłem jedną rzecz tylko jeszcze: Jeżeli przypisze się zmienną SS odpowiadającą za zatrzask do pinu PB2 to wszystko działa prawidłowo. Na innych pinach nie działa (porty są sprawne). <br />Próbowałem z rozłączonym programatorem, ale również bezskutecznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2948">petter0</a> — 23 kwi 2014, o 23:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mscichu]]></name></author>
<updated>2014-04-23T22:13:56+01:00</updated>
<published>2014-04-23T22:13:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79010#p79010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79010#p79010"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79010#p79010"><![CDATA[
a odpinałeś programator? skoro piszesz że piny są współdzielone.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=853">Mscichu</a> — 23 kwi 2014, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-23T21:18:29+01:00</updated>
<published>2014-04-23T21:18:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79004#p79004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79004#p79004"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79004#p79004"><![CDATA[
Nie wiem na ile masz wdrożony schemat z zamieszczonego pliku. Na ile kod odpowiada schematowi.<br />Ale może być przyczyna współdzielenie portu B z czymś innym w połączeniu z błędnym maskowaniem bitów tego portu.<br /><br />Uruchomienie SPI masz zrobione dobrze. <br />Wysłanie bajtu też, z ładnym oczekiwaniem na flagę SPIF.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 23 kwi 2014, o 21:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petter0]]></name></author>
<updated>2014-04-23T21:13:05+01:00</updated>
<published>2014-04-23T21:13:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79003#p79003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79003#p79003"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=79003#p79003"><![CDATA[
Przy programowaniu procka widzę śmieci, ale to wydaje się być normalne z powodu dzielenia wspólnych linii sygnałowych z programatorem. Może lepszym opisem będzie - diody zapalają się w sposób przypadkowy, czasem dwie, czasem jedna, która po chwili gaśnie, czasem nawet palenie się diod odpowiada prawidłowemu ustawieniu ich w programie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2948">petter0</a> — 23 kwi 2014, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-23T20:51:58+01:00</updated>
<published>2014-04-23T20:51:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78997#p78997</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78997#p78997"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78997#p78997"><![CDATA[
Śmieci widzisz przy programowaniu procka ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 23 kwi 2014, o 20:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petter0]]></name></author>
<updated>2014-04-23T20:40:32+01:00</updated>
<published>2014-04-23T20:40:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78992#p78992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78992#p78992"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78992#p78992"><![CDATA[
Tak, jest podłączony. Sprawdziłem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2948">petter0</a> — 23 kwi 2014, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-23T20:26:05+01:00</updated>
<published>2014-04-23T20:26:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78983#p78983</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78983#p78983"/>
<title type="html"><![CDATA[Re: Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78983#p78983"><![CDATA[
Pin SCL rejestru na pewno jest podłączony do plusa ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 23 kwi 2014, o 20:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[petter0]]></name></author>
<updated>2014-04-23T18:30:34+01:00</updated>
<published>2014-04-23T18:30:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78957#p78957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78957#p78957"/>
<title type="html"><![CDATA[Rejestr przesuwny 74HC595 na ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6862&amp;p=78957#p78957"><![CDATA[
Witam,<br />próbuję podłączyć rejestr przesuwny 74HC595 do mikrokontrolera ATmega8. Nie wiem dlaczego nie działa. Poniżej przedstawiam schemat i program:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/54/0805d4e13582f63e3f8503201362b1b1.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/54/0805d4e13582f63e3f8503201362b1b1.jpg" alt="Obrazek" /></a><br /><br /><span style="color: #FF0000">[ panowie proszę po pierwsze zmniejszać nieco wielkości tych obrazków i wklejać je z miniaturami tak jak w instrukcji: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic44.html" >topic44.html</a><!-- l --> .... bo się strona forum rozjeżdża <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> .... mirekk36 - ok? Tym razem poprawiłem ]</span><br /><br /><br />- na schemacie jest wiele dodatkowych rzeczy - nie są one podłączone. Układ zestawiony jest na płytce prototypowej tyko z rejestrem przesuwnym z diodami LED na wyjściach.<br />- na schemacie jest symbol ATmegi88, w rzeczywistości jest to ATmega8 (układ pinów jest identyczny).<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define MOSI (1&lt;&lt;PB3)<br />#define SCK (1&lt;&lt;PB5)<br />#define SS (1&lt;&lt;PD3)<br /><br />void spi_init(void)<br />{<br />// linie portów SPI jako wyjścia<br />DDRB |= MOSI | SCK;<br />DDRD |= SS;<br />//aktywacja SPI, tryb pracy Master, prędkość zegara Fosc/64<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) | (1&lt;&lt;SPR1);<br />}<br /><br />void send_spi(uint8_t data)<br />{<br />SPDR = data;<br />while(!(SPSR &amp; (1&lt;&lt;SPIF)));<br />PORTD |= SS;<br />_delay_us(1);<br />PORTD &amp;= ~SS;<br />}<br /><br />int main(void)<br />{<br />spi_init();<br /><br /><br />while(1){<br />_delay_ms(1000);<br />send_spi(0b10101010);<br /><br />_delay_ms(1000);<br />send_spi(0);<br />}<br />}[/syntax]<br /><br />ATmega programuje się prawidłowo. Na rejestr wysyłane są śmieci albo nic.<br />Ktoś ma jakieś pomysły? Dziękuję za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2948">petter0</a> — 23 kwi 2014, o 18:30</p><hr />
]]></content>
</entry>
</feed>