Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:enc28j60

Toto je starší verze dokumentu!


Ethernet řadič ENC28J60

Milan Kotulek 2015/01/17 13:34


Zadání:

Připojte řadič ENC28J60 k desce FRDM-KL25Z, zprovozněte TCP/IP stack a vytvořte jednoduchý TELNET server, pomocí kterého bude možné příkazy ovládat RGB LED.


Cílem projektu je vytvořit jednoduchý TELNET server. Základním prvkem je vývojový kit FRDM-KL25Z propojený s obvodem ENC28J60 pomocí sběrnice SPI. Ten dokáže komunikovat přes ethernet s PC.

Blokové schéma

Zpracování

Projekt byl zpracován v prostředí mbed.ogr. V plánu bylo využití jeho výhod, neboli komunitně vytvářených programů. Našel jsem několik projektů o kterých jsem si myslel, že půjdou využít nakonec však žádný ze zde vytvořených nevyhovovalo. Nejblíže tomu co je cílem tohoto projektu je tento projekt, jenž je obsluhou obvodu ENC28J60. Je založen na autorově knihovně pro ENC28J60 desku. Plně potporuje TCP / IP a UDP připojení jak klienta tak serveru, ARP, ICMP, DHCP a DNS.


S jeho implementací jsem narazil na problém, když jsem ho použil objevila se spousta varování snimiž jsem si nevěděl rady. Zkusil jsem je ignorovat a vyzkoušet zda program něco dělá. Lehce se ztrácím v kódu c++, ale je vidět, že obsahuje kontrolu zda je program v běhu a data jsou posílána. Sprovoznil jsem sériovou komunikaci přes COM a začal zjištovat kde je problém. Nepodařilo se mi však pomocí jeho funkcí zřejmě nic odeslat. Rozhodl jsem se tak pro psaní vlastního programu.


ENC28J60 komunikuje po rozhraní SPI. Celkově se využívá pouze sedmi instrukcí. Kontroler má však celkem 32 registrů dělených do 4 bank, jež se vybírají nastavením ve dvou nejvýznačnějších registrech ECON1/ECON2.


Závěr:

Při tvorbě tohoto projektu mě zastavila neznalost C++. Podařilo se mi vše zapojit a propojit. Dále jsem chtěl využít výhodn online prostředí mbed a to komunitního vývoje, ale program zde již napsaný pro ovládání ENC28J60 je tak složitý, že jsem ho se svou skromnou znalostí C++ nedokázal upravit do provozuschopné podoby. Měl jsem se radši pustit do vlastního projektu od začátku v offline prostředí s čistým C jazykem.


2014/enc28j60.1421586970.txt.gz · Poslední úprava: 2015/01/18 14:16 autor: Milan Kotulek