Extend Parallel pins

Hi all,

With parallel port I could have only 8 parallel output (D0-D7). Is there any way so that, from this I could have about more than a hundred parallel output?

Or do you know any circuit allow this task? In condition, control from PC.
I gues some logic combination could allow me to do this.

Many thanks !!

Replies

  • wilsonbat
    wilsonbat
    i am not very much aware of the practicality of the solution which i am proposing here but the following ll work with few comb~ ckts

    the soultion is , control the 8 parallel o/p using a decoder (8 to 256) so u get 256 o/p of which u can make use of the 100 o/p of ur need....
  • RachaelP
    RachaelP
    Another solution would be to use an IO port expander such as the MAX7301 from Maxim. This has a simple 4-wire SPI interface which you can control from the parallel port. The MAX7301 gives 28 IO pins but as its standard SPI they can be daisy chained (the DO of the first device in the chain to the DI of the next device and so on) to give the required number of IO.

    Rach
  • nobtiba
    nobtiba
    Thank you for the suggestions. The decoder could be great, I am not sure could I use Max7301 since I need about more than a hundred output pins but it gives less.
    Then I may have to use about 8 of "4 to 16 line" decoders like HC4514. It will make the circuit become quite dense. Can you recommend any 7 to 128 or 8 to 256 decoder?

    Thanks alot !
  • RachaelP
    RachaelP
    Hi,

    You wouldn't need 8 of the "4 to 16 line" decoders. You can do what you require with just 4 of the MAX7301 devices. The interface is SPI and can be daisychained to give you control of multiple devices in the chain.

    So if you have 4 of the MAX7301 you could connect them as follows:

    Parallel pin D0 connects to the SCLK pin of all 4 MAX7301 devices
    Parallel pin D1 connects to the nCS pin of all 4 MAX7301 devices
    Parallel pin D2 connects to DIN of the first MAX7301
    Parallel pin D3 connects to DOUT of the last MAX7301

    DOUT of the first MAX7301 connects to DIN of the second MAX7301
    DOUT of the second MAX7301 connects to DIN of the third MAX7301
    DOUT of the third MAX7301 connects to DIN of the fourth MAX7301

    You can then communicate with all 4 of the MAX7301 devices over the daisychianed SPI interface. This will give you a total of 112 possible I/O's.

    The only thing you might need to do in addition is insert a tri-state buffer between the final DOUT and parallel pin D3 as the MAX7301 is a little bit naughty and doesn't tri-state its DOUT pin. This buffer would then need to be enabled when the read strobe from the parallel port was active.

    Let me know if you need any more info on how to drive the MAX7301.

    Rach
  • nobtiba
    nobtiba
    Hi Rach,

    - Then I need to output clock signal from D0 to all MAX7301 ?
    - I am not very sure how could I control 4 of them, for example, if I want 112 output logic level 1 then 0; or if I want some pins of the first, second and fourth MAX7301 ouput logic level 1 and the other pins ouput logic level 0 at the same time ?
    - Compare to the "decoder solution", using MAX7301 could make "simpler circuit" but is this more expensive and what is the other benefits?

    Thank you Rach !
  • xheavenlyx
    xheavenlyx
    #-Link-Snipped-# You seem very familier with PP intefacing. I am working on some related projects at themoment. I am interested on what all you have done till now. It would be nice if you can give a lil article on your experience and the difficulties that has come. Since as it is with any other field, practicle is very different from theory. For example we almost always forget the power requirements and surge protection etc (There was an high impedance IC just for switching which protects the PC Parallel Port, but cant recall the 74HCxx part!?).

    Anyway, as for the post I havent used the MAX IC however it seems to be the bast choice here because its specificly used for Port I/O. And moreover, interfacing MUX/DeMUX can get cumber some!, the timing diagrams are not easy.
  • RachaelP
    RachaelP
    Hi,

    Sorry for the delay in responding but it has been a bank holiday weekend over here and I have been away.

    nobtiba
    Hi Rach,

    - Then I need to output clock signal from D0 to all MAX7301 ?
    - I am not very sure how could I control 4 of them, for example, if I want 112 output logic level 1 then 0; or if I want some pins of the first, second and fourth MAX7301 ouput logic level 1 and the other pins ouput logic level 0 at the same time ?
    - Compare to the "decoder solution", using MAX7301 could make "simpler circuit" but is this more expensive and what is the other benefits?

    Thank you Rach !
    Yes in the solution above you need to output the clock on D0.

    Controlling all 4 of them is relatively easy. The port expanders take 16-bit commands sent to them serially. The commands can be sent to control single IO bits or groups of IO bits in each of the expanders. Null commands can also be sent so expanders can be individually accessed without affecting others in the chain.

    The MAX7301 makes a simpler circuit and they are relatively inexpensive. I havent worked out the cost for each solution but I suspect there isnt much difference between the two. The other benefit of the port expander is versatility. Maxim website says: "Each port can be configured either as a push-pull logic output capable of sinking 10mA and sourcing 4.5mA, or a Schmitt logic input with optional internal pullup. Seven ports feature configurable transition detection logic, which generates an interrupt upon change of port logic level."

    xheavenlyx
    #-Link-Snipped-# You seem very familier with PP intefacing. I am working on some related projects at themoment. I am interested on what all you have done till now. It would be nice if you can give a lil article on your experience and the difficulties that has come. Since as it is with any other field, practicle is very different from theory. For example we almost always forget the power requirements and surge protection etc (There was an high impedance IC just for switching which protects the PC Parallel Port, but cant recall the 74HCxx part!?).

    Anyway, as for the post I havent used the MAX IC however it seems to be the bast choice here because its specificly used for Port I/O. And moreover, interfacing MUX/DeMUX can get cumber some!, the timing diagrams are not easy.
    I've done a little bit with PP interfacing over the years but nothing recently. My main experiences recently are PowerPC processor board design, high speed busses such as DDR, RapidIO, PCI-X and loads of FPGA design.

    You are right, learning theory is one thing but there is no substitute for practical experience. My top tip for getting a design to work is dont neglect the basics: Power supplies/grounding and decoupling, interface levels and drive strengths (both externally and between components), clocks an resets, signal termination.

    Rach
  • xheavenlyx
    xheavenlyx
    Wow, thanks for the intro. Ill get back to you soon after my exams. I am planning to do my thesis on Embeded systems. Mainly Running Open source OS's and then trying to interface fast FPGA's so as to get as close as possible to Real Time!

    Regards

You are reading an archived discussion.

Related Posts

Hi friends,anybody know the difference between JSF and AJAX. is possible to combine together? by kamal.s
plz can any1 help me 2 find Assembly language codes 4 data recovery program???????? it'll b really good thing if u help me 2 find it. Anyway thx alot 4...
Is disk Defragmenter option in windows, for memory cards and USB drives worthwhile? well if i connect my memorycard to a computer i see various slots alloted for each kind...
Today 3 of our own CEans celebrate their birthday ! Many Happy Returns Of The Day anupsingh, NiLaY, manumohan 🎉Party On Dudes! 😁😁😁 -The Big K-
Lost in a City -Me Mumbaikar I am not a Mumbaikar. And i dont wish to be one. When i see hundreds and thousands of people at one place, i...