Show Posts
|
|
Pages: 1 2 [3] 4 5 ... 13
|
|
32
|
Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with the ENC28J60
|
on: September 13, 2007, 06:59:48 pm
|
So after some more testing I was pretty sure the spi voltage had something to do with it. Even just dumping the registers (slower than I can click on a key) and the data would become inconsistent. And so the SPI input voltage problem has been solved. Using a SN74LS08 series AND gate running at 5v. two inputs are tied to the MISO of the ENC and tied to a pull down resistor. The output end up being ~4.5v, which is higher enough than the 2/3Vcc ratio the I/Os require (making 3.3v on the edge). Register readings now seem 100% consistant. I have also replace the 2.7k resistor on RBIAS by a 2.3k as noted in the Rev B5 errata. I definitely can read icmp, udp and tcp packets. More to come  Time Eth Address IP Address --------------------------------------- 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 0:0:0:0:0:0 0.0.0.0 Received ARP Request ARP Packet: Operation : REQUEST SrcHwAddr : 0:16:CB:8B:1:EC SrcProtoAddr: 192.168.0.12 DstHwAddr : 0:0:0:0:0:0 DstProtoAddr: 192.168.0.126 Sending ARP Reply ARP Packet: Operation : REPLY SrcHwAddr : CC:0:FF:FF:EE:EE SrcProtoAddr: 192.168.0.126 DstHwAddr : 0:16:CB:8B:1:EC DstProtoAddr: 192.168.0.12
NET Rx: IP packet Time Eth Address IP Address --------------------------------------- d ::[ch65533]:[ch65533]::[ch65533] [ch65533].[ch65533].. ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... entering netstackIPProcess NET Rx: UDP/IP packet -1012UDP packet, len: 50 C1
NET Rx: IP packet Time Eth Address IP Address --------------------------------------- d ::[ch65533]:[ch65533]::[ch65533] [ch65533].[ch65533].. ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... entering netstackIPProcess NET Rx: TCP/IP packet Rvd tcp Packet: len=68 NET Rx: IP packet Time Eth Address IP Address --------------------------------------- d ::[ch65533]:[ch65533]::[ch65533] [ch65533].[ch65533].. ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... ::::: ... entering netstackIPProcess NET Rx: TCP/IP packet Rvd tcp Packet: len=68
(the packets were sent using ping, nc and nc -u)
|
|
|
|
|
33
|
Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with the ENC28J60
|
on: September 13, 2007, 03:45:51 pm
|
I just noticed that out of the 3 copies of the drivers, two are pretty much the same and implement the ENC28J60 Rev.B4 errata... Not Rev. B5, which is the same as my chip, if I read EREVID – and seems to be anything manufactured >= 2006. Had you guys worked these out or where you running on version 4? Because there are a few more erratas in rev 5 for Rx/Tx and mostly in Half Duplex sending! EDIT: As far as I can see, errata #12 and #13, which both affect transmission have not been fixed yet. EDIT++: Sorry I forgot the link http://ww1.microchip.com/downloads/en/DeviceDoc/80264d.pdf.
|
|
|
|
|
34
|
Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with the ENC28J60
|
on: September 13, 2007, 03:43:02 am
|
I couldn't just leave it at that.... here is some debugging info from the Arduino to satisfy your geek desires! Initializing Network Stack! Initializing Network Device Initializing ARP cache Initializing Addressing Net Stack is up! cmd> Received packet len: 64Packet Contents 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ----------------------------------------------- ---- ASCII ----- 0 [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] [ch65533][ch65533][ch65533][ch65533][ch65533][ch65533]..[ch715].[ch65533].... 16 [ch65533] [ch65533] [ch65533] [ch65533] [ch65533] ........[ch715].[ch65533][ch65533].. 32 [ch65533] [ch65533] ~ ......[ch65533].~...... 48 [ch65533] [ch65533] [ch65533] [ch65533] ............[ch31341][ch65533] NET Rx: ARP packet Received ARP Request ARP Packet: Operation : REQUEST SrcHwAddr : ::[ch65533]:[ch65533]::[ch65533] SrcProtoAddr: [ch65533].[ch65533].. DstHwAddr : ::::: DstProtoAddr: [ch65533].[ch65533]..~ Sending ARP Reply ARP Packet: Operation : REPLY SrcHwAddr : C:0:F:F:E:E SrcProtoAddr: [ch65533].[ch65533]..~ DstHwAddr : ::[ch65533]:[ch65533]::[ch65533] DstProtoAddr: [ch65533].[ch65533]..
|
|
|
|
|
35
|
Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with the ENC28J60
|
on: September 13, 2007, 03:13:14 am
|
|
And I'm pretty sure it's not, although it might well be a side issue, the level shift is probably a good idea in prod cause 3.3v is really on the logical edge for an AVR running at 5v. I can confirm that I have received packets on the AVR! I wouldn't say it's up and running, but it seems to work. To be honest I'm not sure what I did. I cleaned up around the code. Part of the problem was me being an idiot and declaring the ports "absolute" binary values when the sbi/cbi method is used throughout.
|
|
|
|
|
37
|
Forum 2005-2010 (read only) / Interfacing / Re: Interfacing with the ENC28J60
|
on: September 12, 2007, 04:12:06 pm
|
|
Ok so I can confirm I can read the revision ID (register 0x312, that is register 12h of bank 3) albeit two things strick me. The first is that the register was previously defined as "(0x12|0x60)" which definitely does not make 0x312. The second is that all the bits were inverted. I had to ~ in order to read the proper revision id. Do you believe that's normal?
|
|
|
|
|
43
|
Forum 2005-2010 (read only) / Interfacing / Interfacing with the ENC28J60
|
on: September 10, 2007, 01:04:03 pm
|
Hi there, so I've set up an ENC28J60 with a MagJack connector. Built my first PCB to breakout the MagJack  I used the code and circuit described here. As far as the ethernet link is concerned it seems to work (both leds on the switch and the device light up when I plugin the cable). Now I'm trying to get µIP working properly. Everything seems to compile just fine (adapting it slightly to work with the API). Sadly nor the UDP or ICMP program work. Everything times out (the µC never answers). The Arduino seems to behave very weirdly and seems to reset every so often which is weird. I have a Rev B NG, and the ENC28J60 communicates over SPI, I wonder if this could be the cause (pin 13's led is always faintly lighted up). You can find the code here. I really wished I knew what was going on :/
|
|
|
|
|
45
|
Forum 2005-2010 (read only) / Interfacing / Re: Using the DS1803 digital pot.
|
on: October 12, 2007, 08:12:06 pm
|
You can also do the following: Add this to the public functions in Wire.h bool checkAddress(uint8_t);
And this in Wire.cpp bool TwoWire::checkAddress(uint8_t twiAddress) { uint8_t *txBuffer; twi_writeTo(twiAddress, txBuffer, 0, 1); twi_isFound(); }
You can now easily check an address by doing Wire.checkAddress(address). w00t 
|
|
|
|
|