Josh Dersch wrote:
Brad Parker wrote:
I would guess that a simple parallel port adc on
a PC could do very
well displaying a reasonable number of dots on a scope with intensity
control... not very impressive given what fpga's do now shading
polygons,
but fun none the less.
A couple of years ago I tried this -- I built two very (very) simple
parallel-port DACs (one for X, the other for Y) and I had them connected
to linux machine with two parallel ports. I wrote a small test app to
rapidly write data to the output pins on the parallel ports. Plotting
points on the oscilloscope worked OK (aside from the poor precision of
my DACs), but drawing arbitrary vectors seemed to be impossible because
I couldn't figure out a way to change the data sent to the parallel
ports for X and Y at /exactly/ the same time. Since X would be changed
slightly before Y (or vice versa) I'd get a stairstep effect instead of
a single line from point A to B.
Maybe a faster machine would be able to reduce this effect (I was using
a Pentium Pro 200), or clever use of DMA...
Always load X (for example) before Y. Then, insert an extra
buffer between X's parallel port and the X D/AC. Clock BOTH
D/AC's off of the Y "load" pulse. So, write to X doesn't
alter the X D/AC *but* saves the output in X's "holding latch".
Then, updating Y causes X's held value to fall into the X D/AC
at the same time that Y's value is falling into the Y D/AC.
Another problem you will encounter is handling big motions.
The X or Y deflection amp will slew at it's rated bandwidth
and allow X (or Y) to traverse the difference in values as
quickly as possible. Meanwhile, the other channel is doing the
same thing -- but for a different magnitude of change.
So, you don;t necessarily get a straight line connecting
the X0Y0 with X1Y1.