Author Topic: Do IDE data lines need pull-ups?  (Read 459 times)

0 Members and 1 Guest are viewing this topic.

Offline jrmymllrTopic starter

  • Regular Contributor
  • *
  • Posts: 137
  • Country: us
Do IDE data lines need pull-ups?
« on: June 27, 2024, 01:49:46 pm »
This is somewhat of a long story but I think it's needed for background. I'll try to keep it short.

I obtained a number of these 44 pin SSD modules (photo attached). They are not 2.5" format, but has the same pinout. They work on a standard 40 pin IDE port when using a passive adapter except they like to talk on the bus when /IOR is asserted, even if neither IDE chip select is asserted. This causes weird problems like detected serial ports that don't exist and the floppy change line no longer works. This may not matter on IDE ports that have bus transceivers on all 16 data lines, but some newer/cheaper I/O cards connect the data lines right to the ISA bus. Incidentally, I've seen the exact same problem on CF cards. So I designed a PCB that the SSD and a power cable will plug into (photo attached), that plugs directly into an IDE port. It contains HCT245 and HCT244 bus drivers and a PLD to simplify the logic. It has power and ground planes with decoupling caps on everything so I think signal quality is no issue. I've used these on multiple older systems with absolutely no problems: a 286 with one of those cost reduced I/O cards, a Compaq 386 with integrated IDE, and a 486 with MR BIOS and an I/O card with the full transceivers on the IDE port.

So when I obtained a new basic 386 board and stuck an exact copy of those cost reduced I/O cards into it and replaced the AMI BIOS with MR BIOS, I assumed my SSD board would work without complaining. Nope. No matter what I did, it wouldn't boot from the SSD. "Starting MS-DOS..." is as far as it would get. I swapped the adapter boards around and the fault follows this motherboard. Interestingly if I booted DOS from floppy, I could access the SSD without issue. If I plugged a standard 3.5" IDE hard drive into the adapter board (with passive adapter of course) it would boot from that and work perfectly. I went back to the factory AMI BIOS and it made no difference. I tried the SSD and a CF card directly to the IDE port and they both worked, except for the weird problems I described earlier. And no, this isn't something that fdisk /mbr fixes. I did that.

Somewhat by accident I figured out if I put 1K pull-ups on the IDE data lines of the SSD side of my board, it fixed it. I ordered some SMD resistor networks that became a somewhat elegant bodge, attached to the HCT745's, and that took care of it. Note the photo doesn't show the bodge but they are attached directly to each '245.

I cannot find any information on this. The best I've been able to do is discover the I/O card designed by this guy has the exact same type of pull-up. His are user selectable with a jumper, but unfortunately he does not go into any detail about it at all: https://www.alexandrugroza.ro/microelectronics/system-design/isa-io-interface/index.html

So does anyone know what is going on with this? I'm happy this makes it work, but puzzled as to why three other computers are happy without them, but a forth needs the pull-ups even though it uses the same model I/O card and SSD.

PS. if anyone wonders what the round thing is with the "+" on one side, it's a mini-speaker. It makes clicking noises when the drive is accessed  :)
« Last Edit: June 27, 2024, 01:53:51 pm by jrmymllr »
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16349
  • Country: za
Re: Do IDE data lines need pull-ups?
« Reply #1 on: June 27, 2024, 08:23:12 pm »
Looks like the card expects the computer side to have pull up resistors on the select lines, to provide a correct logic one level, but your motherboard does not provide them, probably because it is using tri state drivers to operate them, relying on the drive having a TTL pull up in place to assert the inactive logic level. so best to add the resistors, as this will make it compatible with all motherboards, though you probably will want to make the pull up a higher value, as the HCT is not really capable of always delivering a TTL low with the 5mA sink, so probably a 3k3 resistor, or anything from 2k7 to 4k7 will work, and not cause drive issues with some combination of weak sink drivers and high triggering inputs.

The card with selectable jumpers has the jumpers because of this, so a higher value will act like a weak pull up, and an active pull up from an output will not worry it, while still not overloading weak drive from south bridge chipsets with limited drive, but which incorporate a pull up transistor in the output, to make it an open drain with pull up all the time instead of tri stating the output and letting it float.
 

Offline jrmymllrTopic starter

  • Regular Contributor
  • *
  • Posts: 137
  • Country: us
Re: Do IDE data lines need pull-ups?
« Reply #2 on: June 27, 2024, 09:09:34 pm »
Looks like the card expects the computer side to have pull up resistors on the select lines, to provide a correct logic one level, but your motherboard does not provide them, probably because it is using tri state drivers to operate them, relying on the drive having a TTL pull up in place to assert the inactive logic level.

But it's not the motherboard side I'm adding them to, it's the side of the transceivers that connects to the SSD. And it's only the data lines. If I connect the SSD straight to the IDE port it works but causes other things to break.
 

Online Postal2

  • Regular Contributor
  • *
  • Posts: 237
  • Country: ru
Re: Do IDE data lines need pull-ups?
« Reply #3 on: July 01, 2024, 03:01:08 pm »
I used AT89C51 to communicare with IDE via port 1 and 2 for data (port 3 for address and others). I'm too lazi to solder external pullups. AT89C51 ports rated as 100k pullups, it was enough. When these pullups are not enough for you - some of equipment has a defect.
I cannot find any information on this. .....
You got it. Pullup is needed, but not too strong.

It was about data lines, but some other pins has open drain on it (iordy?) - for these pins, of course, need strong pullups, 1k is acceptable.
« Last Edit: July 01, 2024, 03:16:40 pm by Postal2 »
 
The following users thanked this post: jrmymllr

Offline jrmymllrTopic starter

  • Regular Contributor
  • *
  • Posts: 137
  • Country: us
Re: Do IDE data lines need pull-ups?
« Reply #4 on: July 03, 2024, 12:25:25 am »
I used AT89C51 to communicare with IDE via port 1 and 2 for data (port 3 for address and others). I'm too lazi to solder external pullups. AT89C51 ports rated as 100k pullups, it was enough. When these pullups are not enough for you - some of equipment has a defect.
I cannot find any information on this. .....
You got it. Pullup is needed, but not too strong.

It was about data lines, but some other pins has open drain on it (iordy?) - for these pins, of course, need strong pullups, 1k is acceptable.

I was thinking about this, after I had already ordered the 1K resistor networks and put it on my PCB. "Why didn't I at least try some higher resistance values when this was breadboarded?" I will still do this, on another board because it'll bother me if I don't. All 16 data lines, pulling to ground, that's 80mA.  Too much.
 

Online Postal2

  • Regular Contributor
  • *
  • Posts: 237
  • Country: ru
Re: Do IDE data lines need pull-ups?
« Reply #5 on: July 03, 2024, 12:51:06 am »
I thought that my pullup was 15k, and only now I looked at the datasheet and found out that it was 100k, but all works fine.

The board in the photo is 20 years old, and the specifications for IDE and SCSI were easy to find back then. Now everything is lost in the information garbage.
« Last Edit: July 03, 2024, 01:37:33 am by Postal2 »
 
The following users thanked this post: jrmymllr


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf