Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 15

Thread: What's with FDD cable termination?

  1. #1
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    181

    Default What's with FDD cable termination?

    I've had two FluxEngine (<plug> http://cowlark.com/fluxengine </plug>) users report cases when a single drive would not respond to the controller, but two drives on the same cable would. This sound very much like termination issues.

    My understanding is that the interface uses open-collector logic, where the lines float high via pullup resistors and are driven low by the sending side. The pull-up resistors in the controller are 3.5K to 8K (apparently they vary). Having two drives connected should halve the resistance at the drive end, as the pullup resistors are in parallel, but this should make it harder for either the board to talk to a drive, or for a drive to talk to the board, due to having to sink more current to drop the voltage enough. But I'm seeing the reverse, where it works with two drives but doesn't work with one.

    So I'm clearly not understanding what's happening here. Anyone got insight?

  2. #2

    Default

    not sure if it's relevant but 5.25" FDDs have removable termination resistor packs near the data cable edge connectors, whereas 3.5" FDDs have integrated termination

    could be something to do with that, i.e. not specifically two drives but one that happens to be terminated

  3. #3
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,626
    Blog Entries
    1

    Default

    Dave Dunfield has a practical guide to termination and how changing the resistors can help. http://www.classiccmp.org/dunfield/img54306/cnct.htm It points out that some 5.25" drives had integrated termination.

  4. #4
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    181

    Default

    User has said that they've tried two 5.25" drives and two 3.5" drives, with similar results for both. I've asked them to check whether the 5.25" drives have explicit termination.

    My PSoC5 board does have the ability to configure pins for analogue use. I wonder whether it would be possible to monitor the voltages on, e.g., the motor on/off line and detect whether the voltages are changing correctly? That might let me detect bad termination and warn the user.

  5. #5
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,652
    Blog Entries
    18

    Default

    Is the deficiency in the controller-to-drive or the reverse direction? Is the PSoC5 device a 3.3V one with 5V tolerant I/O?

    I prefer having the MCU drive a genuine 5V buffer to the device (e.g. 74LS244). Haven't had any problems in that respect.

  6. #6
    Join Date
    Dec 2005
    Location
    Toronto ON Canada
    Posts
    7,290

    Default

    FWIW, 5.25" drives usually have ~150 Ohm terminators and only one drive (the last on the cable) should have one installed or enabled. 3.5" drives have >1K resistors and usually (but not always) also have a jumper to en/disable.

  7. #7
    Join Date
    Feb 2017
    Location
    Zürich, Switzerland
    Posts
    181

    Default

    I believe there's one report that the motor started but no data showed up on the controller, and one report of nothing happening at all, but the user reports were moderately vague so it's hard to know for sure. The PSoC5 is a genuine 5V device; this was why I used it. (BTW, someone has figured out how to use a $2 Blue Pill to do much the same job: https://github.com/keirf/Greaseweazle. When I get time I want to evaluate this to see if I can replace the FluxEngine hardware with it.)

    The only realistic failure mode I can think of is if it's a 5.25" drive with a 150R terminating resistor and the PSoC5 can't sink enough current to get it below 2V --- but that's only 20mA, which I know it can do, and it doesn't explain why this is happening with 3.5" drives.

  8. #8

    Default

    Quote Originally Posted by hjalfi View Post

    The only realistic failure mode I can think of is if it's a 5.25" drive with a 150R terminating resistor and the PSoC5 can't sink enough current to get it below 2V --- but that's only 20mA, which I know it can do, and it doesn't explain why this is happening with 3.5" drives.
    Most 3.5 in drives use active termination, not resistor termination.
    Also, chips like the blue pill have not only a maximum drive rating per pin but also a maximum ground current rating. Using several pins at maximum rating can exceed the maximum ground rating. It is quite possible that adding the additional drive exceeds the ground rating and broke the camels back.
    Dwight
    Last edited by Dwight Elvey; November 21st, 2019 at 09:41 AM.

  9. #9
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,652
    Blog Entries
    18

    Default

    I don't like the Greasweazle in its current design--no buffering and using the integrated pullup. It probably works passably on 3.5" drives, but I wouldn't use one with an 8" drive. I've built one here using an LS244 (MOTOR ON/ enables the buffers) to buffer the outputs, but haven't given it a try--it depends on the USB being fast enough to stream sample data while reading. Given that USB response time isn't guaranteed, I'm not sure that it's ready for prime-time use. I'd rather use an MCU with sufficient memory to read an entire track of samples and then dispose of the data.

    I prefer using an STM32F407 to handle the job (196KB of SRAM). Cheap enough and there's no particular demand on the host PC--data gets written to an SD card. For $12 shipped, it's hard to beat.

  10. #10
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,652
    Blog Entries
    18

    Default

    Okay, I dug out the PSoC5 datasheet.

    The chip has on-board voltage regulators, but the core runs at 1.8V. No surprise there.

    But the GPIO setup is a bit odd--and that may account for the problems. The datasheet states that GPIO inputs must not be higher than Vddio. I'm assuming that Vddio is 5V and coming from the USB connection--and that the disk drives have their own, separate power supply. That could be a problem. Put two drives on the supply rail and the 5V drops low enough to ensure proper functioning.

    This is different from most other MCUs with 5V tolerant inputs--there's no 5V reference supply and the limit is stated simply as 5.5V or so--i.e. it gets clamped to some level internally.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •