• Please review our updated Terms and Rules here

8-Bit IDE Controller

On the XT the buses are fed through some 74 series TTL, so I'd assumed that there should be pretty wide tolerance. The address bus measured 3.4V on my scope, although the data bus was much closer to 5V admitedly.
 
While MAX7000 and XC95xx series chips work, they are significantly more expensive than a ATF150x in a PLCC-84 package (2x to 4x the price). You can't get the IO pin count you need in a PLCC-44. Maybe a 68 if you can find them and keep things I/O space mapped. That's why I settled on the Atmel parts.
 
Well either way, I'm pretty excited about the CPLD version and looking forward to getting one running :cool:
 
While MAX7000 and XC95xx series chips work, they are significantly more expensive than a ATF150x in a PLCC-84 package (2x to 4x the price). You can't get the IO pin count you need in a PLCC-44. Maybe a 68 if you can find them and keep things I/O space mapped. That's why I settled on the Atmel parts.

My last project using 5V CPLDs used XC95108s in 84-pin PLCCs and it wasn't that long ago. Looks like the supply has dried up, however.

That's going to be a problem in the future for retro-fit boards--5V logic is rapidly getting scrapped. Oddly, this seems to be hitting the complex logic chips faster than the older SSI stuff.
 
Yes indeed, hence the CPLD board being stalled since last year and the subsequent gamble to run it on 3.3V (5V tolerant) logic. Hopefully we should have some more info soon on whether it's stable.
 
Quick update - some initial results posted on dangerousprototypes for 3.3v CPLD version... it's been tested with 4 HDDs and 2 CF cards, and worked with them all. Speed was 210KB/s write and 248KB/s read, measured in a 286/12MHz, rising to 780KB/s write and 1100KB/s read with the A0/A3 lines swapped (although the BIOS to support that only worked with one of the drives).
 
Consult the data sheet carefully on "5V tolerant" parts. Usually they are 5V tolerant only because they have internal clamping diodes that need external current limiting resistance. If you don't add that resistance, the part will burn out well before it's expected operational life. Different PLD manufactures have different app notes and requirements to this effect. eg. RTFM.

Edit: I can't find any specific current/clamp information on this from Xilinx for the XC9500XL family (unlike their FPGA parts). I'm still a bit confused at the part choices though when there are 5V through hole versions of everything in their schematic.
 
Last edited:
Thanks. Just looking at the datasheet for the Xlinx XC9572XL - can't see anything about that mentioned, just recommended high-level input voltage of 2-5.5V. Perhaps I'm not looking in the right place?
 
Thanks everyone, I really appreciate the feedback.

After looking at the 5volt options I gave up and went 3.3volts. It was just a personal preference, no offense intended if you prefer 5volt solutions. The older parts are rarer and rarer, and the sources more confusing. For example as far as I can tell the linked CPLD above is a 9572XL 3.3volt CPLD in PLCC, not a 5volt part, and I got tired of those gotchas. You can still get a few of the long-life 5volt parts at distributors like Digikey, but they are usually 4x more expensive than 3.3volt parts and in short supply.

I used SMD because I prefer to work with SMD, just a personal preference and what I stock in my workshop. It would be the best way to go if we ever manufacture a small batch.

Usually they are 5V tolerant only because they have internal clamping diodes that need external current limiting resistance.

I can't find the exact reference for the XC9572XL, but I do not believe it requires any external protection for 5volt interfacing. It does not depend on the ESD diodes and a series resistor, it has a actual 5.5volt tolerant input like you find in modern PICs, ARMs, etc. I can't find it, but there is a similar statement for XC95xxXL as this one for a previous-generation CPLD:

The XC4000XL I/O structures have been designed to tolerate a
constant input voltage of 5.5V using only the single 3.3V power
supply connected to the device. In fact, they are 5V tolerent
even without being powered up. This means that any 3.3 or 5
Volt (CMOS, TTL, Pullup, or Vcc) may be safely attached to an
XC4000XL input without the use of any current limiting
resistors or worries about power-up sequencing.

EDIT: link for above quote.
 
Last edited:
eeguru - I'd love to see your pcjr board.

I am also keen to make an all-CPLD version using the vq-100 (144?) XC9572XL.
 
hw files

I'll update with the CPLD source tonight. I think I've actually managed to block out a few hours 4 days this week to start real testing. I'll keep posting as it comes along.
 
Quick update - I finally got the prototype board (with 3.3v CPLD) working and testing has gone very well indeed in a PC/XT 5160. Also works fine in much later Pentium 200MHz.

By the way re the through-hole vs SMD issue. As a complete SMD novice I found the assembly wasn't too challenging. Actually the 74xxx chips and the CPLD were a dodle. The 0603 components took some patience though, but I wouldn't be put off doing another SMD project. Where I struggled was in adding jumper wires (due to a couple of errors in the prototype) because my hands aren't particularly steady.
 
Last edited:
Quick update on progress on this as some more new (to me) info has come to light on the cross-voltage issue.

It turns out the ATA/100 spec is based on 5V tollerant, 3.3V signalling (confirmed on scope), so running an ATA/100 drive on 'the original' xt/ide board is already making use of the interoperability of such. Specifically, 3.3V logic is designed to be TTL friendly, i.e. push out >=2.4V high and <=0.7V low.

However with compact flash there is a potential complication as the cards can operate at 3.3 or 5V Vcc, but the spec states that with Vcc=5V, Vih is 4V, which is way above TTL specs - hence there are potential integrity issues. However running the CF cards with Vcc=3.3V bypasses that issue as it then uses TTL compatible voltages.

Anyway, that's about it for now.
 
Good find. However I'm not sure why at Vcc=3.3V, a high is not required to be 2.97V. I can't find the spec it's referring to in that note to understand why.
 
Over on DP Ian suggested 'I bet whatever levelshifter is on the card needs 3.7 of more volts to register highat 5v supply', and FoolDupleX later clarified, 'the official CompactFlash specification : "the CF shall operate at both 3.3V and 5V supply voltages. The current requirements shall not exceed 75 mA at 3.3V and 100 mA at 5V." Also, Vih on the I/Os is minimum 2.4V when VCC is 3.3V and 4V when VCC is 5V. Vil is respectively 0.6V and 0.8V'.

The prototype board is a mix of 5V and 3.3V signalling at the moment - so will be interesting to see how the full 3.3V CPLD implementation(s) run.
 
Back
Top