Electronic – Help needed driving an old PIC programmer from Raspberry Pi GPIO

gpiopicraspberry pi

I have been trying to use a Raspberry Pi's GPIO pins to drive an old PIC programmer board that used to have a parallel port connection before I started messing about with it.

You can see from the clip of a schematic I found online that the data write/read pin on the PIC is connected to two parallel port pins, one an output and one an input. When programming the chip, the pin flips to become an output after you send a command to read the current word.

I'm not sure in particular how reading back data from the PIC is supposed to work, because it looks to a newbie like me that the output of an inverter is connected to the input of the inverter that leads to the 'read' pin for sending data back to the PC.

Could somebody please explain what is going on at the point marked with a '?' that stops the inverter output 'fighting' with the PIC DATA pin output?

enter image description here

Best Answer

The 74LS05 is an open collector inverter, therefore it can only output a logic zero on the line (sinking it to the ground), but never a logic one. The line is basically at 1 by default (because of the 10k pull-up resistors) and can be driven to zero either by the inverter output or by the PIC.

Unfortunately, the open collector nature of the 74LS05 is not explicitly indicated in the schematics (although it is possible, generally by putting an asterisk or an open-collector symbol ⎐ near the output of the gate), thus rendering it more difficult to understand.