How to have your cake and eat it to
(How to hack your TE405P to work in both 3.3V and 5V PCI slots)
This isn't much of a hack, but the TE405P card works just fine in 3.3V PCI slots -- The Spartan II FPGA is compatible with with either voltage PCI slot. I am going to say that Digium's use of a 5V PCI card edge connector was an oversight, not an intentional design choice. Why have the TE410P (which will NOT work in a 5V slot, don't try it) and the TE405P and cause your end users no end of grief?
I purchased (and waited and waited...) for the TE405P because I wanted to have a card which would not only work in the systems I was rolling out, but also so that if the systems themselves died I could pull the expensive (USD$1500) card and put it in a craptastic standard PC system until I got the original system repaired. Having a pair of TE405Ps and a pair of TE410Ps was insane, and having another $2000 PC lying around doing nothing was equally insane.
How I did it:
- Researched the Spartan II part and verified that it did indeed work in 3.3V and 5V systems without any hardware changes.
- Further researched the Spartan II part and verified that its I/O blocks worked correctly in either 5V or 3.3V systems (VOH/VOL and VIH/VIL mostly) -- I took an educated guess and guessed that the I/O blocks connecting to the PCI system were the PCI5V variety and verified that the threshholds for those blocks would be acceptable for interfacing to a PCI3.3V system. Basically just made sure that the I/O blocks wouldn't die :-) It wasn't that big a risk since it was a 5V card going into a 3.3V system, not vice-versa. The worst that would happen would be that the threshholds would be out of spec and the card wouldn't be able to "see" a high level and thus malfunction.
- Took a good look around the card and made a few more educated guesses regarding the framer and support circuitry. 5V is avalable on a PCI3.3V connector and I figured that the 5V the framer and support circuitry would have needed would come from these card edge points. Again, I was putting a 5V card into a 3.3V system -- I did not have to worry about caps being overvoltaged or any other "major" problem.
- Before dremelling a very expensive card and taking it completely out of warranty, I dremmeled a couple cheap PCI risers and plugged the TE405P into that -- at least that way if I fried the card I could try warranty. :-)
- Verified that there were no traces running underneath the 3.3V key area -- that would be a tricky one to fix, since the traces would have all been in the middle layers of the card.
- After all of that and a few prayers, I took the plunge. I took a regular old dremel tool and very carefully cut out the card edge where the 3.3V key was. There is no solder mask above those pins and the lack of solder mask gives a very good indication of how "high" to cut into the card.
NOTE: It is VERY VERY important that extreme care be taken when dremelling -- you're kicking up a lot of conductive dust and if you don't carefully clean off the card (really I should have masked off the entire card beforehand to prevent any dust from getting between or under the pins of the ICs) you can cause all kinds of strange intermittent problems.
NOTE 2: THIS WILL MOST CERTAINLY VOID THE WARRANTY ON YOUR SHINY NEW USD$1500 PCI CARD. DON'T EXPECT DIGIUM TO SUPPORT YOU IN THIS VENTURE.
I expect Digium will make the TE405P a universal 3.3V/5V card and stop production of the TE410P when stock runs out. It really is just a CNC change -- no re-layout or retooling.
February 2005 update It the 5V-only nature was done on purpose; Apparently Xilinx will not guarantee that its 5V I/O blocks will work in 3.3V systems, so Digium could have either added additional circuitry to autodetect the correct voltage and boot the FPGA with the appropriate firmware (5V or 3.3V) or leave it as is and provide two cards.
Having said all that... the pictures:
|