views:

80

answers:

5

In the world of embedded software (firmware) it is fairly common to observe the order of events, take timings and optimise a program by getting it to waggle PIO lines and capturing their behavior on an oscilloscope.

In days gone by it was possible to toggle pins on the serial and parallel ports to achieve much the same thing on PC-based software. This made it possible to capture host PC-based software events and firmware events on the same trace and examine host software/firmware interactions.

Now, my new laptop ... no serial or parallel ports! This is increasingly the case. So, does anyone have any suggestions as to go about emitting accurate timing signals off a "modern" PC? It strikes me that we don't have any immediately programmable, lag-free output pins left.

The solution needs to run off a laptop, so using add-on cards that only plug into desktops are not permitted.

+1  A: 

You can get USB dongles that create serial and parallel ports. Make sure you do your homework though, as you want to be sure that you can get all the Pins and all their data, some of the cheaper units don't do everything you need.

KevinDTimm
But then you need to take the USB latency into account... which is probably unpredictable.
xtofl
yes, that will be a problem. Are there PCMCIA (pc-card) serial ports?
KevinDTimm
My suggestion then is non-optimal; use an old laptop. Really :) Some newer laptops though may have docking stations with serial/parallel ports, that's another option.
KevinDTimm
+1  A: 

Laptop with a docking station and old-skool parallel port. An alternate is to use a "smart" box connected via USB that handles the timing for you and simply reports the results over USB.

You may want to look into some of the USB logic analyzers like the Saleae Logic kit.

Peter Loron
A: 

USB logic analyzers exist, some are even chip. But keep in minds @xtofl's comment about timing.

Brian Carlton
+1  A: 

I've got a PCMCIA parallel port from Quatech - model SPP-100. It is a "real" parallel port - not a USB-Parallel port one. It is "real" enough to allow me to use a parallel port dongle with Windows 7 x64 on my laptop which doesn't have a parallel port.

peter_mcc
+1  A: 

How about using the audio line-out port? That should at least have consistent latency since audio applications care about that. That's the only modern computer output I can think of that isn't packet-based or dedicated to other purposes. It only has two channels (though external USB audio devices could expand that, and hopefully also have consistent latency through whatever the protocol does), and there might be a DC filter, but you could at least produce reliably timed pulses.

Kevin Reid