element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum Trying to understand serial to parallel circuit
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 32 replies
  • Subscribers 279 subscribers
  • Views 8190 views
  • Users 0 members are here
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

Trying to understand serial to parallel circuit

opalko
opalko over 3 years ago

Hi again folks (after some time away!),
When I was a teen, I had an Atari 800 computer/ The Atari did not have a parallel port interface.  All they had were the joystick ports, which were serial.  A clever company came up with a serial->parallel port interface.  Me, not knowing much about electronics, could not figure out how they did this.  (PS -I still don't know much about electronics!!!).

Flash forward 40 years and this past week I decided to take apart the serial->parallel interface and reverse engineer this thing! I took apart and there are 2 chips - a 74LS14, and a 74LS164, a resistor and a capacitor. Next step was to draw the schematic, which I did with pencil and paper. This became messy, so I resorted to learning to use KiCad, and came up with the attached drawing. (see attachments)

I get what makes this work is the 74LS164 8 bit parallel-out serial shift register. I still don't really understand how it works though.  As I understand it, the data on this register may be read out in parallel (from all flip-flops) at once.
So some questions!

0) Can someone explain how this whole interface works!?

1) How is the data being read on the printer side?  Is the printer polling every data pin on the parallel port at once regardless of how many are actually being used?

2) Since there are really only 2 address data pins (3 & 5) being used here, it doesn't seem a vast improvement over serial?  But I guess because the Atari only has pins 1-4 for I/O and 1 of those sends the data to the 74LS164?

Thanks for any help understanding this.
Robert Opalko

PS There doesn't seem to be nearly as many members on this forum as there was in the past... Where did everyone go?

image
image
  • Sign in to reply
  • Cancel

Top Replies

  • phoenixcomm
    phoenixcomm over 3 years ago in reply to opalko +4
    try this link: computer.howstuffworks.com/parallel-port1.htm this says that IBM did it but in fact, It was Wang labs. and en.wikipedia.org/.../Centronics
  • phoenixcomm
    phoenixcomm over 3 years ago +4
  • dougw
    dougw over 3 years ago +3
    I don't get it either. A Centronics printer needs 8 data bits and some handshaking to work - this doesn't even have enough pins connected. On a Centronics connector all pins from 19-30 and 33 are ground…
  • dougw
    0 dougw over 3 years ago

    I don't get it either. A Centronics printer needs 8 data bits and some handshaking to work - this doesn't even have enough pins connected.

    On a Centronics connector all pins from 19-30 and 33 are ground, so connecting some of the output pins of the 74164 to ground doesn't seem like the best way to establish a ground connection.

    The 74164 is a shift register so it can shift data into its parallel register on every rising edge of the clock, but why they only connect 2 of the parallel outputs to data pins on the Centronics connector is not clear to me.

    The way this is connected doesn't seem to be workable on many different fronts.

    I don't know what Atari uses for their port interface, but it is designated to have +5, ground and 6 input pins. This schematic seems to imply that these inputs are being used as outputs.

    Best guess is that the schematic is not drawn correctly. 

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • opalko
    0 opalko over 3 years ago in reply to dougw

    I am pretty sure I drew it correctly but will double check. I will post a picture of the board itself in a bit. The traces are pretty easy to see through an opaque board. Thanks for the reply Doug!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • beacon_dave
    0 beacon_dave over 3 years ago

    makerkaren did a nice introduction to shift registers over on the Learning Circuit which may be of interest.
    /challenges-projects/element14-presents/thelearningcircuit/w/documents/4946/the-learning-circuit-75-how-shift-registers-work

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • beacon_dave
    0 beacon_dave over 3 years ago in reply to opalko

    The photo isn't the best but I can count 12 traces to the PCB connector. Your schematic shows only 8 at the Centronics connector.
    How are you checking this ? with a continuity meter test or by eye ? 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • opalko
    0 opalko over 3 years ago in reply to beacon_dave

    Good eye!

    I think what happened was I was drawing the circuit with pen and paper and it quickly got too messy. So Iswitched to KiCad and was using my drawing as the reference instead of the actual circuit....dumb dumb dumb mistake.  I haven't had a chance to redraw the schematic but here is a photo of said board, maybe the traces are easier to see here. I will try to redraw the schematic later tonight. The top IC is the 74LS164 and the bottom is the 74LS14.  I have the image mirrored so that the top left pin in the photo of each IC is pin #1, if that makes sense.

    image

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • beacon_dave
    0 beacon_dave over 3 years ago in reply to opalko

    The 8 data lines are there and mapping to the correct printer pins. 

    SR Qa pin 3 - ribbon 3 - Centronics 2 - data 0
    SR Qb pin 4 - ribbon 5 - Centronics 3 - data 1
    SR Qc pin 5 - ribbon 7 - Centronics 4 - data 2
    SR Qd pin 6 - ribbon 9 - Centronics 5 - data 3
    SR Qe pin 10 - ribbon 11 - Centronics 6 - data 4
    SR Qf pin 11 - ribbon 13 - Centronics 7 - data 5
    SR Qg pin 12 - ribbon 15 - Centronics 8 - data 6
    SR Qh pin 13 - ribbon 17 - Centronics 9 - data 7







    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • opalko
    0 opalko over 3 years ago in reply to beacon_dave

    Awesome! Apologies for screwing up the schematic and causing confusion earlier.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • opalko
    0 opalko over 3 years ago in reply to beacon_dave

    Do you know of a similar intro or guide to how parallel ports work?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • phoenixcomm
    0 phoenixcomm over 3 years ago in reply to opalko

    try this link:  computer.howstuffworks.com/parallel-port1.htm this says that IBM did it but in fact, It was Wang labs. 

    and en.wikipedia.org/.../Centronics

    • Cancel
    • Vote Up +4 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • beacon_dave
    0 beacon_dave over 3 years ago in reply to opalko

    Looks like your schematic is missing an inverter gate as well.

    74LS14 In5 - pin 11 - ribbon 25 - Centronics 13 - Select

    Looks like Out 5 heads to the 9-pin connector.

    Ribbon 21 - Centronics 11 - Busy
    also heads to the 9-pin which is missing from the schematic.

    Looks like the 9 pin ribbon connects to a 10-pin PCB connector so need to be careful with the numbering there. 

    Looks like
    Ribbon 31 - Centronics 16 - Gnd 

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube