• Please review our updated Terms and Rules here

8-Bit IDE Controller

My HW guy here mentioned that we should decouple all of the ICs by adding a 0.10uF caps across the power and ground pins. Does that make sense?

Wiki has a very good writeup on the use of decoupling capacitors:

http://en.wikipedia.org/wiki/Decoupling_capacitor

The general idea is that you have a bunch of wires and components that are switching state at a high frequency. This generates AC noise in the circuit, which is designed for DC. The noise can effectively be removed from the system by giving it a path to ground (the capacitor) - the capacitor will be charged and will not let DC flow across, but AC will be able to get through.

When used for decoupling the capacitors are supposed to be small (0.10uf is right) and they are supposed to be tantalums.
 
[snip]

My HW guy here mentioned that we should decouple all of the ICs by adding a 0.10uF caps across the power and ground pins. Does that make sense?

Hi All! Yes, you hardware guy is right! That's why I added nine 0.1 uF decoupling capacitors. There is one in front of each IC that does switching and could generate switching transients. There is also a 22 uF across Vcc and GND to keep the bus garbage noise from coming into the card.

I think we are good on the decoupling capacitors! On a related note, my updated PCB layout is either near done or done with the revised trace routing. I am going to update the schematic file tonight and repost. Adding the pull up resistors to the R side inputs on the 74LS688s cost us 15 additional vias but its worth it, I think. That'll buy us a lot of flexibility and more reliable operation. The final PCB has like 70 vias (was 55) and now 367" of overall trace length.

Thanks and have a nice day!

Andrew Lynch
 
Hi All! Yes, you hardware guy is right! That's why I added nine 0.1 uF decoupling capacitors. There is one in front of each IC that does switching and could generate switching transients.
well, he may be right, but he's an idiot (and me too) for not already seeing those on the schematics. :)
 
sIDE-1/16

sIDE-1/16

Well today I finally got an Acculogic sIDE-1/16, and when I connected a 2 gig cf card to it.

The problem I ran into, it won't boot from the cf card, it formats, it can do everything a normal hard drive can do, except wont boot, the error I see is "Drive not ready".

When I boot from a floppy I can go to C: and see it like a normal HD, dir, files etc.

The DOS being used is IBM Dos 2000 on a IBM XT

I did sys too of course!!

Any help would be greatly appreciated. :D
 
Last edited:
well, he may be right, but he's an idiot (and me too) for not already seeing those on the schematics. :)

Hi All! Don't worry about it! Its better to ask to the question than miss something obvious. If nothing else, the question made me double check the schematic. It would have been more embarrassing if they had been missing though...

Keep digging and asking the questions! BTW, the PCB layout is finished in the trace optimizer. I uploaded the DSN file but that's as far as I got. Tonight I'll redo the rest of the ZIP file so people can take a look at the updated design. There is really not much different other than the pull up resistors.

I was up late working on the Zilog Peripherals board and never made it to do the update.

Thanks and have a nice day!

Andrew Lynch
 
some status from me:

1) went on a shopping trip to a local electronics store and managed to pick up two sets of the parts required to build our board. I've also bought 2 ISA prototype boards from jameco, so we're ready to build. On monday I shipped one of the sets out to andrew, and then I spent a few days searching for wire wrap tools, which I have now located. I'm hoping that I can start building the prototype card this weekend, but real life has had me rather distracted as of late. Andrew will likely finish his board before I do.

2) I've been working on option rom stuff in the meantime, and today I've managed to get extended(enhanced) INT 13 support functional, which means that drive support greater than 8.4G is now possible. I haven't ported it over to our 8088 CPU architecture though. As if 8.4 gig wasn't big enough! :)

Windows 98 DOS (aka DOS 7 I believe) does support eINT13 calls, so if that version of DOS will run on an 8088 machine, we could then have support for drives up to something insane, like 2TB. Otherwise, freeDOS or DR-DOS may also support eINT13 and run on an 8088.

The BIOS will require some changes to work on the prototype card anyway, so when I'm not busy wire wrapping, I can be coding. I need to clone myself.
 
some status from me:

The BIOS will require some changes to work on the prototype card anyway, so when I'm not busy wire wrapping, I can be coding. I need to clone myself.

We could use many clones of you :+>
 
Hi Hargle!

The parts arrived today and I have started assembling the prototype board. Work continues and I'll post more when there is something to report.

Thanks and have a nice day!

Andrew Lynch

PS, the updated PCB layout and trace routing has finally finished. I will update the zip file with the latest data.
 
Last edited:
Hi Hargle!

The parts arrived today and I have started assembling the prototype board.

wow. I should definitely start on the software side first then. If we can show some signs of life there, we're in business.

How experienced are you in dos debug? We can pretty much get a feel for functionality with just a few in and out commands.

------

So the next question is this:
Let's say this part of the project goes really well, and we're functional in a week or two. Do we attempt to add DMA capabilities? That is the ultimate goal of something like this, but it will require additional parts and some reworking of the way we're handling the 16 bit data to accomplish it.
Do we make some PCBs as a PIO only card and do another rev later, or is it worth it to wait? How much of a performance gain could we get with DMA vs. PIO? Is it worth the work involved?

Ok, that was more than 1 question.
 
wow. I should definitely start on the software side first then. If we can show some signs of life there, we're in business.

How experienced are you in dos debug? We can pretty much get a feel for functionality with just a few in and out commands.

------

So the next question is this:
Let's say this part of the project goes really well, and we're functional in a week or two. Do we attempt to add DMA capabilities? That is the ultimate goal of something like this, but it will require additional parts and some reworking of the way we're handling the 16 bit data to accomplish it.
Do we make some PCBs as a PIO only card and do another rev later, or is it worth it to wait? How much of a performance gain could we get with DMA vs. PIO? Is it worth the work involved?

Ok, that was more than 1 question.


Hi Hargle! Well as you said this is speculation for now. The design is relying on IDE PIO mode to keep the circuit's control logic simple. I believe the key to DMA support is the correct placement of registers in the IO address. I think the registers have to be adjacent IO addresses or something like that. The XT-IDE design will not support DMA "as is" because the HI-LO registers are separated by 8 addresses. At least in theory, the circuit could be modified but it would require additional "glue" logic to implement.

IDE PIO mode performance is not great that is for sure but on the systems this project is targeting like 5150's and clones we are not talking about high speed systems to begin with. PIO mode becomes much more of a limiting factor on fast CPUs which spend their time waiting for the hard drive to respond. Generally speaking that's not the case with a 4.77 MHz PC running a single threaded DOS. DMA mode is faster but the difference is not as dramatic in practical terms as it is on the newer machines.

My suggestion is to get to a working prototype and some initial software in place so we can get some real data if and how well the PIO mode actually performs on the target systems. It may be acceptable as is or it may be so bad it is worth fixing. We can compare it to other IDE controllers for the XT ISA bus and get some idea of the merits of pursuing higher levels of performance.

The practical issues of complexity versus cost will weigh in the decision process too. Adding features means adding parts. Add too many parts and the board density goes too high for commonly available parts and low cost double layer PCBs. PCB trace routing becomes more complex and time consuming. Once we cross a certain threshold for complexity, programmable parts like GALs become the only practical solution to keep part count and cost low. As I think you've seen already, using programmable logic represents its own set of unique problems such as requiring special tools, programmers, software, etc.

I am somewhat familiar with the use of monitors like MSDOS DEBUG so the manual manipulation of IO registers from the command line is not an issue. I wrote a RAM monitor for the N8VEM SBC with similar functionality. It is for Z80 but the concept is identical. I bought an ISA bus extender do some limited functionality testing on the board with the intention of determining whether the IO ports are responding, chip selects are triggering, the ROM is appearing in the memory map etc. However, once the hardware is working reliably, then it is all software and that is where your talents really get to shine!

Thanks and have a nice day!

Andrew Lynch

PS, as usual the prototype is going to be similiar to the schematic but different from the PCB layout. We'll need to discuss implementation details as I've made several adjustments to accomodate the prototype board and other components. Nothing too dramatic but enough to be visually noticeable.
 
Hi All! Does anyone have an 8 bit ISA bus extender they'd be willing to lend, sell, donate, or otherwise let me use for building the prototype? I bought an ISA bus extender on eBay and just found out due to the geometry of the prototype board PCB that it is incompatible with 16 bit slots. ARGH!

I can still do some hardware testing but it will require an XT to do it which means reconfiguring my workshop and who knows how long that'll take. I would much rather just use the PIII with ISA slots that is already sitting there.

Thanks and have a nice day!

Andrew Lynch

PS, nevermind, I found a cheap one on eBay so I'll get that it instead. It's nice to see Murphy is as active on this as well as my other projects. ;-)
 
Last edited:
Hi All! Does anyone have an 8 bit ISA bus extender they'd be willing to lend, sell, donate, or otherwise let me use for building the prototype? I bought an ISA bus extender on eBay and just found out due to the geometry of the prototype board PCB that it is incompatible with 16 bit slots. ARGH!

I can still do some hardware testing but it will require an XT to do it which means reconfiguring my workshop and who knows how long that'll take. I would much rather just use the PIII with ISA slots that is already sitting there.

Thanks and have a nice day!

Andrew Lynch

PS, nevermind, I found a cheap one on eBay so I'll get that it instead. It's nice to see Murphy is as active on this as well as my other projects. ;-)

Can't you just chainsaw one of the 16-bit slots, or would that have been a little too dramaticly?
 
Can't you just chainsaw one of the 16-bit slots, or would that have been a little too dramaticly?

Hi! Yes, using a chainsaw on my test bench PC is a bit too dramatic even for an old clunky PIII. Besides, chainsaws aren't exactly precision instruments. You might accidentally scratch the paint on something nearby. Or shred it. :)

Probably I could have used a Dremel tool to cut the offending tab bit off the prototype board but once it is full of wires and parts, I am not going to screw with it. It's easier to just let it wait until the proper part arrives. The 8 bit ISA extender will be here in a few days. By then I should be done assembling and testing the prototype.

Thanks and have a nice day!

Andrew Lynch
 
Acculogic card

Acculogic card

Hi Gang !

Good to see the project progressing. I was curious if anyone knows the approximate return time of the sIDE card I loaned out?

I have a friend coming in from out of town in March, and he was kind of wanting to see my XT system operating. It's no big deal if the card is not back by then, I was just wondering if it would be. From what I can tell, an entirely different design is taking shape anyway, and that is probably good. :D

Thanks

bobwatts
EartH
 
bob,

check your PMs if you haven't-druid has been waiting to see if it's ok with you if he could send it to me, then I'd send it to you.

My co-worker wanted to see how the power and ground planes were laid out on the acculogic, and I wanted to see if I could upgrade the BIOS past the 528MB barrier that exists on it right now. We can absolutely wait til after march to do that work though, and now that we're prototyping anyway, we likely won't need it beyond the BIOS upgrade work.

We can also tackle that job later on in the year after this card is finished.

So, druid, please send the card back to bob. I'll get it from him later if that's ok.
 
Hello !

I was under the impression that the card was going to be mailed to you a LONG time ago. I thought I had already said: Sure, go ahead.

In any event, if you need to see it, get the thing mailed to you so you can have a look. No big deal.

( just be careful. :) )

bobwatts
EartH
 
It'll go out in the next couple of days (hopefully not for what it cost you to ship it to me, though LOL)

Hargle, I've got your snail-mail address still, so, I'll send you the tracking info if you can PM me an e-mail address to go with it.
 
Hi All! I posted an update of the schematics and PCB layout on the wiki. There is a photo of the partially assembled prototype as well.

Thanks and have a nice day!

Andrew Lynch

PS, the funny coincidence is that the N8VEM builders are just now getting their Disk IO boards built and are starting to test them. I started the Disk IO prototype build in Mar/Apr 2007! Guess what is causing trouble right out of the starting gate? You guessed it -- the IDE! The good news is that the problem seems pretty straight forward and now we're seeing some reports of success. There are two confirmed instances of IDE devices working with Disk IO; my Seagate IDE hard drive and another builders 512M CF unit. Testing continues and I am sure more problems and more successes as per home brew computing. The timing of these two projects overlapping like this is amazing though.
 
Last edited:
Hi! Good news! I finished assembly of the XT-IDE prototype. Installed the ICs, found a cable and a couple of IDE hard drives for testing. Thursday I start the point to point wring out to verify all the connections and then onto live testing. The prototype is too wide to fit in a single slot so it either uses a couple of slots or has to be on an ISA bus extender. Hopefully my 8 bit ISA bus extender will be here soon.

The point to point wring out usually takes a lot less time than the assembly. Building the prototype turned out to be more complex and time consuming than I originally estimated. It is more complex than it looks, that is for sure.

One thing we are finding on the N8VEM project with the Disk IO board is that the IDE "standard" is not very standardized. There are many variations of drives and controllers and not all IDE devices are interchangeable. Some work, some don't, and its not clear why.

One thing is for sure though, I suspect this project is in for the same rude surprise when we finally move to integration and software testing. Be prepared for some ugly IDE compatibility issues to surface. I'll bet that only a subset of IDE devices are going to work with the device, at least at first. So we'll see how this turns out. I am very glad we are prototyping this before investing in a manufactured PCB.

Thanks and have a nice day!

Andrew Lynch
 
Back
Top