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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-12T11:50:39+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=16961&amp;mode</id>
<entry>
<author><name><![CDATA[Marti623]]></name></author>
<updated>2016-12-12T11:50:39+01:00</updated>
<published>2016-12-12T11:50:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=177208#p177208</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=177208#p177208"/>
<title type="html"><![CDATA[Re: Atmega 328P + ENC28J60 Serwer www, brak odpowiedzi na pi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=177208#p177208"><![CDATA[
Chyba udało się rozwiązać problem. Okazało się że wina leżaął w zasilaniu, linia 3v3 z arduino dawała tylko około 3v zasilania co widać było za mało dla ENC.<br />Podpiąłem osobne zasilanie 3v3 masy połączyłem i ruszyło.<br />Mam niestety kolejny problem.<br />Układ jest mało stabilny, Atmega zasilana z 5v i taktowana kwarcem 16MHz i sprawa wygląda tak, że układ działa kilkadziesiąt minut i sie zawiesza, czasem pinguje przez 30minut i zawiesi się, a gdy w przeglądarce wpisze IP i wydrukuje stronę to układ zawiesza się od razu. Jakieś pomysły?<br />ENC podłączony bezpośrednio do uC, czy to może być wina? może lepiej zastosować jakiś konwerter poziomów logicznych?<br />Korzystam z pinu INT w układzie ENC, w programie w przerwaniu wywoływana jest wtedy funkcja która w bluebooku jest umieszczona w pętli while, czyli drukowanie strony.<br /><br />Dodam, że na lini SPI podłączoną mam również kartę SD na której zapisują się dane i też z tym bywa różnie tj czasem sie zapisują ładnie czasem przestają a czasem tworzy sie nowy plik o rozmiarze 0kB i przy jego otwieraniu wyskakuje błąd, że nie ma takiego pliku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15091">Marti623</a> — 12 gru 2016, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marti623]]></name></author>
<updated>2016-12-06T22:23:16+01:00</updated>
<published>2016-12-06T22:23:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176719#p176719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176719#p176719"/>
<title type="html"><![CDATA[Re: Atmega 328P + ENC28J60 Serwer www, brak odpowiedzi na pi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176719#p176719"><![CDATA[
Nikt nie jest w stanie pomóc? ;/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15091">Marti623</a> — 6 gru 2016, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marti623]]></name></author>
<updated>2016-12-02T15:59:15+01:00</updated>
<published>2016-12-02T15:59:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176314#p176314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176314#p176314"/>
<title type="html"><![CDATA[Atmega 328P + ENC28J60 Serwer www, brak odpowiedzi na ping]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16961&amp;p=176314#p176314"><![CDATA[
Witam wszystkich.<br /><br />Jestem początkującym programistą i zaczynam powoli zabawę z AVR, studiuję bluebooka i doszedłem do pierwszego poważniejszego problemu.<br />Zaimplementowany serwer www niestety kompletnie nie reaguje na próbę pingowania.<br /><br />Korzystam z Atmegi328p (jeżeli to ma jakiś wpływ to dokładniej na płytce arduino uno, lecz z arduino nie ma nic więcej wspólnego, programy piszę w C i kompiluję w Atmel Studio)<br /><br />Co ciekawe ten sam program wgrany na atmege 8 (po poprawkach deklaracji portów z PORTB na PB itd) działa, że tak powiem od strzała, pinguje, strona w przeglądarce się ładuje i wszystko jest ok. Gdy wgram ten program na atmega328p zero jakiejkolwiek reakcji.<br />Od kilku dni przeglądam noty katalogowe Atmegi 8 i 328p aby znaleźć jakieś różnice w kodzie, ale inicjalizacja SPI wygląda w obu uC tak samo, z wyjątkiem rejestru PRR w atmedze 328p, aby mieć pewność, że zegar jest podpięty do interfejsu SPI wpisałem w niego na bit PRSPI 0, tak jak mówi datasheet. zero zmian.<br /><br />Moduł ethernet ENC28j60 działa poprawnie tj. zielona dioda świeci, pomarańczowa mruga, podczas prób pingowania pomarańczowa mruga częściej, czyli tak jak być powinno gdy odbiera pakiety więc wszystko wskazywało by na winę leżącą albo w kodzie albo w płytce arduino, reset na arduino resetuje atmege i enc. Walczę już od kilku dni z tym problemem ale bezskutecznie.<br /><br />Podłączenia uC -&gt; ENC:<br />MOSI  (PORTB3) -&gt; SI <br />MISO (PORTB4) -&gt; SO <br />SCK (PORTB5) -&gt; SCK <br />SS (PORTB2) -&gt; CS <br />RST (PORTC6) -&gt; RESET<br /><br />Zasilanie:<br />Tutaj próbowałem zasilać poprzez programator USBASP całą płytkę arduino a z pinu 3v3 zasilam enc (A328p 16MHz zewnętrzny kwarc)- brak pingu<br />Zasilanie zewnętrzne 3v3 USBASP odłączony (A328p wewnętrzny oscylator 8MHz) - brak pingu<br />Atmega 8 na której działał serwer www była zasilana z zewnętrznego zasilania 3v3 z odłączonym USBASP oraz wewnętrzny oscylator 8MHz<br />Kwestia zasilania raczej odpada w takim wypadku oraz podłączeń tym bardziej, że oba uC linie SPI mają nawet na tych samych portach i pinach.<br /><br />Co do inicjalizacji SPI, wygląda u mnie ona tak:<br />[syntax=c]SPCR = (1&lt;&lt;SPE)|(1&lt;&lt;MSTR);<br />SPSR |= (1&lt;&lt;SPI2X); //fosc/2<br />_delay_ms(20); // 20ms<br />enc28j60WriteOp(ENC28J60_SOFT_RESET, 0, ENC28J60_SOFT_RESET);<br />_delay_ms(20); // 20ms<br />ENC28J60_CONTROL_DDR  = ((1&lt;&lt;ENC28J60_C_SI) | (1&lt;&lt;ENC28J60_C_SCK) | (1&lt;&lt;ENC28J60_C_CS));[/syntax]<br /><br />W oryginalnym kodzie było jeszcze takie coś:<br />[syntax=c]ENC28J60_CONTROL_PORT |= (1&lt;&lt;ENC28J60_CONTROL_SI); // MOSI low<br />        ENC28J60_CONTROL_PORT |= (1&lt;&lt;ENC28J60_CONTROL_SCK); // SCK low[/syntax]<br />Tego nie za bardzo rozumiem, dlaczego wpisując do rejestru DDRB jedynki ustawia się MOSI i SCK w stan niski skoro te wyjścia nie są zanegowane tak jak SS.<br />W każdym razie próbowałem to kasować, zmieniać na wpisywanie pod te bity zera ale i tak ping nie odpowiedział.<br /><br />Ktoś może spotkał się z takim problemem, i wie co może być nie tak?<br />Dodam, że SPI fizycznie działa ponieważ też uznałem, że którys port mógł ulec uszkodzeniu więc na szybko podpiąłem czytnik kart SD i jakiś przykładowy kod (akurat w arduino ponieważ chciałem tylko sprawdzić czy działa komunikacja) i z kartą SD procesor się komunikował.<br /><br />Wszystko by wskazywało na jakiś błąd w samym programie do serwera www lecz nie potrafię bez pomocy go znaleźć.<br /><br />Pozdrawiam serdecznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15091">Marti623</a> — 2 gru 2016, o 15:59</p><hr />
]]></content>
</entry>
</feed>