PC-based MIDI-CV Converter - Part 2

gstopp at fibermux.com gstopp at fibermux.com
Tue Mar 26 01:15:56 CET 1996

     More on the PC-based MIDI-CV converter...
     Let me pass on the parallel port knowledge I've gained in the past 
     couple days.
     IBM PC-type parallel port D-sub 25 connector pinouts:
     1  - STROBE
     2  - D0
     3  - D1
     4  - D2
     5  - D3
     6  - D4
     7  - D5
     8  - D6
     9  - D7
     10 - ACK
     11 - BUSY
     12 - PE
     13 - SLCT
     14 - AUTOFD
     15 - ERROR
     16 - INIT
     17 - SLCT IN
     18 thru 25 - Ground
     Pins 2 thru 9 (D0-D7) are the data bits, output pins from the PC.
     Pins 1, 14, 16, and 17 are control line outputs from the PC.
     The rest of the pins are inputs - I don't use those.
     Pins 1, 14, 16, and 17 are controlled by the write register as 
     D0 - pin 1  *
     D1 - pin 14 *
     D2 - pin 16
     D3 - pin 17 *
     D4 - X
     D5 - X
     D6 - X
     D7 - X
     The pins with the "X" are not used. The pins with the (*) are inverted 
     - that is, if you write a "0" to the bit it shows up on the connector 
     as +5 volts, and if you write a "1" it will be 0 volts. Therefore to 
     get all zeros on these pins you have to write a hex FB to the port. I 
     just added some inverters in the interface to invert these lines so 
     that the bits are all low when hex 00 is written to the port. This 
     makes the software oh so much easier.
     The pins for the data register are all 0 = low, 1 = +5.
     Port assignments:
     LPT1: Port addresses 3BC - 3BF
     LPT2: Port addresses 378 - 37F
     LPT3: Port addresses 278 - 27F
     The registers for LPT1 are as follows:
     3BC = write register, data (pins 2-9)
     3BE = read register, status (I don't use this)
     3BF = write register, control (pins 1,14,16,17)
     The other LPT ports are the same, that is Base = write data, Base+1 = 
     read control, Base+2 = write control. Note that LPT2 and LPT3 have an 
     eight byte address range, and LPT1 has a four byte address range. Hey 
     that's IBM for ya.
     I'm using a Centronics locking connector on the DAC interface panel, 
     so's I can just use an off-the-shelf printer cable. I ferget the 
     pinouts for that - I used a DVM in beep mode to find the pins and I 
     didn't write them down. Oh well another post.
     The AD7228 is in a 24-pin 0.3" DIP package, and the distributor told 
     me they're $18 a pop. (The ones I got are samples, tee hee). Due to 
     the number of control pins on the LPT ports I think I'm limited to 
     eight channels per port, but heck I don't want the interface panel too 
     crowded and if I want more I can just build another and move on to 
     Okay enough for now, time to go home.
     - Gene
     gstopp at fibermux.com

More information about the Synth-diy mailing list