Hardware driver for ENC28J60

Based on the hardware abstraction layer for my TCP/IP stack, I wrote a software driver for the ENC28J60 ethernet module.  As said before the module is very cheap but has quite some issues and the software is trying to cover these issues as much as possible.  However there was one I couldn’t solve completely: interrupt on packet reception; that one is completely unreliable even with the workarounds proposed by Microchip.  Thus I decided to stay … Continue reading

IP Stack Hardware Abstraction

The most important component of the TCP/IP stack is the hardware abstraction layer.  Without it, there is simply no way to communicate with the network.  As I’m still unsure about which hardware to use on the long run and being a good software architect, I created a hardware abstraction layer which is pretty simple to understand.  We need to initialize the hardware and to be able send/receive packets, and if somewhat possible keep track of … Continue reading

Common Modules for TCP/IP stack

For the implementation of my version of a TCP/IP stack I need some modules that not always directly related to networking.  These modules will be described here. 1. Pool for packet buffers One of the most important building blocks in the TCP/IP stack is the packet buffer.  All communication (incoming and outgoing) is going through the packet buffer.  The most perfomant way to use a packet buffer is to use static memory, especially when working … Continue reading

IP Stack for STM32F4

EOS 5D Mark III-101-2280

For a couple of my micro controller-based projects I was looking for a good IP platform.  Lots of flavors exist, but none was really standing out.  However one came pretty close: lwIP; but for a micro controller it seemed quite some overkill. Next came also the choice of the ethernet hardware.  After some evaluations 2 options were left over: DP83848 and ENC28J60.  On the overall the DP83848 is doing better than the ENC28J60.  Microchip’s ENC28J60 … Continue reading

Home Automation – Room controller

I started designing the room controller for my home automation system.  Each controller will contain: 2.8″ TFT with touch panel SD card reader PIR sensor POE ethernet power regulator controller board The controller should fit in a double regular light switch (built-in European version).  I started with the front plate and ordered the required components below:   A small preview of what the LCD might show: