• Please review our updated Terms and Rules here

8-Bit IDE Controller

Hi! Hargle sent me a revised BIOS I'll be testing here soon -- hopefully tonight. I think that will shed light on the int19 hooking issue which I believe is the root issue of booting with different cards with bootable ROMs. My system has two bootable cards, one MFM (Seagate, I think) and another of those funky FDC cards for HD floppy drives (JDR used to sell these).

i'm still immersed in working that aspect of the BIOS. I haven't tried the card out yet with my own MFM controller in the machine, so don't expect a lot of miracles just yet. I do plan on spending some more time with the BIOS this weekend, so hang in there! (sorry I keep delaying my release of 009, but I think it'll be worth it)

As Per has suggested, the best way to get the system to boot is to make sure the xtide loads its BIOS in last. You can freely move the ROM address around to make sure it gets the highest address above the other cards. If you move the IO address, you will need to use the flash setup program.

Oh yeah, I forgot to mention. Those testing the board might like to do some "up close and personal" inspection of the board using an oscilloscope/spectrum analyzer. There may be noise sources causing issues. Certainly, there are many bypass capacitors, an isolation capacitor, ground planes and the like but its still possible there is something flakey in the design. However, the problems so far seem to be rather specific to individual systems.

I think this is something that mike and I can do at my workplace some weekend. If he can spare the time to come up to minneapolis, we can pop into my work and hook up the logic analyzer we have here and start getting some captures of some signals. I first want to find a drive or two that absolutely won't work properly with our card (lutiana seems to have one) and then we can start to investigate. The new BIOS might change the outcome of the list of drives that are failing, although I kinda doubt it.

Those failing drives will have to be shipped here for us to test with.
I'll see if I can get one of my hardware co-workers to help out as well. Otherwise we might have to fly andrew in to help out. :)
 
I think this is something that mike and I can do at my workplace some weekend. If he can spare the time to come up to minneapolis, we can pop into my work and hook up the logic analyzer we have here and start getting some captures of some signals. I first want to find a drive or two that absolutely won't work properly with our card (lutiana seems to have one) and then we can start to investigate. The new BIOS might change the outcome of the list of drives that are failing, although I kinda doubt it.

Those failing drives will have to be shipped here for us to test with.
I'll see if I can get one of my hardware co-workers to help out as well. Otherwise we might have to fly andrew in to help out. :)

I'll see if I can borrow my uncle's scope this weekend so I can test for signal noise. It seems like it only appears when I have the drive above the 3.5" floppy drive where the cable passes inbetween the 5.25" FDD and the PSU, then over the "system" part of the motherboard.

I've not had any corrupted reads when placing the drive outside to the left of my XT, where the cable goes in a bow-shape over the other expansion cards I have installed.

Maybe most IDE drives are using (weak) 74HCTxx logics to send data to the card?
 
I first want to find a drive or two that absolutely won't work properly with our card (lutiana seems to have one) and then we can start to investigate. The new BIOS might change the outcome of the list of drives that are failing, although I kinda doubt it.

I can ship it to you, though I have not had chance to test it with any of the newer bioses. Last one was 006, and it was still coming up as a slave drive.

I will try and test it again this evening with 008 and see if it still comes up as slave, and even so, if I can fdisk and format it.
 
Just a thought... If Hargle was able to resolve intermittent problems with two of his boards by doing a solder reflow (I presume with an soldering oven or wave solder machine), it may indicate the presence of hidden cold joints in the soldering of your PCB as well. Sometimes cold joints can act like diodes when they oxidize, etc. Flexing the board, moving cables can affect its operation.

Who made your board? Did you solder it yourself? If so, I would take the board, remove all the ICs, and use your soldering iron and wick to reflow all the joints. Remove all excess solder with your wick and remelt all joints. The key is to get as much unnecessary solder as possible off the joint and remove anything that would impede a thoroughly heated PTH and pin. That's why I'd remove the ICs to prevent damage.

Its possible that dodgy solder joints can contribute to noisy connections that would not appear with other boards. Itermittant problems like you are experiencing (I think) sound awfully suspicious.

Thanks and have a nice day!

Andrew Lynch
 
Just a thought... If Hargle was able to resolve intermittent problems with two of his boards by doing a solder reflow (I presume with an soldering oven or wave solder machine), it may indicate the presence of hidden cold joints in the soldering of your PCB as well. Sometimes cold joints can act like diodes when they oxidize, etc. Flexing the board, moving cables can affect its operation.

Who made your board? Did you solder it yourself? If so, I would take the board, remove all the ICs, and use your soldering iron and wick to reflow all the joints. Remove all excess solder with your wick and remelt all joints. The key is to get as much unnecessary solder as possible off the joint and remove anything that would impede a thoroughly heated PTH and pin. That's why I'd remove the ICs to prevent damage.

Its possible that dodgy solder joints can contribute to noisy connections that would not appear with other boards. Itermittant problems like you are experiencing (I think) sound awfully suspicious.

Thanks and have a nice day!

Andrew Lynch
The card I have was soldered by Hargle.

There isn't really much unnessecary solder on the joints on my card, more the opposite. I would say it is to little solder, at leas if I compare it to all other cards I got.
 
I can ship it to you, though I have not had chance to test it with any of the newer bioses. Last one was 006, and it was still coming up as a slave drive.

I will try and test it again this evening with 008 and see if it still comes up as slave, and even so, if I can fdisk and format it.

That seems like the CSEL issue that I was playing with over the weekend.
If you've got a soldering iron handy, I can step you through the process of pulling CSEL low. It was pretty easy to do.

that fixed my drives showing up as slaves issue 100%.
 
The card I have was soldered by Hargle.

There isn't really much unnessecary solder on the joints on my card, more the opposite. I would say it is to little solder, at leas if I compare it to all other cards I got.

resoldering is quick and easy and couldn't hurt to try.

All I did was reflow the solder under all the pins of the sockets, minus the one for the eeprom, since that was working fine. I didn't touch the resistors, caps or the dipswitches, and my two cards have been rock solid since. For me, all I did was use the tip of the iron and pressed it against each leg of the socket until the leg moved. Took about 1 second per leg. That forced the solder to re-seat itself inside the hole.

All in all, I soldered 8 of the 10 cards, and only had 2 flaky ones. not too bad for a software guy, although if Per's card gets fixed with this method, my stats will drop again. ;)
 
resoldering is quick and easy and couldn't hurt to try.

All I did was reflow the solder under all the pins of the sockets, minus the one for the eeprom, since that was working fine. I didn't touch the resistors, caps or the dipswitches, and my two cards have been rock solid since. For me, all I did was use the tip of the iron and pressed it against each leg of the socket until the leg moved. Took about 1 second per leg. That forced the solder to re-seat itself inside the hole.

All in all, I soldered 8 of the 10 cards, and only had 2 flaky ones. not too bad for a software guy, although if Per's card gets fixed with this method, my stats will drop again. ;)

My soldering iron is one of those big and clumsy old-style ones with a temperature regulator I can't trust (sometimes it just won't melt the sloder).

Maybe my uncle got one I can borrow. I got an old ISA card I sould reflow too, it has started to corrode (small white hairs on the solder) on some of the pins.
 
That seems like the CSEL issue that I was playing with over the weekend.
If you've got a soldering iron handy, I can step you through the process of pulling CSEL low. It was pretty easy to do.

that fixed my drives showing up as slaves issue 100%.

There is a pull up resistor on CSEL so if you want just solder a jumper between CSEL and ground. The pull up resistor will limit current to very small amount. Alternatively, remove the resistor and just ground CSEL directly.

Thanks and have a nice day!

Andrew Lynch
 
resoldering is quick and easy and couldn't hurt to try.

All I did was reflow the solder under all the pins of the sockets, minus the one for the eeprom, since that was working fine. I didn't touch the resistors, caps or the dipswitches, and my two cards have been rock solid since. For me, all I did was use the tip of the iron and pressed it against each leg of the socket until the leg moved. Took about 1 second per leg. That forced the solder to re-seat itself inside the hole.

All in all, I soldered 8 of the 10 cards, and only had 2 flaky ones. not too bad for a software guy, although if Per's card gets fixed with this method, my stats will drop again. ;)

Yes, that's exactly what I am suggesting. That heating and wiggling of the pins forces the solder to reflow and remelt. You'll virtually eliminate cold joints that way. Some solder joints that look OK can actually be bad underneath. Sometimes you can tell and sometimes not. That's why I always remelt/reflow solder joints to verify that they are thoroughly connected. Sometimes a touch of flux to questionable areas or if you suspect contamination.

I am not trying to be critical, just connecting the dots and trying to fix the problems as locally as possible. Getting reliable hardware is a big part of getting the software solution right.

Thanks and have a nice day!

Andrew Lynch
 
There is a pull up resistor on CSEL so if you want just solder a jumper between CSEL and ground. The pull up resistor will limit current to very small amount. Alternatively, remove the resistor and just ground CSEL directly.

Thanks and have a nice day!

Andrew Lynch

My biggest hesitation is that I am simply not that proficient with a soldering iron yet. The solder joints that Hargle has done are well beyond my ability at the moment.

If I am understaning you correctly I could simply bypass the resistor by using a small piece of wire to test it temporarily. Is that correct?
 
My biggest hesitation is that I am simply not that proficient with a soldering iron yet. The solder joints that Hargle has done are well beyond my ability at the moment.

wow! and I don't think i'm that good at all! that's very kind of you. :)
I think I've found my method since I did Per's card though. (sorry per!)
If I am understaning you correctly I could simply bypass the resistor by using a small piece of wire to test it temporarily. Is that correct?

just about. R6 has to be cut to break the connection to the pull-up. THen you just jumper a tiny wire between 2 pins on the IDE connector on the back side of the card.

I can send you detailed pics of exactly what the process is. Actually, I should post the pictures so that anyone else can try it too. Will try to do that tonight.
 
My biggest hesitation is that I am simply not that proficient with a soldering iron yet. The solder joints that Hargle has done are well beyond my ability at the moment.

If I am understaning you correctly I could simply bypass the resistor by using a small piece of wire to test it temporarily. Is that correct?

Hi! If you want you can send me the board and I'll reflow it for you.

It is important to not just replace or bypass the pull up resistor with a jumper. The resistor is there to limit current flow and wire will not do that. A plain wire would short VCC to GND and the power supply will not come up.

Actually, you can just leave the resistor in place. Just connect the CSEL pin to ground and the pull up resistor will be OK as is.

Thanks and have a nice day!

Andrew Lynch
 
Hi Hargle! That's great! Pin 30 is GND so that's convenient!

Nice mod! Cool points for Hargle!

Thanks and have a nice day!

Andrew Lynch
 
has anybody tried a CF card with an IDE adapter on these yet? i have a 256 MB kingston i am thinking of trying.
 
has anybody tried a CF card with an IDE adapter on these yet? i have a 256 MB kingston i am thinking of trying.

Yes, a 1gb card. Detected fine, but had to format it with a third party (DOS Format kept finding a ton of bad sectors). It booted fine. That was with version 005 of the BIOS, haven't tried it since.
 
I've had a rockin' night of debug.

First, I redid every solder joint on the card. That was tedious and I can't say it looks much better, but there were some spots that definitely needed help.

No joy though. I have two drives which consistently give me problems and they both were still goofy.

Next I went to an 80 pin IDE cable. This really should not be necessary, but it definitely helps. Both of my problem drives are not usable. I'm not sure about long term stability - I'll need a few hours to ascertain that.

One of the drives would fdisk, format and I could copy data to it, but I could not boot from it. I thought that I had been wiping the master boot record using debug, but I must not have been doing it right. FDISK /MBR from DOS 5 fixed the problem and I can now boot straight from the drive.

So long story short - the two drives that were giving me grief are working now, and it looks like the older 40 pin cable was the cause of the grief. This will be a good thing to look at under a scope because those 40 pin cables should be fine for this application. There has to be something on the card that is marginal that the cable is helping out with.


Mike
 
Yes, a 1gb card. Detected fine, but had to format it with a third party (DOS Format kept finding a ton of bad sectors). It booted fine. That was with version 005 of the BIOS, haven't tried it since.

Those problems was fixed in BIOS version 0.08. I suggest you update since there has been a lot of bugfixes and additions since then.

However, remember to use the /s switch when flashing in the new version, else, you'll get some insane settings. After you have updated to 0.08, you don't need to use the /s switch when updating to versions after 0.08.
 
I've had a rockin' night of debug.

First, I redid every solder joint on the card. That was tedious and I can't say it looks much better, but there were some spots that definitely needed help.

No joy though. I have two drives which consistently give me problems and they both were still goofy.

Next I went to an 80 pin IDE cable. This really should not be necessary, but it definitely helps. Both of my problem drives are not usable. I'm not sure about long term stability - I'll need a few hours to ascertain that.

One of the drives would fdisk, format and I could copy data to it, but I could not boot from it. I thought that I had been wiping the master boot record using debug, but I must not have been doing it right. FDISK /MBR from DOS 5 fixed the problem and I can now boot straight from the drive.

So long story short - the two drives that were giving me grief are working now, and it looks like the older 40 pin cable was the cause of the grief. This will be a good thing to look at under a scope because those 40 pin cables should be fine for this application. There has to be something on the card that is marginal that the cable is helping out with.


Mike

Hi Mike! Thanks! If the 80 conductor IDE cable helps it almost certainly means a noise (aka grounding) issue. As I am sure you already know but for the benefit of everyone, the difference between the two styles of cables is that the 80 conductor version has separate grounds for each pin versus common grounds on the 40 conductor cable. Probably the best solution would be a spectrum analyser, logic analyser, or really good storage oscilloscope to capture the offending events.

Bearing the above in mind, few modern IDE devices (in the last 10 years or so) probably few if any have much testing in XT ISA style bus. Most recent IDE devices are intended for PCI bus like environments which have significantly different noise, grounding characteristics, etc.

That being said, there are likely drives that will not be compatible with the interface. That is true for *all* IDE interfaces AFAIK. There is a huge variety of IDE devices available and if you include the early models (late 1980's) all the way to present times you will see an enormous amount of variations. No matter how you implement the IDE interface, you are making decisions which affect timing and any way you go, you are deciding some will be compatible and some will not.

My suggestion is to proceed with the investigation and see if you can determine a root cause. If its fixable I'll roll it in the design and put it in the respin. This is the investigation that we've needed since the beginning and I am very happy its underway at last!

Realistically, even after thorough investigation and repairs there will likely be some devices that just won't work. My suggestion is to use the wiki to capture what devices DO work and possible those devices that DO NOT work. The data might reveal clues and your improved testing data collection is an excellent idea.

I know it did on the N8VEM Disk IO board and we ended up with a "smart cable" to fix some timing issues with drives from certain manufacturers like WD etc.

Thanks and have a nice day!

Andrew Lynch
 
Back
Top