Ethernut / LPC-E2294
  Introduction
  Hardware
  Software
  Download
  Back

Introduction

Ethernut is an Open Source Hardware and Software Project for building tiny Embedded Ethernet Devices.

The well documented software is an Open Source implementation of a Real Time Operating System called Nut/OS and a TCP/IP protocol suite named Nut/Net. Several application examples are provided, including an embedded Webserver, a simple RS232 to TCP/IP gateway and an Internet Radio playing MP3 streams.

For more information take a look at the Ethernut project. This project here is a port for the Olimex LPC-E2294 evaluation board using the CrossWorks for ARM toolchain from
Rowley Associates.

^ top 

Hardware

For this ARM port of Ethernut an evaluation board (LPC-E2294) from Olimex is used. An Ethernut 3.0 board is available by egnite.

Here are some of the main features from the Olimex board which will be supported by this Ethernut port:

  • LPC2294 ARM7TDMI-S CPU running at 58.98MHz
  • 1 MByte external SRAM with 32 Bit Data Path
  • 10 MBit Ethernet Interface CS8900A
  • RS232 over USB, Port 0
  • RS232, Port 1

The advantage of this board is the huge external SRAM, which can be used as a "FLASH replacement" in the development stage of the software. The application code is downloaded into SRAM using a CrossConnect for ARM from Rowley Associates, too.

I had some trouble with my PC to get the board working correctly. I had problems with the RS232 to USB converter and the power supply from the USB. To solve these problems I have done some reworks.

You may not need to do these reworks in general. The board could work with your PC, but I have done the following modifications:

  1. I removed diode D4 and replaced R10 by a 0 ohm resistor. You can find a picture of rework-1 here. Be careful with diode D4, you will need the diode for the next step again. This will solve the problem with the FT232BM, and disconnect the USB power from the main part of the board. The CAN Tranceivers are still connected to the USB power.

  2. For the power supply, I added a power jack and a 7805 Voltage Regulator. For a little protection, the diode D4 from step 1 was inserted too. You will find a picture of rework-2 here.

^ top 

Software

The Ethernut httpserv application shows how to use this port of Ethernut. The application is based on the original httpserv with some small changes for the
LPC-E2294 evaluation board.

I have measured the stack usage of the threads from the httpserv for AVR and ARM. For the AVR an Ethernut 2.1b and for the ARM the Olimex board was used. The measurement was made with the listed compiler:

  1. ICCAVR 7.02
  2. WinAVR (GCC 3.4.3)
  3. CrossWorks for ARM 1.5 build 2 (GCC 3.4.4)

The compilers are little outdated, I will check it with the newest version too.


ICCAVR


WinAVR


CrossWorks for ARM


The tables clearly show that the ARM needs much more stack space than the AVR.

Now take a look at the code size (all values in bytes):

Optimization ICCAVR WinAVR CrossWorks for ARM
None 57792 71470 81144 (ARM mode)
Max 49368 --- 44752 (ARM mode)

Unexpectedly, compiled using ARM mode (32 bit instructions) the code about the same size as the AVR code!

You would expect that 32-bit instructions would result in larger code than the 16-bit instructions of the AVR. I think what is happening is the ARMs more powerful instruction set is providing better code density.

You need CrossWorks for ARM to compile the software. In fact, you can use the evaluation version to build it.

^ top 

Download

Update for Nut/OS 4.0.2 (83KB)

Update for Nut/OS 4.1.4 (81KB)

The update is only for "ARM RAM Debug" mode.

^ top