So I was doing a bit of research on the AVR controllers and came across this schematic for programming the chips.

enter image description here

After doing research on the 74 LS 254, I realized that either this design is overkill or I am missing an important point. Notice in the schematic how the DIR pin is tied high. Consulting with the datasheet for this IC informs that this state is such that information is transferred through the chip from bus A to bus B (or left to right in this schematic).

If the only purpose of this chip is to pass the information through itself, what is the point of including it? I thought that perhaps the inclusion of the IC was to prevent overloading of the PC, but considering that the chip will itself be powered by the PC this worry seems impractical.

What is its purpose?


Also, the pins for the DB-25 connecter seem strange too. enter image description here

According to the schematic we have several digital out pins tied to ground and many other important pins left floating.

  • \$\begingroup\$ I don't read the entire question, but I think it's just that, used as a buffer. But is not the dir pin in the schematic tied to ground? \$\endgroup\$ Dec 18, 2013 at 4:06
  • \$\begingroup\$ It appears that you are correct. That makes even less sense then. Why is it that the schematic shows a programmer that only allows communication from the controller to the PC? \$\endgroup\$
    – sherrellbc
    Dec 18, 2013 at 4:13
  • \$\begingroup\$ Also the enable pin is used, so it should put it in high-impedance state for something. \$\endgroup\$ Dec 18, 2013 at 4:13
  • \$\begingroup\$ Perhaps. The pin connected to the enable pin is actually a digital input pin though. \$\endgroup\$
    – sherrellbc
    Dec 18, 2013 at 4:14
  • 1
    \$\begingroup\$ @sherrellbc: The pinout you show for a DB-25 connector is neither an old PC serial port nor a PC parallel port, and doesn't match the pinout in your programmer schematic. The Wiki page for a PC parallel port matches the programmer schematic. D-subminature connectors are used for many things besides PC serial and parallel ports. The pinout you show must be for some other application. \$\endgroup\$ Dec 18, 2013 at 7:10

2 Answers 2


Like Peter says the pinning you show for the DB-25 connector is neither RS-232, nor parallel port. Pins like "isCharging" and "Analog input" should make that clear. I did a reverse image search on Google and found that it's the connector on an iRobot Create robot. That's a proprietary application, just forget about the whole connector in your question.

Parallel ports have (or "had", they haven't been on PCs since years anymore) an 8-bit databus plus some control signals. The data-bits are output only, and a couple of control lines which may be input, output or bidirectional.

The LS245 is used as a buffer, and since its "DIR" pin is grounded, a unidirectional buffer. Notice however that pin 15 (input) comes from the microcontroller, and goes via pin 5 (output) to the PC. That's one line from microcontroller to PC, the others are from PC to microcontroller.

  • 1
    \$\begingroup\$ Some desktops are still sold with a parallel port on board - mine is an i7-920k board circa 2011, and has both DE-9 serial and DB-25 parallel. \$\endgroup\$ Dec 20, 2013 at 10:31
  • \$\begingroup\$ @amadeus PC Parallel ports can have the 8 data bits switched as inputs on EPP/ECP modes, so its not output only (just in the SPP mode), but in SPP mode I think there's no bidirectional signals. Like AnindoGhosh said there is still devices built with PC Parallel Port, even printer servers. \$\endgroup\$ Dec 21, 2013 at 1:44

It's used as a tri-state buffer (using the enable pin of the IC in the schematic).

Using a buffer is not necessary to the programmer to work, and you can find schematics for programmers that use just resistors, and some that use galvanic isolation. The intention in the major part is to protect the parallel port.

In this case the IC could put the outputs in high-impedance state, more protection when you are not programming (but that is asserted by the parallel port, if the programming software crash, it would leave it in drive state).

One thing to note is that your schematic does not says if it uses the parallel port as the power source to the buffer like you write, in fact by the schematic it don't use and you can use a separate isolated power supply.

Where's one from much that don't use buffers, just resistors.
(source: elektroda.net)

The correct pin out for the parallel port used in PC could be found here: PC Parallel Port DB-25 Pinout (From Wikimedia)

There's advanced modes of parallel port in that the output pins go as inputs, but that's does not mater for that.

  • \$\begingroup\$ I understand what the IC does. I am more concerned with why it's being used. Is there a necessary need to have a buffer between the chip and the DB-25 data lines? \$\endgroup\$
    – sherrellbc
    Dec 18, 2013 at 15:03
  • \$\begingroup\$ I complemented my answer with your question response. \$\endgroup\$ Dec 18, 2013 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.