AVR-ENC28J60-Examples
AVR-ENC28J60-Examples copied to clipboard
Examples of AVR microcontrollers using TCP/IP to do various things.
AVR TCP/IP Examples
In this repo you will find ready to go examples that allow you to get your microcontroller connected to the internet immediately. All of the code examples have been tested with the ATmega328p and ATmega128. In order to achieve TCP/IP capabilities we will be making use of the wonderful tuxgraphics TCP/IP stack.
Prerequisites
Besides having an ATmega328p or ATmega128 microcontroller these tutorials assume you are using the Microchip ENC28J60 ethernet controller module. You can pick this module up fairly cheaply at a variety of places:
Getting Started
Hooking up the ENC28J260 module to your micocontroller is very straight forward:
| Pin Function | ATmega328p | ATmega128 | Arduino UNO & Duemilanove |
|---|---|---|---|
| CS | PB2 | PB0 | Digital Pin 10 |
| MOSI | PB3 | PB2 | Digital Pin 11 |
| MISO | PB4 | PB3 | Digital Pin 12 |
| SCK | PB5 | PB1 | Digital Pin 13 |
Loading An Example
If you haven't noticed yet there are two directories of code. The tuxlib directory has all of the tuxgraphics TCP/IP library source code. The examples directory will have multiple examples and individual makefiles for each. Before you compile and load the program you may need to make some changes to the makefile that is in the example folder. In the makefile you can change:
- Target microcontroller type -
DUDECPUTYPEandMCU - Programmer -
PROGRAMMER - The port your programmer is using -
PORT
After you modify the makefile compilation and installation are easy. From the console run:
maketo compile the source code of the examplemake loadto load the code onto your microcontroller
Because most of these examples are based on the tuxgraphics library make sure to check out their documentation as well.
General Tips / Troubleshooting
So lets say you compile and load the UDP_Client_Send example and are unsure if your data is actually being sent. This is a great oppurtunity to learn how to use Wireshark. Wireshark is a network analyzing tool that allows you to monitor and record network packets. Once you install wireshark it is pretty easy to find the packets you are looking for.
All we need to do is look for traffic that has the IP address of our microcontroller. Keep in mind the IP address of the microcontroller is typically stored in the variable local_host. Once in wireshark all we need to do is apply a simple filter and we can tell if traffic is being generated:
