Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ENC28J60 - jak wyglada pisanie porogramu?

Atlantis86 18 Mar 2013 19:39 1317 3
  • #1 18 Mar 2013 19:39
    Atlantis86
    Poziom 19  

    Pytam bardziej z ciekawości niż z potrzeby, po prostu chciałbym rzucić trochę światła na sytuację.
    Mianowicie ostatnio miałem okazję rzucić okiem na Arduino z Ethernet Shieldem wykorzystującym układ Wiznet W5100. Wspomniany chip zapewnia obsługę TCP/IP, nie obciążając tym Atmegi z Arduino. Sam kod z przykładów wygląda jasno i przejrzyście - na początku #include <Ethernet.h>, potem kilka poleceń konfiguracyjnych i można korzystać z dostępnych narzędzi do przesyłania danych przez sieć.

    W wielu projektach widywanych w Internecie stosuje się tańszy układ ENC28J60, który obsługę stosu TCP/IP pozostawia mikrosterownikowi. Pomimo tego czasem spotyka się projekty z Atmegą32, które wykorzystują ten układ.

    Chciałem zapytać bardziej doświadczonych konstruktorów, jak wygląda pisanie programu pod takie konstrukcje? Istnieją można narzędzia, które umożliwiałyby zorganizowanie tego w sposób podobny do Arduino? To znaczy załączamy plik nagłówkowy, konfigurujemy wszystko na początku programu, korzystamy z udostępnionych poleceń, a w tym przypadku obsługa TCP/IP zostaje wkompilowana w hexa? Czy też tak łatwo się nie da i użycie tego układu obok Atmegi wiąże się z większymi komplikacjami?

    0 3
  • #2 18 Mar 2013 19:54
    piotrva
    Moderator na urlopie...

    Ogólnie powiem tak, że pod ten układ (jak się domyślam piszesz tylko w Arduino) można znaleźć w sieci gotowe biblioteki pod Arduino, a także w czystym C istnieje projekt tuxgraphics.org (nb. biblioteki Arduino z niego korzystają). Sporo rzeczy na takim komplecie można zrobić, jednak, jak sam zauważyłeś, obciąża to procesor, więc nie wiadomo ilu funkcji w to nie wciśniesz.

    0
  • #3 18 Mar 2013 20:25
    Atlantis86
    Poziom 19  

    piotrva napisał:
    Ogólnie powiem tak, że pod ten układ (jak się domyślam piszesz tylko w Arduino) można znaleźć w sieci gotowe biblioteki pod Arduino, a także w czystym C istnieje projekt tuxgraphics.org (nb. biblioteki Arduino z niego korzystają).


    Właśnie odwrotnie - mój kontakt z Arduino jest raczej powierzchowny. Od jakiegoś czasu mam co prawda taką płytkę i przerobiłem parę przykładów, ale naukę programowania uC w języku C zacząłem od normalnych AVR-ów, samodzielnie montowanych na płytce prototypowej, z hexami wygrywanymi programatorem ISP, a nie za pośrednictwem bootloadera obsługiwanego przez USB.
    Po prostu zawsze interesowałem się raczej elektroniką niż informatyką - przez lata bawiłem się w składanie konstrukcji radioamatorskich. W związku z tym podejście polegającej na zlutowaniu układu z poszczególnych elementów wydaje mi się bardziej naturalne niż zabawa klockami w rodzaju Arduino.
    Przykład tej platformy przytoczyłem tylko dlatego, że nie wiem jak wygląda korzystanie z Ethernetu przy tradycyjnym programowaniu tych mikrokontrolerów.


    Cytat:
    Sporo rzeczy na takim komplecie można zrobić, jednak, jak sam zauważyłeś, obciąża to procesor, więc nie wiadomo ilu funkcji w to nie wciśniesz.


    Cudów oczywiście nie oczekuję - proste odczytywanie jakiegoś czujnika i dystrybucja pomiaru po sieci, tudzież zamykanie przekaźników po otrzymaniu odpowiedniego rozkazu. Gdybym miał się bawić w coś poważniejszego, pewnie zaangażowałbym RasPi albo jakiś router na OpenWRT, a nie ośmiobitowy uC. :)

    Rozumiem w takim razie, że można coś takiego osiągnąć bez samodzielnego rozgryzania komunikacji sieciowej od podstaw, tudzież angażowania do pracy jakiegoś systemu operacyjnego? Da się to zrobić dołączając po prostu odpowiedni plik nagłówkowy i wykorzystując udostępnione procedury, otrzymawszy w efekcie obsługę sieci wkompilowaną w hexa? Mniej więcej tak to wygląda?

    0