• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Tiny Turbo Development: Like Spicy O'Clock for Power Macs (or anything with a half-can oscillator)

obsolete

6502
I had an idea about two weeks ago:
1765582583251.png
1765582598152.png

I have a lot of ideas; not all of them are good, and not all of them get seen through, but this one seemed good enough, and was pretty simple to implement, so here we go:
IMG_20251212_125520_521~2.jpg
IMG_20251212_125633_413~2.jpg

It's a potentiometer-adjustable silicon oscillator that fits in the common half-size (8-DIP) metal can oscillator footprint, based on the LTC6905. It's partially inspired by Kay Koba's Spicy O'Clock, but I can't say it's based on it, since Spicy O'Clock is a commercial product and the schematic and BOM are not public, as far as I know. It's also inspired by wiretap's Full Can Variable Oscillator but obviously does not use the Si5351. Here's my schematic:
1765583429382.png

I pretty much just followed the LTC6905 datasheet, threw a ferrite bead on the 5V input for good measure, then laid out a board to fit everything in the DIP-8 footprint. I'll publish the final version on GitHub when I'm satisfied that all the bugs are worked out.

I came up with the 12k fixed resistor and 10k pot using a spreadsheet and the formula in the LTC6905 datasheet:
1765584649489.png

Because I had JLCPCB assemble these with Bourns 3224J-1-103E, a 12-turn potentiometer, it's really easy to dial them in to a precise frequency. Each full turn is approximately 2.5MHz. I bought the LTC6905s on Mouser and assembled them myself because it was a lot faster and probably cheaper that way than trying to have JLC source them.

Here are the test subjects:
IMG_20251212_125755_793.jpg

I have the 400MHz Sonnet G3 card I got from @Byte Knight a few months ago, and a 180MHz 604e card I bought from @jmacz. I installed oscillator sockets in both cards and am testing them in my 7600/120. As you can see, the Tiny Turbo potentiometer points upward on both cards for easy adjustment without removing the card from the machine; unfortunately, the Apple card has a big FET in the way, so the pot can't be reached with a screwdriver on that one. My solution was just to install the oscillator socket on the opposite side of the card. The machined pins I soldered to the Tiny Turbo board allow it to be installed either way. Without the machined pins, the board is fully within the half-can oscillator form factor and can be installed with small pieces of solid core wire as legs. Cut off pieces of resistor or capacitor legs work nicely.

The first thing I did after assembly was pop a Tiny Turbo into the G3 card, install the card in the 7600, and fire it up. It worked great! The Mac bonged and booted to the desktop, and Gauge Pro reported the expected frequency. After reducing the multiplier on the G3 from 8x to 7x, I found I could get it up to a 55MHz bus speed; beyond that, things got unstable. Furthermore, I was able to adjust the bus speed while the machine was running. The first time I did this, I fully expected the machine to crash, and I was shocked when it did not. With Gauge Pro open, I could reach inside the case, turn the potentiometer, hit Recalculate on Gauge Pro, and there were my new bus and clock speeds. Fun!

Unfortunately, things didn't go so well with the Apple card. The 7600 wouldn't bong with the Tiny Turbo installed, so I started failure analysis.

Here's an oscilloscope trace of the Tiny Turbo's output while installed on the Apple CPU card:
tt_apple.png

Holy clock jitter! Looking at the Std. Dev. of the period measurement; that's horrible.

Here's a crystal oscillator on the same card for comparison:
xo_apple.png

Yeah, compared to the crystal, the output from the silicon oscillator is a jittery mess.

It worked on the Sonnet G3 card, though, so I probed that one up to compare:
tt_G3.png

Still ugly, but better. Also, apparently there's no load on the oscillator output in the Sonnet design; look at that amplitude.

Here's a crystal oscillator for comparison again:
xo_G3.png

My conclusions so far are that the jitter on the Tiny Turbo output is horrible and that the Apple card design loads the oscillator output a lot more than the Sonnet card does. On the Sonnet card, I measured 400 ohms across the oscillator output and ground, and no capacitance (with no oscillator installed). On the Apple card, I measured infinite resistance, and about 100pF.

I went back to the workbench and connected a Tiny Turbo to a 5V bench power supply and scope probes. Here's its output in that configuration:
tt_bench.png

The amplitude is even higher than when installed on the Sonnet card, which is to be expected with absolutely no load, and the jitter is much improved.

Here's the crystal oscillator I desoldered from the Sonnet card with the same power supply and probe setup for comparison:
xo_bench.png

The crystal oscillator output is still significantly cleaner, but the Tiny Turbo output got a lot better when removed from a CPU card.

To test with some load on the output, I found a 100pF capacitor in my parts drawer and clipped that across the Tiny Turbo clock output and ground:
tt_80pf.png

Okay, not too bad.

Here's a crystal for comparison in the same configuration again:
xo_80pf.png

My conclusions at this point are that the Tiny Turbo is okay with a 100pF load (even though that's more than the datasheet suggests), and that the jitter is way better on a bench power supply than either CPU card, but especially the Apple CPU card.

The LTC6905 datasheet talks a lot about jitter, especially in relation to power supply noise. One line stood out to me: "...power supply ripple in excess of 20mV at any frequency may increase jitter." Well, I only have 0.1uF C1 across 5V and GND at the LTC6905. Let's throw a 1uF in parallel and see what that does:
tt_apple_1uF.png

That's still ugly, but it's a bit better than before. And the 7600 bonged! No boot, though. Still, this told me I was on the right track.

I decided to check on the effect that ferrite bead FB1 was having, just in case it might be part of the problem. Here's a trace with FB1 removed and its pads shorted across:
tt_apple_1uF_noFB1.png

Okay, yeah, that's way worse. No bong. Seems like the ferrite bead was a good idea in the first place.

How about even more capacitance? I re-installed FB1, then added a 10uF electrolytic cap in parallel with the 1uF and 0.1uF MLCCs already on the board:
tt_apple_1uF_10uF.png

The numbers aren't any better than they were with just the 1uF and 0.1uF, but with the 10uF cap added, the 7600 bonged, booted, and was stable for a long as I cared to use it!

Unfortunately, the board is no longer in form factor:
IMG_20251212_165802_870.jpg

So that's where I am today. If anyone has read this far, thank you! If anyone has any ideas on further improving the clock jitter, please let me know. If anyone would like one of these to play with, send me a message, I'd be happy to ship you one at cost.
 
Last edited:
Nice project! As you've found, bypass caps near the power input to the chip can be important. One easy thing to try could be replacing the ferrite with a low value resistor, like ~5-10ohm depending on the load. Does the datasheet say anything about what to do with the floating end of the trim resistor? Adding a high value resistor between that and ground might help clean up the input to the chip. As a test, you could also remove the adjustable one, and try fixed SMD ones. The construction of the trim resistor could be a factor, as multi-turn versions often have a wire-wound structure that can also introduce some inductance. If the fixed SMD setup is better, then playing with C2 may help clean up the input from the trim resistor.

Also, does that clock signal go out to the whole computer, or is that just for the CPU? I don't think it should be floating, but is this only with the CPU board unplugged from the computer? There is usually a resistor out near the end of the transmission line to load it slightly and reduce reflections, etc. You may find such a resistor (or pads for one) near/under the CPU, and adjusting this may also help. If you measured 400ohm on one board and can locate that resistor, the other board may have a similar part in around the same location. I'm sure there are better clock signal experts on the forum that will hopefully chime in.
 
Wow, this is so neat. Love threads like this. I don't know enough in this space to contribute but going to be watching this with much interest :)
 
Thanks guys! Yes, I was measuring with the CPU board unplugged. The clock goes out to the rest of the computer, but only via a buffer, MPC904 on the Apple card and ICS9112-17 on the Sonnet card, so it should be terminated on the card. Weirdly, the MPC904 appears to be designed to work with a crystal, not a full oscillator; I'll have to take a closer look at that. I also plan to try the other suggestions you mentioned, @herd, thanks.

Despite the jitter I couldn't resist playing around a bit at 60MHz bus speed today :)
 
Back
Top