programmable digital I/O.. what should I buy?

Nov 09, 2005 3 Replies

Hi Everyone,



I want to make a programmable digital I/O device to coordinate some experiments I'm performing. I'm not sure what to buy, please help me out.


Here's what I need: at least 8 channels of digital I/O timing resolution of 10 microseconds or better on-the-fly digital output changes based on digital input (easily re-programmable via computer)



For example, when channel 2 goes high, less than 10 microseconds later, five 100 microsecond long pulses at 100 Hz are generated on channel 4.


Since my timing requirements are so tight, I can't run it off of windows to change the outputs based on the inputs. I've been told that an RTOS (real-time operating system) running on a microcontroller is overkill. I only want to make one of these, but I'll use it a lot. I can program in C++ just fine and would like a device that comes with some software to make it easy to program. Ideally, this would be a USB-attached device, but I'd be interested in PCI board solutions as well.



So what should I buy?



Thanks in advance,



-james



I will assume that you want a PCI board for the Windows environment.

Lets see what you need.

Windows (any flavor) is not real time. When the OS goes away, it will come back when its ready.

So a PCI board with a FIFO on the digital side would be required

TImers are good for this type of thing. So you need a PCI board with a bunch of programmable timers.

Most RTOSs are 1 to 10 milli-second timing. Micro-seconds they can not do.

This sound like a custom design. I doubt you will find something off the shelf.

A PCI board with an FPGA on it may do what you want. ( those are cheap $200-$500)

Then you would have to learn FPGA programming or pay for programming services.

Good Luck, keep us informed.

Dolnald

That turn-around time means either a local Microcontroller, or a CPLD. Times are just slow enough to be OK on a nimble Micro, so you can avoid CPLD/FPGA solutions.

Look at something like C8051F064EK

formatting link

That has Two USB links, 128K RAM, and 8 IO pins on a header, with a

25MHz core - ie 10us to that is 250 machine cycles, or 100-150 opcodes. Price is just $25, so you could use more than one if multichannel/event SW gets too complex.

-jg

They're not directly programmable in C++ but I use the Plug-A-Pod and MiniPod from New Micros

formatting link
They're inexpensive and have a built-in RTOS.

Noel

Noel Henson www.noels-lab.com Chips, firmware and embedded solutions www.vimoutliner.org Work fast. Think well.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required