Ethernet SDR Interfacing [and 7 more messages]
wb4jfi at knology.net
Thu Sep 16 00:54:43 CDT 2010
Overall, I agree with much of this Mait.
On 9/15/2010 9:29 PM, Maitland Bottoms wrote:
> Hmm. I've got a few comments to make on this thread, so I might
> as well do it all at once....
> wb4jfi writes:
> > I'm thinking of adding an Ethernet interface capability to the
> > Charleston SDR receiver. This would also allow me to learn Ethernet
> > interfacing with some of the newer designs.
> Yes. Me too.
> Getting the NEXYS2 was cool, and I need to thank you for turning me on to
> its coolness. However, I still did pine for Ethernet.
> I read with great relish the fpga4fun 10BASE-T interface info:
> "The Ethernet full-duplex protocol is easy to implement in an FPGA."
Yes. The fpga4fun people have a lot of interesting info, especially on
interfaces used in FPGAs and other micros. I have a Xylo and dual-ADC
board from them that I got just after moving here. I have used their
scope software with it. They refuse to provide source (Windows and
FPGA) for the scope software, however. They explain SPI, I2C, JTAG, and
other protocols and interfacing quite nicely.
Also, check out opencores.org for a ton of open and available IP cores.
I am considering using one of their soft-processors (maybe the Z80) for
slower control stuff inside the FPGA. They also have Ethernet cores,
and lots of other neat stuff. They also promote their "Wishbone"
interface to use within the FPGA for interconnecting different cores.
And, even the Xilinx Webpack has some limited Enet IP (Intellectual
Property) core software I think.
> There's other plaforms out there besides the NEXYS2,
> so I've gotten a Digilent Spartan 3E-Starter board and the Xilinx
> Spartan-3AN Starter Kit, both of which have a nice RJ-45 connector
> and ethernet interface right there on the board.
I looked at the Xilinx boards, but at the time they did not have a USB
port. Kind of a killer for using with John's SDR board. Plus, they had
limited external IO pins. I thought they had at least two PMOD jacks,
but I can't find that now.
> I figure I'd plug in my Charleston to one of those and go to town.
> But! The other starter boards do not have the nice quad-PMOD headers
> to "just plug in" the Charleston. Perhaps some hirose FX2 connector
> to multiple PMOD connectors would be a useful bit of hardware.
> I'll get to that right after I shave this yak.
> Another future Charleston host would be the SIE:
> But it doesn't have the Ethernet we want.
I will check this out further.
> Robert E. Seastrom writes:
> > I kind of think there's no point in doing 10 mbit/sec ethernet in
> > 2010. 100m is *almost* in the same department, depending on the cost
> > of gigabit ethernet capable NIC and PHY.
> Yeah. That's the reason (rather than my own laziness) that I didn't
> do anything useful with the various boards I have.
> But, it is not clear to me that gigabit is going to work well with
> these low-cost, free Webpack supported FPGAs. It's really fast, and there
> are special parts of the more expensive chips like the Virtex-5 to make it work.
> Part of the fun of following along with the Charlston project is what we
> can learn while still sticking to a beer budget.
Well, I'm not sure that FPGA speed is a real issue, if you use an
external Ethernet/IP device. See below.
> wb4jfi writes:
> > I used to like Firewire (a LOT), but between the driver issues, and the
> > cost of embedding those devices, no thanks. Plus, try to buy a laptop
> > computer with Firewire for under $1,000...
> I just got one for $125. (Oh. So it's used, and there weren't lots
> available. And it probably cost the initial buyer a heck of a lot
> more that $1,000. Nevermind. And I notice my cute new Intel Atom based
> systems (why should your computer be bigger than your FPGA eval board)
> does not have firewire.)
Does not count!!! I have two laptops with nice Firewire, but they are
not the future....
> > One major issue is that most computers have only one ethernet
> > connection. So, if you want to use the e'net connection for both the
> > SDR and Internet, a small switch must be used. Or, wireless can be used
> > for the Internet (on a laptop).
> And it is not clear to me that some of the FPGA ethernet solutions
> really work with the switch. The USRP2 seems to really prefer dedicated
> direct connections.
I think the USRP2 project is not for us, at least not for me. Seems
VERY costly, you get limited applications, and I just do NOT like the
looks of GNU Radio, at least what I've seen. Sorry. It looks to me
like a terminal-screen user's idea of a GUI from 1990. I compare it to
a first-generation copy of Flight Simulator compared to what we see
now. U-G-L-Y. Even Rocky looks wonderful compared to it. But, call me
and I will tell you how I really feel. Hi Hi..... I must be missing
> Mike O'Dell writes:
> > things you need to worry about picking ethernet interface goobers:
> > (1) can the part do GigE flat-out?
> > (2) how much stupid fiddling does it need to send a frame?
> That was my worry earlier about the suitablility of these budget parts.
> The big fast expensive things can probably deal with the Gbps data
> streams. But an interface that takes care of converting the serial
> stream into an 8-bit bus still has a 125 MHz clock to go with that bus.
> And a lot more wiring to move it around.
> That said, the OZYII page says:
> "The choice of a Micrel KSZ9021RL PHY chip looks like paying off.
> The chip uses the RGMII interface standard which means it only requires
> 12 pins in order to connect to the associated FPGA."
I actually see more like 15-16 pins on the OzyII schematics between the
PHY and the FPGA. To be fair, that includes clocks and reset, but those
all take pins on the FPGA away from some other circuitry.
> Patirck Strasser writes:
> > I'm using Linux for most things, there you have different problems.
> Oh yes, but I do see progress.
> My heart sank when I got my NEXYS2 and learned about the Windows-Only
> Digilent Adept Suite and under-documented Xilinx iMPACT tools. But a
> quick search got me to use the cute little Perl nexys2prog script, and
> so I've always used Linux to run the Xilinx Webpack ISE to make .bit
> files and nexys2prog to load the board.
> And when I set out to use the Spartan 3E-Starter, I used a similar
> strategy to develop for an load it from Linux. All the good stuff
> is now at
> (Even better, since I've started down that route, the assembler parts
> of sdcc got re-licensed, and so all the pieces needed to make JTAG
> tools work with FX2 style USB harware are all Free Software.)
> Alas I have yet to get this approach to work with the 3AN board.
> Still, much hacking is going on with the FX2, and we've got free
> options (UrJTAG, OpenOCD http://openocd.berlios.de/web/) to some
> of the vendor tools.
> For those who didn't follow the links, I program the NEXYS2 from Linux
> by first using the fxload application to replace the stock FX2 USB
> firmware with some 8051 code that makes the interface look like
> another USB JTAG cable. Doing that even changes the USB ID on the
> bus as seen from the host computer. The changes revert back once
> the NEXYS2 board is power cycled. So I load USB firmware in order
> to load FPGA firmware.
When I first started this latest FPGA stuff, I ran across an article in
Circuit Cellar that described how to get the Xilinx tools working fine
in Linux with the Xilinx board. He discussed a lot of the Linux vs
Windows issues, and provided scripts to get around some problems.
That's also where I first discovered no USB on the Xilinx board at the time.
I wanted to crawl before walking, so I decided to follow along and copy
as much of John Schwacke's work as possible. The fewer changes made,
the better. That's why I went with the same Digilent Nexys2 board that
he used. Now, I feel a little better, and could possibly use something
else if pressed.
> > You're very flexible with Ethernet. If you need galvanic isolation, you
> > can even take an optical link, and bridge very long distances.
> I've taken an interest in the SFP.
> It has good features in only a few pins to interface, low cost and
> high availibility.
> Mark Whittington writes:
> > Have you considered emulating what the USRP2 does, either from a hardware or
> > software perspective, or both?
> That motivated me a bit. So far it seems to really like a dedicated
> point-to-point gigabit ethernet link, since it really uses it as a hardware
> link and doesn't have a complete networking stack to coexist on shared LANs.
> And what about xguff?
> That would make any of these FX2 USB using FPGA boards look like a USRP1:
> More than enough for now.
> Best of luck to all you SDR and FPGA hackers,
> Tacos mailing list
> Tacos at amrad.org
I looked at various PHY chips and other devices when considering adding
Ethernet to my SDRs. I started with the Digilent NIC PMOD, but after it
came, I realized there just isn't enough throughput with 10mbits.
Actually, I had decided that before ordering, but bought it anyway...
I looked at the chip that James Ahlstrom is using for his new
transceiver, the SMSC LAN9115. It does 10/100mb. But, it's just PHY,
and uses a ton of FPGA connections.
The OzyII uses the Micrel KSZ9021R chip. As mentioned, it uses 12 or 16
pins, and can do 10/100/1000mb. Cool, but PHY only. Digikey did not
have any in stock, and a quick Google search found no pre-built modules,
which would have simplified design testing.
I have been a fan of Sparkfun modules for a few years now. I loved
their USB BitWhacker (UBW) (a PIC18F2445 USB-capable PIC on a small
board). I used a UBW to verify a lot of the software that I wrote for
the Brainerd DDS boards, as they used the same/similar PIC chip.
I found that not only does Sparkfun have a Xilinx 500k FPGA board, they
have two. One is just the FPGA itself ($79), along with a voltage
regulator or two. The other includes an RS232, JTAG, clock, and a few
other goodies on a separate, breakable-away board ($99). Cool. No USB,
however. We can develop Ethernet code for both the Digilent Nexys2 and
Sparkfun FPGA boards, and only change the .ucf file, and FPGA package.
JTAG is slightly harder to program than the NexysII USB port.
Sparkfun also has a set of chips and modules from a company called
Wiznet. I focused on the Wiz5300 chip, which can to 10/100mb (no
gig-e). Sparkfun has an 830 module ($25), which is the 5300, clock,
E'net connector, and dual 20-row pins for interconnect. They also have
a Web200 module($35), which has the 5300, a small Atmel MCU, some RAM
and ROM, plus E'net connector. The 5300 can interface via SPI (slow),
or various combinations of 8/16-bit data, and 3 or 10-bit (I think)
addressing. The best interface is with the most pins used, of course.
Claims of 7+mB/s (mega-Bytes) transfers are made with Wiznet devices.
Oh, and the best thing is that the Wiznet chips not only do PHY, they
also have a complete TCP/IP (or UDP) stack built right into them. No
need to take up a lot of the FPGA fabric for Ethernet logic, it's all in
the Wiznet chip. Some of the reviews have been mixed, mostly due to
poor document language translation. But, I've seen several Circuit
Cellar projects that use either the Wiznet 5300 or 5100 chips, and they
all claim to work fine. Circuit Cellar ran one of their design
competitions a couple of years ago, using the 5100. There are at least
a dozen submitted designs available (most including code) with the
Wiznet chips. And, yes, there are a few jokes about the name...
I bought one of the 830 modules with the intent of hooking it up to a
couple PMOD connectors on the Nexys2 and trying to stroke it to life.
Then, I chickened out, and bought the Web200 module. Wiznet also sells
a EVM board and Web200 for $99, from Saelig. I already had all the
stuff on the EVM board (16x2LCD, switches, leds, FTDI RS232, etc), so I
homebrewed my EVM and plugged in the Wiznet200. It worked right off the
bat. I can get it to get an IP from my router via DHCP, and it shows up
on my LAN. I can browse it, and turn on/off leds, send a message to the
LCD, read the switches and the analog pot voltage. I'm waiting for the
temperature chip. I declared success. The best part is that all the
source code is available, so I can study actual, working code, to verify
how to stroke the 5300.
One last thing... I also found another company, Digital Shortcut, that
sells a board with a small Xilinx Spartan 3AN FPGA and Wiznet 5300 chip,
for $119. I have one on order, after they took my order, they found
that they were out of stock. But in the meantime, I got access to their
web site info, which includes schematics and source code. The source
includes how to make a web server using both TCP or UDP (not at the same
time), between the 5300 and the FPGA. GREAT NEWS!! They have actual
FPGA code (Verilog I think) that strokes the 5300 into connection
happiness. Between these two web servers, I should be able to figure
out how to get my original 830 module working with the SDR fairly
easily. Especially once the Digital Shortcut board comes in. I may
even be able to hook the Charleston receiver board to the Digital
Shortcut board, as there are plenty of FPGA pins available.
So, that's my story so far, and I'm sticking to it. If life would let
me play just a little more, and if Digital Shortcut's pic-n-place
machine were to spit out one of their boards for me, I think I may have
a couple of Ethernet SDR solutions coming. Some of this may be fodder
for a future newsletter article.
Oh, and by the way, I finally broke down and ordered an Elecraft K3,
primarily to replace the old Icom IC-720A. I just don't believe this
SDR nonsense is long for this world. Sooner or later someone will peak
behind the curtain. Not.
The preceeding are my own personal opinions, and do not reflect those of
AMRAD, or any of it's other members, employees, contractors, family
members, livestock, or pets. Sometimes, they don't even intersect with
mainstream's "reality", whatever that is.
All for now, sorry for the long email. Enjoy hacking away...
More information about the Tacos