Interface extension cable ?

edited August 2007 in Hardware
I'm wondering if I can make an extension cable for the Speccy's expansion port. It's not the part of making it I'm uncertain about, but wether the length, or which length, would affect the data-transfer.
Post edited by Pilsener on

Comments

  • edited August 2007
    Well I don`t know if this will help or not.
    But on a +3 the printer cable I use is 3 feet long works fine.
    BUT say you have an extension cable of 12" long I don`t think that will be a
    problem.
    How long are you thinking of?

    I would not go more than 12" any way because of any data loss.
    And the +3 printer port is not the same for data transfer as the Spectrum expansion port.
    I could well be wrong there so don`t take it as cast in stone.
    I do know of some computers that a long extension is not really recommended in some circumstances.
  • edited August 2007
    Hang no a sec, I remember now, some years ago some one made an extension cable for the expansion port it was 8" long and I never had any problem with that.
    It was a one of for me at the time. I remember him telling me don`t go any longer than 12" with that sort of thing.
  • edited August 2007
    I was hoping it could handle ca 20 ".

    Gee....now I really got keen about finding out this limit. But, of course, the quality of the cable also is important.
  • edited August 2007
    As far as I know, it's about 8" (fnar!)

    You're not supposed to add anything to the distance between the +D and the Spectrum, but I've added a thru-port on the rear of a Kempston interface and I suppose I've extended things by 2".

    I guess you'll have to find the limit yourself, but like I said, 8" is a starting point.
    Oh bugger!<br>
  • edited August 2007
    What clock-frequency does the bus work at ?
  • edited August 2007
    On my own Z80 based computer, I've extended the bus through about a foot of cable (plus the breadboard, which has awful stray inductances and capacitances) without a problem, running at 6MHz. But my thing is exclusively CMOS, which has lower output impedances than the old NMOS and TTL stuff in a Speccy, and is therefore much better equipped to overcome the cable's capacitance.

    It probably depends what you're plugging into the extension. 20 inches I would have thought would be pushing it quite a bit (i.e. I'd be a bit surprised if it was reliable). The capacitance of the cables would significantly start to slow the rise and fall times of signals when you're getting that long (especially the transition from 0 to 1 since with NMOS this is done with a pull up resistor rather than a P-channel FET) - and some peripherals probably won't like it.

    Having said that, I've given an NMOS Z80 plenty of abuse (i.e. breadboarded system with LEDs connected directly to the bus outputs!) and it still worked at 4MHz.
  • edited August 2007
    Winston wrote: »
    But my thing is exclusively CMOS, which has lower output impedances than the old NMOS and TTL stuff in a Speccy, and is therefore much better equipped to overcome the cable's capacitance.

    This actually makes it worse from a transmission line point of view which it seems is what Pilsener's on about :) The reason is you get much faster edges which puts higher frequency signals on the cable.

    The spectrum's bus is super slow (~3.5 MHz) with rise times no faster than 10ns for sure so a long cable will be fine without having to worry about transmission line effects. A rule of thumb is if the distance across which the fastest rising edge is smeared is less than 3 times the length of the cable you should be thinking transmission line. For 10ns rise time and guessing at the speed of light in a typical copper ribbon cable to be 1.8*10^8 m/s, we have the distance over which the rising edge is spread at 10ns*1.8*10^8m/s = 1.8m. So one shouldn't have to worry about transmission line effects for cables less than 60cm = 23 inches long. And realistically this is very conservative since 10ns rise time is highly unlikely (double it and achieve 46 inches of cable length allowed) on a spectrum bus and a little ringing on the signal is not going to hurt.

    But this is only part of it. Longer cables mean your drivers have to drive a larger lumped capacitance (since we're not treating the cable as a transmission line) but I think there is a fair bit of margin with such a slow bus as well. If the edges are slowed down too much you'll see weird things happen (higher power consumption, clock synchronization issues, etc). Which is what Winston was on about.
  • edited August 2007
    While you don't have to worry about transmission line effects, there is the capacitive loading introduced by the cable (which delays signals and distorts edges) and issues with cross-talk and inductive noise. Cross-talk will not be a problem in synchronous digital circuits if there are healthy timing margins for signals which is probably the case for a 3.5MHz bus. But inductive noise + distorted edges can be more of a problem with really long cables because they pick up em noise from the environment. If you can imagine a signal path along one signal's conductor through a circuit element at the far end of the cable, back through the single ground conductor on the cable to the zx's power supply, the amount of noise picked up is proportional to the area of that signal path's loop. The noise is additive at the destination of the signal and can cause the wrong value to be read on a clock edge at the signal destination particularly if edges propagate slowly (due to conductor capacitance) and timing margins are tighter. There is also the IR voltage bump that the ground conductor at the destination will experience where all signals will be referenced to at the destination, which effectively reduces the voltage level of highs seen (and the resistance of the cable, R in that equation, is proportional to cable length).

    The point is there are a lot of little issues that are very difficult to quantify (normally you design to minimize these problems with correct layout, appropriate drivers, etc) and one cannot know for sure if cable lengths will be a problem without trying it out and measuring real signals at the destination.
    Timex specified maximum capacitive loading for the ts2068's expansion bus in their technical manual from which you could calculate maximum cable length; you could do something similar for the spectrum by looking at ic datasheets but that is really a huge bother and are likely quite conservative figures anyway. Since you're not selling it, just trying it makes most sense.
  • edited August 2007
    can't argue with that!
    Oh bugger!<br>
  • edited August 2007
    But inductive noise + distorted edges can be more of a problem with really long cables because they pick up em noise from the environment.

    They don't even need to pick up noise from the environment either - the difference between my Z80 system on breadboard and when it was on a 160x100mm PCB was like night and day when you examined a signal on the oscilloscope. Stray inductances and capacitances on the breadboard meant an awful lot of "ringing" in the signal - little sinusoidal oscillations at some frequency higher than the clock. On the breadboard, there was a LOT of this. Didn't affect the operation, though, except for when using an ADC.

    CMOS parts at least seem to be reasonably able to cope with a lot of noise since they swing the outputs rail to rail and have low output impedances - I stuck a 5 watt aviation transciever right over the breadboard and keyed it, and the thing kept working. Also, a mobile phone. But forget trying to use an ADC :-)
  • edited August 2007
    Tomorrow will be the day. I have unsoldered an ISA-slot from an old PC and even sacrificed an Amiga 3000 Daughterboard to find the right connectors. The cable is 5 ft long, and is a good old SCSI 50-pin cable.
    Not all lines are used, so this cable seems to have enough lines.

    Now I need tips on how to push this extension as hard as possible to see if the lenght of the cable wull make any fuzz.
  • edited August 2007
    aowen wrote: »
    Depends what you plug into it. The DMA in the MB02+ needs to be the first thing plugged into the expansion bus. The problem is that it's really a very dirty connector. It would be much better to take a clean set of lines directly from the Z80.

    But you can use internal DMA interface for ZX Spectrum, and to ZX BUS connect MB02 interface without DMA chip.
    http://velesoft.speccy.cz/data-gear.htm
    http://www.worldofspectrum.org/forums/showthread.php?t=15109
Sign In or Register to comment.