PCI connection - How To

Status
Not open for further replies.

winterhunter

New Member
Dear all,

I would like to interface an ADC and some logic gates to a computer to build something not too different from an oscilloscope/data logger/logic analyser, and was wondering about the best way to implement it.

At first, I thought about RS-232 and a PIC in the circuit, but the bandwidth is simply not there. So I've started wondering whether it was feasible to place this kind of contraption on a PCI card.

Besides using a µprocessor (an ARM or an ubicom could do the trick) to bit-bang the bus on the card's side, is there any simpler way to solve the problem?

Thanks a lot for your thoughts!
 
For example the PIC18F4550 has full USB2.0 hardware support, and with some external RAM for buffering, I think it's much easier than PCI.
 
szabi said:
For example the PIC18F4550 has full USB2.0 hardware support, and with some external RAM for buffering, I think it's much easier than PCI.

You may find the USB Bit Wacker useful as a place to start.
It is an PIC18F and a USB port. SparkFun has them for $25 US.
http://www.sparkfun.com/commerce/images/Main-UBW.jpg
You can also build your own.
**broken link removed**

The UBW has commands that allow you to do ADC. It is open source.

The sparkfun UBW comes with a 18F2455 which has 24K of flash, the 18F2550 is the same chip with 32K flash. You can use either in a DIY version.

The for UBW.

You can start with the UBW and if it does not work out of the box you can reprogram the hardware as needed.
It is setup to use with a boot loader but with the correct linker file you can program it from an ICD2.
 
What about a parallel interface with a port or two from the PIC micro to the PC on its printer port, and a simple 2 wire 'handshake' (also on the parallel port) to let the PIC know the PC has grabbed the new data, 'ready for next capture'

This would be much faster than RS232, and not much thought needs to go into it - Untill you design you scope software on the PC. But at least you have some extremely fast captures happening.

You could even use two PIC's and dedicate 10 bits for each PIC (there are 3 8-bit ports on a parallel printer port) so while one is grabbing a sample, the other one can be sending data too the PC..

You would still have 4 'control' lines to do a quick 'data handshake' for each transfer.
 
Any suggestion at this point is pure speculation as you didn't state any update requirements aside from (RS232 just isn't enough) If you want any real useful feedback you have to say what kind of bandwidth you're looking for, how much resolution, and how many channels.
 
The simplest solution is to use the parallel port as mentioned above. But if you want to have the device further from the computer look into using an ethernet interface and then you can access your device from almost anywhere on the planet. Microchip makes a simple ethernet chip (ENC28J60) and I believe there is an ARM equivalent also. Maybe NetArm?
 
Last edited:
If you/someone else is interested in contolling the parallel port easily - have a look at this little **broken link removed** (Havent Tried this in VBEX05 yet, but does work for VB6)


Theres some documentation with the file aswell, I'm in the middle of throwing a quick tutorial together atm
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…