time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: [time-nuts] OT: 10 MHz data capture, help

HM
Hal Murray
Sat, Apr 25, 2009 9:20 AM

I have a old data device that is spitting out TTL data at 10 MHz.
There's just a data line (no clock) but the edges clearly indicate an
internal 10 MHz clock.

I'd like to do a continuous capture of the bits, for up to tens of
minutes, into a PC. That comes to about 1 GB of raw data. I can handle
the decoding of the bits in software after the capture is done. This
is a one-time experiment.

What is the best/quickest/easiest way to capture data like this? I've
looked at various USB or LAN logic analyzer and 'scopes but most seem
to work on batches of data. I need a continuous capture.

There are two issues with this problem.  One is clock recovery.  The other is
getting a large chunk of data into memory and presumably on to disk.

This leads in to a question I've been meaning to ask for a while.  I've been
looking for a low cost FPGA on PCI board.  This might be a wild goose chase,
but I think it would be handy for a bunch of time-nut type applications.

If I had the board I'm thinking of, you would just plug your data signal into
a SMA connector and grab the data.  It might take some FPGA hacking, but
clock recovery at 10 MHz isn't a big deal and before long we'd have a good
collection of FPGA code.

What I'm looking for is a FPGA on a PCI card with a front end where I could
add my own interface circuitry probably on a daughter card.  I'm picturing a
connector of some sort on the PCI card, probably standard 0.025 inch pins on
0.1 centers, but I'd be happy with anything low tech and inexpensive.  I'd
want it as far back from the front panel as is reasonable to leave room for
my stuff.  I also want a couple of good mounting holes.  (and drawings and
part numbers...)

The daughter cards would be flipped upside down.  Cooling would be poor but
shouldn't be a problem with low power interface chips.  It would get exciting
if you wanted to put a fast ADC out there.

I'd expect the vendor to make a few popular interface daughter cards
available.  There are a couple of obvious ones.  One is N data lines with a
clock on whatever ribbon cable type connector fits on the front panel.
Another is several SMA connectors, one going to a clock input on the FPGA.

It might make sense to layout something on the front section of the board.
As long as that section isn't stuffed it won't get in the way.  Whatever is
likely to be most popular.

Does anybody know of an inexpensive FPGA card like that?

There are a handful of reasons why FPGA and PCI don't play together well.
The main one is that old 5V PCI can generate 11V spikes from reflections and
that is off scale with modern silicon technology, or at least the branch of
it used in the FPGAs that I'm familiar with.

There is a 3V PCI spec, but (almost?) no mother boards implement it.  I think
that's mostly a chicken/egg problem.  It didn't take off so nobody built cards
that depend on it so it didn't take off...  Lots of people make cards that
run on
either 3V or 5V.  That's easy.

Does anybody know of any mother boards with 3V PCI slots?  I think the 66 MHz
option for PCI needs them.

There are 2 ways that I know of to connect a FPGA to 5V PCI.  One is to use
FET bus switches.  The other is to use some other chip to connect to the PCI
bus.  One possibility is a PCI-PCI bridge.  Another is an older technology
FPGA.  A 3rd is one of the PLX chips designed to connect to external logic.
I think they can all be made to work, but they seem ugly to me.

There are a couple more possibilites.  One is to cheat.  That means putting a
scope on your PCI bus and noticing that even though it's a 5V bus, it's only
got 3V signals on it.  You would have to get out the scope again every time
you wanted to plug in a new card.  Ugly.

Another option is to use PCI-Express.  I'm not sure what is available for low
cost FPGAs, but lots of mother boards now include PCI-Express slots.

--
These are my opinions, not necessarily my employer's.  I hate spam.

> I have a old data device that is spitting out TTL data at 10 MHz. > There's just a data line (no clock) but the edges clearly indicate an > internal 10 MHz clock. > I'd like to do a continuous capture of the bits, for up to tens of > minutes, into a PC. That comes to about 1 GB of raw data. I can handle > the decoding of the bits in software after the capture is done. This > is a one-time experiment. > What is the best/quickest/easiest way to capture data like this? I've > looked at various USB or LAN logic analyzer and 'scopes but most seem > to work on batches of data. I need a continuous capture. There are two issues with this problem. One is clock recovery. The other is getting a large chunk of data into memory and presumably on to disk. This leads in to a question I've been meaning to ask for a while. I've been looking for a low cost FPGA on PCI board. This might be a wild goose chase, but I think it would be handy for a bunch of time-nut type applications. If I had the board I'm thinking of, you would just plug your data signal into a SMA connector and grab the data. It might take some FPGA hacking, but clock recovery at 10 MHz isn't a big deal and before long we'd have a good collection of FPGA code. What I'm looking for is a FPGA on a PCI card with a front end where I could add my own interface circuitry probably on a daughter card. I'm picturing a connector of some sort on the PCI card, probably standard 0.025 inch pins on 0.1 centers, but I'd be happy with anything low tech and inexpensive. I'd want it as far back from the front panel as is reasonable to leave room for my stuff. I also want a couple of good mounting holes. (and drawings and part numbers...) The daughter cards would be flipped upside down. Cooling would be poor but shouldn't be a problem with low power interface chips. It would get exciting if you wanted to put a fast ADC out there. I'd expect the vendor to make a few popular interface daughter cards available. There are a couple of obvious ones. One is N data lines with a clock on whatever ribbon cable type connector fits on the front panel. Another is several SMA connectors, one going to a clock input on the FPGA. It might make sense to layout something on the front section of the board. As long as that section isn't stuffed it won't get in the way. Whatever is likely to be most popular. Does anybody know of an inexpensive FPGA card like that? There are a handful of reasons why FPGA and PCI don't play together well. The main one is that old 5V PCI can generate 11V spikes from reflections and that is off scale with modern silicon technology, or at least the branch of it used in the FPGAs that I'm familiar with. There is a 3V PCI spec, but (almost?) no mother boards implement it. I think that's mostly a chicken/egg problem. It didn't take off so nobody built cards that depend on it so it didn't take off... Lots of people make cards that run on either 3V or 5V. That's easy. Does anybody know of any mother boards with 3V PCI slots? I think the 66 MHz option for PCI needs them. There are 2 ways that I know of to connect a FPGA to 5V PCI. One is to use FET bus switches. The other is to use some other chip to connect to the PCI bus. One possibility is a PCI-PCI bridge. Another is an older technology FPGA. A 3rd is one of the PLX chips designed to connect to external logic. I think they can all be made to work, but they seem ugly to me. There are a couple more possibilites. One is to cheat. That means putting a scope on your PCI bus and noticing that even though it's a 5V bus, it's only got 3V signals on it. You would have to get out the scope again every time you wanted to plug in a new card. Ugly. Another option is to use PCI-Express. I'm not sure what is available for low cost FPGAs, but lots of mother boards now include PCI-Express slots. -- These are my opinions, not necessarily my employer's. I hate spam.
JM
John Miles
Sat, Apr 25, 2009 11:26 AM

It might make sense to layout something on the front section of
the board.
As long as that section isn't stuffed it won't get in the way.
Whatever is
likely to be most popular.

Does anybody know of an inexpensive FPGA card like that?

Tom eventually went with a USBee SX board.  The manufacturer doesn't say,
but I'm guessing there's a fair bit of RAM on those boards, because they
claim to support continuous streaming at 24 megabytes/second with no data
loss.  As it turned out he had a clock line available for the NRZ bitstream,
so he didn't have to sample at 20 MHz.

I fooled around a bit with a Xylo USB board and was able to recover a
clocked bitstream at 10 MHz, but with only the 512-byte FIFO on the FX2,
there's not much time for Windows to go out to lunch.  It's probably
possible to synthesize a large-enough FIFO in the gate array to make the
process reliable.

There are a handful of reasons why FPGA and PCI don't play
together well.
The main one is that old 5V PCI can generate 11V spikes from
reflections and
that is off scale with modern silicon technology, or at least the
branch of
it used in the FPGAs that I'm familiar with.

KNJN has been selling their "Dragon" PCI board (
http://www.knjn.com/?pg=cat&src=3 ) for awhile, and it looks like they just
glued the Spartan-2 chip to the bus.  Looks simple enough, if not especially
inexpensive.

They have a habit of not fully documenting their hardware in a way that
allows you to build standalone applications with it, though.  If inspired to
do anything with their hardware, make very sure the documentation is
adequate for the job.

-- john, KE5FX

> It might make sense to layout something on the front section of > the board. > As long as that section isn't stuffed it won't get in the way. > Whatever is > likely to be most popular. > > Does anybody know of an inexpensive FPGA card like that? Tom eventually went with a USBee SX board. The manufacturer doesn't say, but I'm guessing there's a fair bit of RAM on those boards, because they claim to support continuous streaming at 24 megabytes/second with no data loss. As it turned out he had a clock line available for the NRZ bitstream, so he didn't have to sample at 20 MHz. I fooled around a bit with a Xylo USB board and was able to recover a clocked bitstream at 10 MHz, but with only the 512-byte FIFO on the FX2, there's not much time for Windows to go out to lunch. It's probably possible to synthesize a large-enough FIFO in the gate array to make the process reliable. > There are a handful of reasons why FPGA and PCI don't play > together well. > The main one is that old 5V PCI can generate 11V spikes from > reflections and > that is off scale with modern silicon technology, or at least the > branch of > it used in the FPGAs that I'm familiar with. KNJN has been selling their "Dragon" PCI board ( http://www.knjn.com/?pg=cat&src=3 ) for awhile, and it looks like they just glued the Spartan-2 chip to the bus. Looks simple enough, if not especially inexpensive. They have a habit of not fully documenting their hardware in a way that allows you to build standalone applications with it, though. If inspired to do anything with their hardware, make very sure the documentation is adequate for the job. -- john, KE5FX
TV
Tom Van Baak
Sat, Apr 25, 2009 3:11 PM

There are two issues with this problem.  One is clock recovery.  The other is
getting a large chunk of data into memory and presumably on to disk.

This leads in to a question I've been meaning to ask for a while.  I've been
looking for a low cost FPGA on PCI board.  This might be a wild goose chase,
but I think it would be handy for a bunch of time-nut type applications.

Let me give you an update. First, thanks to all of you with
suggestions on my original data capture question. As John
mentioned I looked at a lot of alternatives with a special eye
towards USB 'scope and logic analyzer products, eventually
trying out the USBee SX.

I found a clock edge to go with my NRZ data so that made
my problem easier (avoiding having to oversample the data).

I was quite amazed at the performance of the USBee device.
Even on a tiny netbook PC it will stream 8-bit logic samples
at 10 MHz (24 max) with no dropouts into available memory
(which on my netbook is usually over half a gigabyte, giving
over 50 seconds of continuous capture).

I'm still working on the PC software to decode this mass of
data (maybe even in real-time) and working on longer runs,
but mostly I was pleasantly surprised how easy it is to obtain
high rates over USB2.0.

I was worried that I'd have to go with some expensive or very
complicated PCI-card based acquisition. So Hal, give USB2.0
some consideration before you settle on PCI.

/tvb

> There are two issues with this problem. One is clock recovery. The other is > getting a large chunk of data into memory and presumably on to disk. > > This leads in to a question I've been meaning to ask for a while. I've been > looking for a low cost FPGA on PCI board. This might be a wild goose chase, > but I think it would be handy for a bunch of time-nut type applications. Let me give you an update. First, thanks to all of you with suggestions on my original data capture question. As John mentioned I looked at a lot of alternatives with a special eye towards USB 'scope and logic analyzer products, eventually trying out the USBee SX. I found a clock edge to go with my NRZ data so that made my problem easier (avoiding having to oversample the data). I was quite amazed at the performance of the USBee device. Even on a tiny netbook PC it will stream 8-bit logic samples at 10 MHz (24 max) with no dropouts into available memory (which on my netbook is usually over half a gigabyte, giving over 50 seconds of continuous capture). I'm still working on the PC software to decode this mass of data (maybe even in real-time) and working on longer runs, but mostly I was pleasantly surprised how easy it is to obtain high rates over USB2.0. I was worried that I'd have to go with some expensive or very complicated PCI-card based acquisition. So Hal, give USB2.0 some consideration before you settle on PCI. /tvb