mikrocontroller.net

Forum: Projekte & Code ENC28J60 Basics für Philips LPC213x


Autor: Ulrich Radig (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hier der SourceCode für einen Philips LPC213x ARM Microcontroller und
dem bekannten ENC28J60 Ethernetcontroller von Microchip. Unterstützt
wird zurzeit erst ARP und ICMP (Ping). Der ENC28J60 hängt dabei an
SPI0. Dies ist nur eine Experimentier Version.

Gruss
Ulrich Radig

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird es einen kompletten Webserver mit dem LPC213x geben ?

Diese bieten ja genügend Flash und RAM für einen kleinen Webserver der
ohne zusätzlichen Speicher wie MMC/SD Karte auskommt.

Autor: Ulrich Radig (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hier der WEBSERVER Source Code auf Basis des uIP Stacks.
Weitere Detais demnächst wie immer auch auf meiner Webseite.

Gruss
Ulrich Radig

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Basics Version mal auf einem LPC2131 ausprobiert:
Beide LEDs am ENC28J60 blinken, ebenso die LED am LPC sobald dieser
startet.
Sobald ich die IP anpinge erzeugt der ENC28J20 einen Interrupt, aber
der Ping wird nur ab und zu mal beantwortet. Wenn er beantwortet wird,
dann nur 1 oder 2x nach einem Reset des LPC, danach garnichtmehr.
Spätestens nach einigen Minuten hängt sich der LPC dann auf (die LED
bleibt an oder aus.)

Die Schaltung rund um den ENC28 müsste OK sein, da ich lediglich den uC
(vorher ATmega32) ersetzt habe, und vorher ein kleiner Webserver eine
Woche damit lief.

Gibt es beim Anschluss irgendwas zu beachten ?
Meine Anschlussbelegung:
SPI0, CS an P0.21, Int an P0.16

Autor: Ulrich Radig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Mit welchem Quarz läuft das Board ich benutze ein 10Mhz.

Gruss
Ulrich

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe 14,318MHz verwendet. Das ergibt bei M=4 etwa 57MHz. PSEL ist
auch angepasst, daran liegt es also nicht.
Wenn ich den PLL abschalte ändern sich die Erfolge beim Anpingen auch
nicht: Spätestens nach dem 4. Anpingen ist ein Reset notwendig.

Autor: Ulrich Radig (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich kann den Fehler bei mir leider nicht nach vollziehen. Habe aber
noch etwas geändert. Evt. könnte nun der Fehler draussen sein.

Gruss
Ulrich

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt einen LPC2136 bekommen, damit funktioniert die Basics
Version auch nur ab und zu, der Webserver läuft aber wunderbar.

Gibt es irgendwo eine Beschreibung zu dem Webserver alleine (in der uip
Doku steht nichts dazu) ? Ich versuche gerade eigene Webseiten auf
diesen zu kopieren, verstehe aber nicht so ganz wie man die Daten
erzeugt und einbindet:

const struct httpd_fsdata_file file_processes_shtml[] = {{NULL,
data_processes_shtml, data_processes_shtml + 17,
sizeof(data_processes_shtml) - 17}};

const struct httpd_fsdata_file file_404_html[] =
{{file_processes_shtml, data_404_html, data_404_html + 10,
sizeof(data_404_html) - 10}};

const struct httpd_fsdata_file file_files_shtml[] = {{file_404_html,
data_files_shtml, data_files_shtml + 13, sizeof(data_files_shtml) -
13}};

Die ersten beiden scheinen die Liste der Dateien zu sein, die einfach
als Array gespeichert werden, aber woher kommen diese beiden
Zahlenwerte hinter dem Array (dieses +17, +10, +13 usw.) ?

Autor: Ulrich Radig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Lade dir den Source uIP1.0 herrunter bei der Applikation Webserver ist
ein Ordner hier müssen alle Daten HTML Fies hereinkoppiert werden
danach wird ein Makefile ausgeführt. UND FERTIG!!

Gruss
Ulrich Radig

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unter Windows ohne perl geht das nicht ganz so einfach, aber zum Glück
gibt es auf der Seite noch ein unter Windows lauffähiges Tool das genau
dasselbe macht.

Noch eine letzte Frage:
Gibt es irgendwo zu dem Scripting vom Webserver eine Beschreibung ?

Autor: Andreas Weschenfelder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie heißt denn dieses windows-tool?
kann es auf der seite von adem nicht finden...

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hello,

I post in english (well Frenchstyle english :)), I wish I could get some 
replies ;)

After finding out the Ulrich's website, I decided to buy a small dev 
board based on LPC2148 chip. I also buy a ENC28J60 chip and connect it 
to SPI0, with CS on P0.21 and IRQ on P0.16. Crystal is same as Ulrich's 
one (10MHz)

After burning his program (Basic or Standard), both LED on Ethernet 
connector blink together. I think the init process is fine but then 
nothing happens.
- On the ARM_uiP, I changed IP address both on my board (192.168.0.99 to 
192.168.0.1) and on my router (192.168.0.98 to 192.168.1.1), recompile 
his code and burn it. The mask is correct. Have I forgot something ? 
(I've not change the MAC addr)
- In the basic code, I only see the first IP address of the target but 
no from the router...

After burning the firmware, how can I check the board is working ? Ping 
command ? a small web server ?

Thank you very much by advance,

Regards,
David from France :)

ps : I've also sent an email to Ulrich today :p

Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

if you'r trying to run your ARM board with ip 192.168.0.1  and the 
router with 192.168.1.1 you might experience problems connecting / 
pinging your board because they wont be on the same subnet.
For example if I set my board's adress to 192.168.0.1 and my router to 
192.168.1.1 then I wont be able to get a connection to my board, whereas

router:192.168.1.1
board:192.168.1.2
remaining computers on my network: 192.168.1.xyz
just works fine for me.

However, I'm not familiar with neither ARM's nor the uIP stack(I use my 
own stack on AVR controllers) so the problem might be something else.
But I think pings should be enabled in Ulrichs uIP so the ping command 
should be just fine to check if your boards running :)

Regards,
Nik

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thanks Nik :)

You're right, I've changed IP addresses, here is the NAT :
- router : 192.168.1.1
- board : 192.168.1.2
- my computer : 192.168.1.16

I can access from my computer to the modem/router settings (through its 
http web server) and I opened HTTP port 80 on 192.168.1.2 (board)). Ping 
is working for the modem (no surprise :)) but nothing from my board... 
and the LED on Ethernet connector blink all the time (each second), 
probably an error somewhere.

In the main file, I only changed the values like this :

uip_ipaddr(ipaddr, 192,168,1,2);
uip_sethostaddr(ipaddr);// Board
uip_ipaddr(ipaddr, 192,168,1,1);
uip_setdraddr(ipaddr);// Router
uip_ipaddr(ipaddr, 255,255,255,0);
uip_setnetmask(ipaddr); // mask : no change, it's ok

Any (little) idea ? :-)

Thanks again :)

Regards
David

Autor: A. Weschenfelder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi David,

with this line:
enc28j60PhyWrite(0x14,0x0AA0);
you say the enc that the leds should always blink. see datasheet page 
11...
u can change the 2. value to 0x0470,
the enc shows you now the link-status and the transmit/receive-status...
if link-status isn't on, your hardware isn't ok...

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I've got it working finaly. I can change the value like you described 
too, thanks for all your help :) The firewall and AVG antivirus blocked 
the pages.

The next step will be to understand how to change the pages into the web 
server. The pages seems to be stored in the local flash through a 
filesystem. Is there a tool to convert a html page into a C-array code 
(like the header files) ?

Thanks again :)

David, who goes back to the code listing :)



Autor: Nik Bamert (nikbamert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi David, cool that you could make it work ! :)

I use Ulrich Radig's Tool 'WinBin' it can convert any file into an array 
of values (http://www.ulrichradig.de/home/index.php/projekte/winbin)

Autor: Andreas Weschenfelder (Firma: andreas-weschenfelder.de.vu) (rupplyn) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
download uip und look at the example-webserver...
"makefsdata" is a perl-script...
download perl and run: perl makefsdata
the arrays will be built from the html-files...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.