OpenCores
URL https://opencores.org/ocsvn/igor/igor/trunk

Subversion Repositories igor

[/] [igor/] [trunk/] [avr/] [eth-test/] [dev/] [enc28j60-uip.c] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 atypic
#include "enc28j60.h"
2
#include <avr/io.h>
3
#include <util/delay.h>
4
#include "../uip/uipopt.h"
5
#include "../uip/uip.h"
6
 
7
/*
8
* This is the interface between the ENC28J60 driver and the uIP TCP/IP stack.
9
* The code was lifted from http://code.google.com/p/avr-uip/
10
*/
11
 
12
unsigned int network_read(void){
13
        uint16_t len;
14
        len=enc28j60PacketReceive(UIP_BUFSIZE, (uint8_t *)uip_buf);
15
        return len;
16
}
17
 
18
void network_send(void){
19
        if(uip_len <= UIP_LLH_LEN + 40){
20
                enc28j60PacketSendTwo(uip_len, (uint8_t *)uip_buf, 0, 0);
21
        }else{
22
                enc28j60PacketSendTwo(54, (uint8_t *)uip_buf , uip_len - UIP_LLH_LEN - 40, (uint8_t*)uip_appdata);
23
        }
24
}
25
 
26
void network_init(void)
27
{
28
        //Initialise the device
29
        enc28j60Init();
30
 
31
        //Configure leds
32
        enc28j60PhyWrite(PHLCON,0x476);
33
}
34
 
35
void network_get_MAC(uint8_t* macaddr)
36
{
37
        // read MAC address registers
38
        // NOTE: MAC address in ENC28J60 is byte-backward
39
        *macaddr++ = enc28j60Read(MAADR5);
40
        *macaddr++ = enc28j60Read(MAADR4);
41
        *macaddr++ = enc28j60Read(MAADR3);
42
        *macaddr++ = enc28j60Read(MAADR2);
43
        *macaddr++ = enc28j60Read(MAADR1);
44
        *macaddr++ = enc28j60Read(MAADR0);
45
}
46
 
47
void network_set_MAC(uint8_t* macaddr)
48
{
49
        // write MAC address
50
        // NOTE: MAC address in ENC28J60 is byte-backward
51
        enc28j60Write(MAADR5, *macaddr++);
52
        enc28j60Write(MAADR4, *macaddr++);
53
        enc28j60Write(MAADR3, *macaddr++);
54
        enc28j60Write(MAADR2, *macaddr++);
55
        enc28j60Write(MAADR1, *macaddr++);
56
        enc28j60Write(MAADR0, *macaddr++);
57
}
58
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.