Retromaster’s Electronics Projects

…related to old computers and other assorted stuff…

Cumulus Bus Saga Continues

Posted by retromaster on August 22, 2011

Here is today’s second post: Another update on Cumulus.

First, the bad news: It looks like with the most recent change to CumuluBus, Cumulus bus errors were greatly reduced, but not completely eliminated. This is the case with the long cable setup.

Now the good news: I have tried the short cable setup (using the two closely-located connectors on the IDE cable), and during extensive testing, I have not encountered any bus-related issues.

What does this mean? It means that on some Orics the long cable setup may not work properly. In these cases, Cumulus will most probably still work fine in the short cable setup, though. It will be a somewhat inconvenient, though, as the cable length is not more than 10cms.

Why does this happen? Here is my guess:

The CPLD used in the Cumulus (XC95XL series) is a relatively modern part (at least compared to the Oric, that is). It has pin signal rise times in the range of a few nanoseconds.

In the current Cumulus design, the CPLD is connected to the data bus over a level-shifter IC (also w/ fast rise times) and directly connected to most of the bus control signals. The connection is by means of the 80-wire IDE cable. When the length of this cable exceeds a certain threshold, the cable starts to exhibit “transmission line” effects. Without the necessary termination on both ends of the cable, these effects cause significant signal integrity issues.

Even with the “SLOW” rise time setting on the output drivers, the XC95XL is fast enough to limit the length of the cable to just about 10cms.

I have to admit that I have overlooked this aspect of the design. I thought that since the frequencies on the Oric bus are so low, there would not be problems over a long cable. However, I failed to see that it is the rise time that’s the real governing parameter here, which was a mistake. This is most likely why things go wrong with the long cable setup.

One way of solving this problem could be by adding “slow” (74hc or 4000-series CMOS) buffers on the Cumulus side. Since these parts have much higher rise times, the permitted cable could be much longer. An additional advantage is that this way, possibly, CumuluBus could be eliminated! However, it would take a significant redesign effort, and it would enlarge the main PCB by quite a bit. To tell the truth, I am not really motivated to go through another design cycle, especially considering that Cumulus seems to work fine with the short cable setup.


5 Responses to “Cumulus Bus Saga Continues”

  1. Jeff said

    Another possible solution : Add resistors in series on the Cumulus side (something between 10 and 100 Ohms). This may help to adapt the impedance of the bus. Have you tried this ?

    Do you see ringing signal(s) at the oscilloscope ?

  2. retromaster said

    I’ve thought of your suggestion before, but I have not tried it. First of all, too many signals ๐Ÿ™‚ I’d need to cut a lot of traces and it would be very messy… And secondly, if the resistor values needed are too large, they would cause a voltage drop too large on the signals, causing the voltages to fall below the required thresholds (almost as high as 4V) on the Oric side. Also, some of the signals (like MAP) are actually open-collector signals so this series-resistor technique may not work well.

    However, I was thinking about building an adapter PCB to be attached directly to Cumulus, just to actually verify that it’s the impedance mismatch causing the problems (I am seeing the ringing signals at the o’scope). It could have series resistors like you suggested, or buffers like what I had in mind… I think both ideas need to be tested to find a cost-effective and properly working solution.

    Actually, there is yet another solution: To add fast schottky diodes to ground on the Oric (CumuluBus) side. I’ve tested this with the MAP signal, hoping for a quick fix, and while it does actually kill most of the ringing, it was not enough just to apply it to the MAP signal.

  3. Jeff said

    When i read your descriptions of the problem, i am almost sure that this is an impedance problem (ringing signals is a strong evidence) . About the value of the resistors, 50 Ohms should be ok for a start, and the voltage drop will be low since there is almost no current on the bus, the resistor will only slow down the rising/falling speed (and reduce/kill the ringing of course ๐Ÿ˜‰ ).

    Adding series resistor is a common practice on long // bus: Have a look to the printer/parrallel port design ๐Ÿ˜‰

  4. retromaster said

    Thanks for the link, Jeff. In my mind, there was no doubt that the issue was impedance mismatch, too. I am aware of several termination schemes used for impedance matching. But you are right about the voltage drop not being a problem in this case, it seems I was I momentarily confused.

    More broadly speaking, what fooled me here is that the original Microdisc unit was connected over long cables to the Oric mainboard, and I do not recall anything about termination in the original schematics. So I designed Cumulus thinking that this would not be a problem, but apparently it was a mistake to neglect the “fast” drivers on the CPLD.

  5. Symoon said

    From a future user and selfish point of wiew, it would be cool to say bay-bye to CumulusBus! But the most important is to keep motivation up, being the fuel of any project ๐Ÿ˜‰ Whatever the design, Cumulus will be a great step forward and bring to Oricians something they’ve been dreaming for, for about 15 years now.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: