Electronics > Projects, Designs, and Technical Stuff

Home Brew Analog Computer System

<< < (42/66) > >>

GK:

--- Quote from: Odysseus on December 15, 2013, 08:54:42 pm ---It's possible to blank a trace in LTSpice by forcing a trace to become "invalid", i.e. by computing the logarithm or square root of a negative value.  However, this only works by doing the math in the waveform viewer, not in an arbitrary source.

An easy way to do this is to generate a blanking signal with a high value of 10V and a low value of -1V (or -anything).  Then in the waveform viewer, multiply your signal of interest by log10(V(blank)).

--- End quote ---


That's a neat trick. Thanks!



GK:

--- Quote from: c4757p on December 15, 2013, 01:33:57 pm ---That is some real commitment to this whole "analog" thing. :-+ I'm pretty sure I'd have just done a raster readout. You've executed it very nicely. That looks easily as good as the "perfect" SPICE plots.

And mildly off topic, but the traces all lined up nicely on the beautiful blue screen of your 551 is a work of art by itself.

Damn - the more you make me drool, the more I'm going to want to play around with this myself, and then I won't get anything done! :)

--- End quote ---


Compare the pic in my post above to the scope photo. I think I've created the reference sine and cosines with a sufficiently high degree of fidelity.
The five traces on the 551 were produced by a pair of Type 1A1 dual trace plug-ins in the mainframe and a Type CA dual trace plug-in operating externally in a Type 127 preamplifier power supply; all operating in the "alternate" trace switching mode.
I have three 1A1 plug-ins, but one has not yet been restored and has a dodgy channel. That's why I had to resort to using one of my Type CA plug-ins in the Type 127. To operate in "alternate" mode however, the external "trigger" input of the Type 127 needs to be connected to the timebase "+Gate" output pulse provided on the front panel of the oscilloscope, so that the Type CA's trace switching bistable toggles at the end of each sweep.
Unfortunately, however, the Type 127's alternate trigger input is not compatible with the "+Gate" logic thresholds provided by the Type 551 oscilloscope, but it is compatible with the "+Gate" signal levels of my Type 545B oscilloscope. I got around the issue by externally triggering my Type 545B's timebase A from the Type 551's "+Gate" output, so that the timebases of the two oscilloscopes operate in synchronicity, and then triggering the Type CA via the "trigger" provision of the Type 127 from the "+Gate" pulse of the Type 545B.   

You're right about this stuff consuming a great deal of time. I'm going to have to give it a rest now for a few days to attend to other obligations and chores, amongst which are two new babies to look after.............



GK:
Haven't expanded the Fourier character ROM to include any character other that 3 at the moment, so regardless of the contents of the display RAM, the only character displayed is a 3.

It's all quite simple, really. The synthesized X and Y deflection waveforms to generate a specific character are traced out during each period of the 20kHz fundamental - so every 50uS. The first and last 12.5% of this period is blanked - this is the Z or intensity modulation for the CRT display.

The 20kHz fundamental clock feeds a 7 stage ripple counter. The first 4 LSB's of the counter feed a 4-bit R-2R DAC, which generates a 16 step staircase waveform that advances on the tracing out of each successive character. This staircase waveform is summed with the synthesized X waveform to generate the complete horizontal deflection signal for the display.
The 3 MSB's of the ripple counter feed a 3-bit R-2R DAC, which consequently generates an 8 step staircase waveform that advances each time the horizontal staircase re-traces back to zero, at the end of a complete line of 16 characters drawn out onto the CRT. The 8 step waveform is inverted and then is summed with the synthesized Y waveform to generate the complete vertical deflection signal for the display. Every advancement of the 8 step waveform thus produces a new line of 16 characters. There are therefore a total of 128 characters displayed, in 8 rows of 16. The full screen is therefore drawn out every 128*50uS = 6.4mS. This gives a refresh rate of 156.25Hz, so there is no perceptible display flicker.

The 7 bits of the ripple counter (Q0 through Q6) also assert the address lines of the screen RAM, while the data output lines of the screen RAM assert the character ROM analog multiplexer, which subsequently selects the character to displayed. There is also provision for the display of blank character spaces by decoding an assigned data value from the screen RAM to assert the blanking signal for the full 50uS character interval.

On top of all of that there is just a little more logic for enabling remote programming of the screen RAM - this includes bus routing and temporary data latches. To program the display, firstly a 7 bit value is placed onto data input lines of the parallel programming port. This value corresponds to the character location on screen to be programmed. An address latch line is then strobed and the data value is placed into the address data latch. A 5-bit data value for the actual character to be displayed is then placed onto the data bus. A character latch line is then strobed and the data value is placed into the character data latch. The control logic then automatically programs the screen RAM from the data values stored in the address and character data latches during the next subsequent blanking interval. This way the screen update is seamless, with no interruption to the display while the screen RAM is being user programmed.

The final version of the display system will also incorporate a "phosphor saver" circuit, with will simply be a pair of non-synchronized, free running ultra low frequency oscillators feeding +/- 10% deflection factors into the horizontal and vertical deflection signals. This will cause the entire display as a block to move/shift around on the CRT face by a small amount at an (at a glance) imperceptibly slow speed, thus saving the phosphor from burn by any static characters, as no character is permanently fixed to the one same position.

I will of course have some prettier/fancier CRT displays to post photos of once I have completed the character ROM.   

dannyf:
GK: that's some good stuff. Keep it up!


--- Quote ---Analog Computer System
--- End quote ---

Sh!!!!!! Please don't tell those folks to whom computers can only be digital.

GK:

--- Quote from: dannyf on December 21, 2013, 01:31:46 pm ---GK: that's some good stuff. Keep it up!


--- Quote ---Analog Computer System
--- End quote ---

Sh!!!!!! Please don't tell those folks to whom computers can only be digital.

--- End quote ---


Well, despite the usage is was to some degree accepted that the term Analog Computer was a bit of a misnomer. For the pedant, Analog Simulator might be the technically correct, and preferred term.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod