Do IDE data lines need pull-ups? - Page 1
Forum section: electronics / general

author: jrmymllr
author_rank: Regular Contributor
timestamp: June 27, 2024, 01:49:46 pm
content: 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.htmlSo 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

author: SeanB
author_rank: Super Contributor
timestamp: June 27, 2024, 08:23:12 pm
content: 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.

author: jrmymllr
author_rank: Regular Contributor
timestamp: June 27, 2024, 09:09:34 pm
content: Quote from: SeanB on June 27, 2024, 08:23:12 pmBut 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.

author: Postal2
author_rank: Frequent Contributor
timestamp: July 01, 2024, 03:01:08 pm
content: 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.Quote from: jrmymllr on June 27, 2024, 01:49:46 pmYou 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.

author: jrmymllr
author_rank: Regular Contributor
timestamp: July 03, 2024, 12:25:25 am
content: Quote from: Postal2 on July 01, 2024, 03:01:08 pmI 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.

author: Postal2
author_rank: Frequent Contributor
timestamp: July 03, 2024, 12:51:06 am
content: 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.

author: bson
author_rank: Unknown
timestamp: August 17, 2024, 09:35:41 pm
content: Are you sure this is for connecting a SATA drive to an IDE host interface, and not an IDE drive to a SATA host interface? Since the drive has the pull-ups, the adapter IDE port wouldn't since it's intended to connect to a drive.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: August 17, 2024, 09:53:13 pm
content: Quote from: bson on August 17, 2024, 09:35:41 pmSSD, not SATA.I'd have just went with (and have several times..!) a CompactFlash card: it's already IDE, just needs a simple adapter board.But adapting what looks like generic Flash to it, and maybe that ASIC is a drive controller thing, I mean it's not like you need much here. Odd they missed pullups, if that's really what the thing is (but I haven't looked up the IDE standard so I don't know if this is specified at all, or a complete oversight by them).Tim

author: bson
author_rank: Unknown
timestamp: August 17, 2024, 10:08:48 pm
content: Oh, like naked JEDEC CFI?

author: jrmymllr
author_rank: Regular Contributor
timestamp: September 18, 2024, 01:37:49 pm
content: Quote from: T3sl4co1l on August 17, 2024, 09:53:13 pmI've tried CF cards and if it's connected to an IDE port that connects the computer data bus directly to the CF card data lines, without using '245 transceivers, it really screws things up. Just like these SSDs do that I have. Both devices like to manipulate the data bus even when they aren't being talked to.I'm also paranoid about flash wearout on CF cards and like the ridiculous endurance of my IDE SSDs