Is there a difference between PIO and GPIO pins?Is there any difference between pin 13 and the rest of the pins?Arduino connecting multiple GPIO pins to one voltage lineAnalog and digital input pinsWhat is the best way to safely verify the state of a digital pin on a live circuit by external means?How to disable Parallel Master Port Address pins in PIC32What is OTP for selecting GPIO function in PMICs?Parallel led segment with (1 led) and (2 led in serie) without resistor?How do the pins of this analogue switch correspond in this diagram?Not enough pins, looking for a “demultiplexer” that keeps stateGrounding GPIO pins during 8051 programming

What did Jeremy Hunt mean by "slipped" to miss a vote?

The most secure way to handle someone forgetting to verify their account?

Why jet engines sound louder on the ground than inside the aircraft?

Is encryption still applied if you ignore the SSL certificate warning for self signed?

How can one convert an expression to a string while keeping the quotation marks of strings that are part of the expression?

How do you send money when you're not sure it's not a scam?

What could make large expeditions ineffective for exploring territory full of dangers and valuable resources?

What happens if a company buys back all of its shares?

When designing an adventure, how can I ensure a continuous player experience in a setting that's likely to favor TPKs?

Is there a difference between PIO and GPIO pins?

Grouping into more groups in one iteration

How to draw a winding on a toroid of a circular cross section?

What would be the safest way to drop thousands of small, hard objects from a typical, high wing, GA airplane?

Change Opacity of Style

Is it possible to have a career in SciComp without contributing to arms research?

Term “console” in game consoles

Drawing a circle with nodes shift with Tikz

Software need db owner permission to master database (sql2016)

How much water can a ship take on before sinking?

Arithmetics in LuaLaTeX

Is it ethical for a company to ask its employees to move furniture on a weekend?

Should I use a resistor between the gate driver and MOSFET (gate pin)?

Is straight-up writing someone's opinions telling?

Is surviving this (blood loss) scenario possible?



Is there a difference between PIO and GPIO pins?


Is there any difference between pin 13 and the rest of the pins?Arduino connecting multiple GPIO pins to one voltage lineAnalog and digital input pinsWhat is the best way to safely verify the state of a digital pin on a live circuit by external means?How to disable Parallel Master Port Address pins in PIC32What is OTP for selecting GPIO function in PMICs?Parallel led segment with (1 led) and (2 led in serie) without resistor?How do the pins of this analogue switch correspond in this diagram?Not enough pins, looking for a “demultiplexer” that keeps stateGrounding GPIO pins during 8051 programming






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1












$begingroup$


GPIO = digital + analog pins;
PIO = only digital ?



EDIT: PIO defined in datasheet as "Programmable input/output, also known as general-purpose I/O"










share|improve this question











$endgroup$











  • $begingroup$
    GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
    $endgroup$
    – Janka
    9 hours ago







  • 1




    $begingroup$
    These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
    $endgroup$
    – Eugene Sh.
    9 hours ago






  • 1




    $begingroup$
    @Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
    $endgroup$
    – Eugene Sh.
    9 hours ago










  • $begingroup$
    I don't have a definite source, that's why I commented.
    $endgroup$
    – Janka
    9 hours ago






  • 4




    $begingroup$
    These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
    $endgroup$
    – Elliot Alderson
    8 hours ago

















1












$begingroup$


GPIO = digital + analog pins;
PIO = only digital ?



EDIT: PIO defined in datasheet as "Programmable input/output, also known as general-purpose I/O"










share|improve this question











$endgroup$











  • $begingroup$
    GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
    $endgroup$
    – Janka
    9 hours ago







  • 1




    $begingroup$
    These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
    $endgroup$
    – Eugene Sh.
    9 hours ago






  • 1




    $begingroup$
    @Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
    $endgroup$
    – Eugene Sh.
    9 hours ago










  • $begingroup$
    I don't have a definite source, that's why I commented.
    $endgroup$
    – Janka
    9 hours ago






  • 4




    $begingroup$
    These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
    $endgroup$
    – Elliot Alderson
    8 hours ago













1












1








1





$begingroup$


GPIO = digital + analog pins;
PIO = only digital ?



EDIT: PIO defined in datasheet as "Programmable input/output, also known as general-purpose I/O"










share|improve this question











$endgroup$




GPIO = digital + analog pins;
PIO = only digital ?



EDIT: PIO defined in datasheet as "Programmable input/output, also known as general-purpose I/O"







pcb datasheet pins






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 6 hours ago







imrich

















asked 9 hours ago









imrichimrich

276 bronze badges




276 bronze badges











  • $begingroup$
    GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
    $endgroup$
    – Janka
    9 hours ago







  • 1




    $begingroup$
    These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
    $endgroup$
    – Eugene Sh.
    9 hours ago






  • 1




    $begingroup$
    @Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
    $endgroup$
    – Eugene Sh.
    9 hours ago










  • $begingroup$
    I don't have a definite source, that's why I commented.
    $endgroup$
    – Janka
    9 hours ago






  • 4




    $begingroup$
    These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
    $endgroup$
    – Elliot Alderson
    8 hours ago
















  • $begingroup$
    GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
    $endgroup$
    – Janka
    9 hours ago







  • 1




    $begingroup$
    These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
    $endgroup$
    – Eugene Sh.
    9 hours ago






  • 1




    $begingroup$
    @Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
    $endgroup$
    – Eugene Sh.
    9 hours ago










  • $begingroup$
    I don't have a definite source, that's why I commented.
    $endgroup$
    – Janka
    9 hours ago






  • 4




    $begingroup$
    These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
    $endgroup$
    – Elliot Alderson
    8 hours ago















$begingroup$
GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
$endgroup$
– Janka
9 hours ago





$begingroup$
GPIO == General Purpose I/O. PIO = Parallel I/O or Programmable I/O.
$endgroup$
– Janka
9 hours ago





1




1




$begingroup$
These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
$endgroup$
– Eugene Sh.
9 hours ago




$begingroup$
These things are pretty much unrelated to each other. GPIO is a General Purpose IO - meaning these are not connected to a specialized interface. PIO is Programmable IO, meaning that it can be connected to any interface present on the chip. The latter present mostly on FPGAs, while GPIO is on microcontrollers and such.
$endgroup$
– Eugene Sh.
9 hours ago




1




1




$begingroup$
@Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
$endgroup$
– Eugene Sh.
9 hours ago




$begingroup$
@Janka Looks like we have different interpretations, meaning that we probably need to close this question :)
$endgroup$
– Eugene Sh.
9 hours ago












$begingroup$
I don't have a definite source, that's why I commented.
$endgroup$
– Janka
9 hours ago




$begingroup$
I don't have a definite source, that's why I commented.
$endgroup$
– Janka
9 hours ago




4




4




$begingroup$
These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
$endgroup$
– Elliot Alderson
8 hours ago




$begingroup$
These acronyms do not have standardized definitions. They should always be defined the first time they are used in any document.
$endgroup$
– Elliot Alderson
8 hours ago










4 Answers
4






active

oldest

votes


















4












$begingroup$

GPIO means General Purpose Input/Output.



These pins can be used for general purposes (e.g. LEDs, on/off functionality or anything).



Some GPIO pins can be used for specific functionality, mostly for peripherals, e.g. SPI, UART etc.



I have not seen a pin that is for such specific functionality that cannot be used as a GPIO pin, but I can imagine there are.



Of course there are pins for VCC, GND etc, but those are not I/O pins.



For PIO pins, I think Eugene Sh. gives a good comment. A PIO pin can be programmed and thus can be attached to any peripheral, and also be used as a GPIO pin. So a PIO pin is more versatile than a GPIO pin, since it can be programmed to be connected to any peripheral, while a GPIO pin has a hardwired connection to one or more (but not all) peripherals.



Summary:



Pin Type Can be attached to Type MCU FPGA
------------ -------------------------------------------- ---------- --- ---
GPIO I/O, optionally to subset of peripheral(s) Hardwired x x(?)
(non GP)IO I/O, only to subset of peripheral(s) Hardwired ? ?
PIO I/O, any peripheral(s) Programmable x
non (GP)IO VCC, GND, VBat, VIn etc; not used for I/O Hardwired x x





share|improve this answer











$endgroup$








  • 1




    $begingroup$
    Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
    $endgroup$
    – Mattman944
    8 hours ago










  • $begingroup$
    I tried to address it in my answer.
    $endgroup$
    – Michel Keijzers
    8 hours ago






  • 1




    $begingroup$
    See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
    $endgroup$
    – hacktastical
    8 hours ago










  • $begingroup$
    Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
    $endgroup$
    – The Photon
    7 hours ago










  • $begingroup$
    @hacktastical Added definition of PIO from the document to my question.
    $endgroup$
    – imrich
    6 hours ago


















1












$begingroup$

Any acronym used in a technical doc should be defined. Now, that said...



GPIO means ‘General Purpose Input / Output’. For microcontrollers this customarily means a pin which can be configured through registers by the host to be an input, output, or bidirectional pin.



Sometimes GPIO pins are also shared with other functions. That selection is also by a host register.



Not much ambiguity with GPIO, then.



‘PIO’ on the other hand... can mean several things. Just to name a few: Programmable I/O, Parallel I/O, Peripheral I/O. So you have to get it from context. There’s literature that uses it in each different way, going back to the 8048/8042, 8080, Z80, 6502 and others and even earlier. I’ll leave it up to you, the reader, to unearth all these different variants.



Anyway, back to this decade and century. What does PIO mean? Let’s try for the earliest, most general concept we can find.



PIO, in the context of computer system architecture, is an abstract concept that means ‘Programmed Input / Output’. It means using CPU instructions to move data to or from a resource, purely by software. It is the most basic kind of input and output for a computer. It’s an idea that’s been around since the beginning of computers.



Nowadays, microcontroller/microcomputer CPU access to slow peripherals like serial ports and I2C usually use PIO. Same for GPIO pins.



PIO isn't a 'pin' per se in this computer-science context, but you can define I/O pin sets that uses PIO to access them. A good example is the PC printer port, an 8-bit bidirectional I/O port mapped to x86 I/O space, derived from the Centronics port which dates back to.. 1971. Coincidentally, PC printer port is also a Parallel Input/Output, or ... PIO. Confused? You should be.



Computer-science-y PIO is differentiated from DMA, or Direct Memory Access, which uses dedicated hardware to move data to/from a resource. DMA is used in higher performance computer peripherals such as graphics, networking and storage.



Tying it all together, you would use PIO to set up the GPIO registers to do the desired function: input, output, bidirectional, or a special function that's shared with the pin. You would also use PIO to set up a DMA unit to perform a block transfer to or from Ethernet or to a hard disk. Got an old printer? You might use PIO to talk to... PIO.






share|improve this answer











$endgroup$












  • $begingroup$
    Upvoted your answer too because of the explanation.
    $endgroup$
    – Michel Keijzers
    4 hours ago


















0












$begingroup$

General-Purpose Input/Output (GPIO) pins are so-named to distinguish them from peripheral I/O pins.



Each GPIO pin can be configured as a software-readable digital input or a software-writable latched digital output. Occasionally they have a fixed direction, or a direction only programmable for groups of pins, but the term GPIO sticks.



Peripheral I/O pins have specific functions for a specific peripheral, such as a UART transmitter or receiver, an SPI interface, an I2C controller, a timer, an ADC input or a DAC output.



Many devices have I/O pins that can be programmed to be GPIO or a peripheral I/O pin.



The term PIO is much less common than GPIO but I have seen it as a similar, alternate term to GPIO.






share|improve this answer









$endgroup$




















    0












    $begingroup$

    PIO can mean 'programmed I/O' where a port is controlled directly by the CPU as opposed to being accessed via DMA (particularly in reference to IDE hard drives and printer ports on PCs).



    It can also mean 'Parallel I/O' where data is sent as a group of bits in parallel over several wires at once as opposed to serially over a single wire. One example of this is the Z80 PIO and SIO peripheral chips. The Z80 SIO sends and receives serial data on two dedicated pins, and has other I/O pins which are dedicated to control and status signals. The Z80 PIO has two ports which can each send or receive data 8 bits at a time, or they can be used as individual pins programmed to output or input a single bit (eg. to operate a relay or read the state of a toggle switch).



    Early microcontrollers often consisted simply of a CPU and peripheral devices stuck together on a single chip, so they came in large packages with a lot of pins. Modern microcontrollers have shrunk down the number of pins by sharing them with different peripherals, and provide many more functions such as analog to digital converters (ADC), pulse width modulators (PWM), etc.



    When a pin is internally connected to a dedicated device such as a UART or ADC it is generally called a 'peripheral' pin, and when connected to a parallel port internally it is called a GPIO or 'general purpose I/O' pin. However it might be just be described as a 'digital' pin, or one bit of a 'port'. Some examples:-



    ATmega328p




    Ports as General Digital I/O
    The ports are bi-directional I/O ports with optional internal pull-ups.
    Figure 14-2 shows a functional description of one I/O-port pin, here generically called Pxn.




    AT89S51




    Port 0 is an 8-bit open drain bi-directional I/O port. As an output
    port, each pin can sink eight TTL inputs. When 1s are written to port
    0 pins, the pins can be used as high-impedance inputs.







    share|improve this answer









    $endgroup$















      Your Answer






      StackExchange.ifUsing("editor", function ()
      return StackExchange.using("schematics", function ()
      StackExchange.schematics.init();
      );
      , "cicuitlab");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "135"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f448950%2fis-there-a-difference-between-pio-and-gpio-pins%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      4 Answers
      4






      active

      oldest

      votes








      4 Answers
      4






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      4












      $begingroup$

      GPIO means General Purpose Input/Output.



      These pins can be used for general purposes (e.g. LEDs, on/off functionality or anything).



      Some GPIO pins can be used for specific functionality, mostly for peripherals, e.g. SPI, UART etc.



      I have not seen a pin that is for such specific functionality that cannot be used as a GPIO pin, but I can imagine there are.



      Of course there are pins for VCC, GND etc, but those are not I/O pins.



      For PIO pins, I think Eugene Sh. gives a good comment. A PIO pin can be programmed and thus can be attached to any peripheral, and also be used as a GPIO pin. So a PIO pin is more versatile than a GPIO pin, since it can be programmed to be connected to any peripheral, while a GPIO pin has a hardwired connection to one or more (but not all) peripherals.



      Summary:



      Pin Type Can be attached to Type MCU FPGA
      ------------ -------------------------------------------- ---------- --- ---
      GPIO I/O, optionally to subset of peripheral(s) Hardwired x x(?)
      (non GP)IO I/O, only to subset of peripheral(s) Hardwired ? ?
      PIO I/O, any peripheral(s) Programmable x
      non (GP)IO VCC, GND, VBat, VIn etc; not used for I/O Hardwired x x





      share|improve this answer











      $endgroup$








      • 1




        $begingroup$
        Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
        $endgroup$
        – Mattman944
        8 hours ago










      • $begingroup$
        I tried to address it in my answer.
        $endgroup$
        – Michel Keijzers
        8 hours ago






      • 1




        $begingroup$
        See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
        $endgroup$
        – hacktastical
        8 hours ago










      • $begingroup$
        Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
        $endgroup$
        – The Photon
        7 hours ago










      • $begingroup$
        @hacktastical Added definition of PIO from the document to my question.
        $endgroup$
        – imrich
        6 hours ago















      4












      $begingroup$

      GPIO means General Purpose Input/Output.



      These pins can be used for general purposes (e.g. LEDs, on/off functionality or anything).



      Some GPIO pins can be used for specific functionality, mostly for peripherals, e.g. SPI, UART etc.



      I have not seen a pin that is for such specific functionality that cannot be used as a GPIO pin, but I can imagine there are.



      Of course there are pins for VCC, GND etc, but those are not I/O pins.



      For PIO pins, I think Eugene Sh. gives a good comment. A PIO pin can be programmed and thus can be attached to any peripheral, and also be used as a GPIO pin. So a PIO pin is more versatile than a GPIO pin, since it can be programmed to be connected to any peripheral, while a GPIO pin has a hardwired connection to one or more (but not all) peripherals.



      Summary:



      Pin Type Can be attached to Type MCU FPGA
      ------------ -------------------------------------------- ---------- --- ---
      GPIO I/O, optionally to subset of peripheral(s) Hardwired x x(?)
      (non GP)IO I/O, only to subset of peripheral(s) Hardwired ? ?
      PIO I/O, any peripheral(s) Programmable x
      non (GP)IO VCC, GND, VBat, VIn etc; not used for I/O Hardwired x x





      share|improve this answer











      $endgroup$








      • 1




        $begingroup$
        Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
        $endgroup$
        – Mattman944
        8 hours ago










      • $begingroup$
        I tried to address it in my answer.
        $endgroup$
        – Michel Keijzers
        8 hours ago






      • 1




        $begingroup$
        See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
        $endgroup$
        – hacktastical
        8 hours ago










      • $begingroup$
        Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
        $endgroup$
        – The Photon
        7 hours ago










      • $begingroup$
        @hacktastical Added definition of PIO from the document to my question.
        $endgroup$
        – imrich
        6 hours ago













      4












      4








      4





      $begingroup$

      GPIO means General Purpose Input/Output.



      These pins can be used for general purposes (e.g. LEDs, on/off functionality or anything).



      Some GPIO pins can be used for specific functionality, mostly for peripherals, e.g. SPI, UART etc.



      I have not seen a pin that is for such specific functionality that cannot be used as a GPIO pin, but I can imagine there are.



      Of course there are pins for VCC, GND etc, but those are not I/O pins.



      For PIO pins, I think Eugene Sh. gives a good comment. A PIO pin can be programmed and thus can be attached to any peripheral, and also be used as a GPIO pin. So a PIO pin is more versatile than a GPIO pin, since it can be programmed to be connected to any peripheral, while a GPIO pin has a hardwired connection to one or more (but not all) peripherals.



      Summary:



      Pin Type Can be attached to Type MCU FPGA
      ------------ -------------------------------------------- ---------- --- ---
      GPIO I/O, optionally to subset of peripheral(s) Hardwired x x(?)
      (non GP)IO I/O, only to subset of peripheral(s) Hardwired ? ?
      PIO I/O, any peripheral(s) Programmable x
      non (GP)IO VCC, GND, VBat, VIn etc; not used for I/O Hardwired x x





      share|improve this answer











      $endgroup$



      GPIO means General Purpose Input/Output.



      These pins can be used for general purposes (e.g. LEDs, on/off functionality or anything).



      Some GPIO pins can be used for specific functionality, mostly for peripherals, e.g. SPI, UART etc.



      I have not seen a pin that is for such specific functionality that cannot be used as a GPIO pin, but I can imagine there are.



      Of course there are pins for VCC, GND etc, but those are not I/O pins.



      For PIO pins, I think Eugene Sh. gives a good comment. A PIO pin can be programmed and thus can be attached to any peripheral, and also be used as a GPIO pin. So a PIO pin is more versatile than a GPIO pin, since it can be programmed to be connected to any peripheral, while a GPIO pin has a hardwired connection to one or more (but not all) peripherals.



      Summary:



      Pin Type Can be attached to Type MCU FPGA
      ------------ -------------------------------------------- ---------- --- ---
      GPIO I/O, optionally to subset of peripheral(s) Hardwired x x(?)
      (non GP)IO I/O, only to subset of peripheral(s) Hardwired ? ?
      PIO I/O, any peripheral(s) Programmable x
      non (GP)IO VCC, GND, VBat, VIn etc; not used for I/O Hardwired x x






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 8 hours ago

























      answered 8 hours ago









      Michel KeijzersMichel Keijzers

      7,7949 gold badges35 silver badges78 bronze badges




      7,7949 gold badges35 silver badges78 bronze badges







      • 1




        $begingroup$
        Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
        $endgroup$
        – Mattman944
        8 hours ago










      • $begingroup$
        I tried to address it in my answer.
        $endgroup$
        – Michel Keijzers
        8 hours ago






      • 1




        $begingroup$
        See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
        $endgroup$
        – hacktastical
        8 hours ago










      • $begingroup$
        Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
        $endgroup$
        – The Photon
        7 hours ago










      • $begingroup$
        @hacktastical Added definition of PIO from the document to my question.
        $endgroup$
        – imrich
        6 hours ago












      • 1




        $begingroup$
        Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
        $endgroup$
        – Mattman944
        8 hours ago










      • $begingroup$
        I tried to address it in my answer.
        $endgroup$
        – Michel Keijzers
        8 hours ago






      • 1




        $begingroup$
        See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
        $endgroup$
        – hacktastical
        8 hours ago










      • $begingroup$
        Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
        $endgroup$
        – The Photon
        7 hours ago










      • $begingroup$
        @hacktastical Added definition of PIO from the document to my question.
        $endgroup$
        – imrich
        6 hours ago







      1




      1




      $begingroup$
      Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
      $endgroup$
      – Mattman944
      8 hours ago




      $begingroup$
      Good description of GPIO, basically what I was about to say. What about PIO? Is it just a subset of GPIO, or does it have its own specific characteristics?
      $endgroup$
      – Mattman944
      8 hours ago












      $begingroup$
      I tried to address it in my answer.
      $endgroup$
      – Michel Keijzers
      8 hours ago




      $begingroup$
      I tried to address it in my answer.
      $endgroup$
      – Michel Keijzers
      8 hours ago




      1




      1




      $begingroup$
      See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
      $endgroup$
      – hacktastical
      8 hours ago




      $begingroup$
      See my above comment about PIO, meaning programmed I/O as opposed to DMA. Regardless, in technical docs acronyms should be defined in their context.
      $endgroup$
      – hacktastical
      8 hours ago












      $begingroup$
      Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
      $endgroup$
      – The Photon
      7 hours ago




      $begingroup$
      Are you talking about some particular family of parts? Microcontrollers or FPGAs or CPLDs or what?
      $endgroup$
      – The Photon
      7 hours ago












      $begingroup$
      @hacktastical Added definition of PIO from the document to my question.
      $endgroup$
      – imrich
      6 hours ago




      $begingroup$
      @hacktastical Added definition of PIO from the document to my question.
      $endgroup$
      – imrich
      6 hours ago













      1












      $begingroup$

      Any acronym used in a technical doc should be defined. Now, that said...



      GPIO means ‘General Purpose Input / Output’. For microcontrollers this customarily means a pin which can be configured through registers by the host to be an input, output, or bidirectional pin.



      Sometimes GPIO pins are also shared with other functions. That selection is also by a host register.



      Not much ambiguity with GPIO, then.



      ‘PIO’ on the other hand... can mean several things. Just to name a few: Programmable I/O, Parallel I/O, Peripheral I/O. So you have to get it from context. There’s literature that uses it in each different way, going back to the 8048/8042, 8080, Z80, 6502 and others and even earlier. I’ll leave it up to you, the reader, to unearth all these different variants.



      Anyway, back to this decade and century. What does PIO mean? Let’s try for the earliest, most general concept we can find.



      PIO, in the context of computer system architecture, is an abstract concept that means ‘Programmed Input / Output’. It means using CPU instructions to move data to or from a resource, purely by software. It is the most basic kind of input and output for a computer. It’s an idea that’s been around since the beginning of computers.



      Nowadays, microcontroller/microcomputer CPU access to slow peripherals like serial ports and I2C usually use PIO. Same for GPIO pins.



      PIO isn't a 'pin' per se in this computer-science context, but you can define I/O pin sets that uses PIO to access them. A good example is the PC printer port, an 8-bit bidirectional I/O port mapped to x86 I/O space, derived from the Centronics port which dates back to.. 1971. Coincidentally, PC printer port is also a Parallel Input/Output, or ... PIO. Confused? You should be.



      Computer-science-y PIO is differentiated from DMA, or Direct Memory Access, which uses dedicated hardware to move data to/from a resource. DMA is used in higher performance computer peripherals such as graphics, networking and storage.



      Tying it all together, you would use PIO to set up the GPIO registers to do the desired function: input, output, bidirectional, or a special function that's shared with the pin. You would also use PIO to set up a DMA unit to perform a block transfer to or from Ethernet or to a hard disk. Got an old printer? You might use PIO to talk to... PIO.






      share|improve this answer











      $endgroup$












      • $begingroup$
        Upvoted your answer too because of the explanation.
        $endgroup$
        – Michel Keijzers
        4 hours ago















      1












      $begingroup$

      Any acronym used in a technical doc should be defined. Now, that said...



      GPIO means ‘General Purpose Input / Output’. For microcontrollers this customarily means a pin which can be configured through registers by the host to be an input, output, or bidirectional pin.



      Sometimes GPIO pins are also shared with other functions. That selection is also by a host register.



      Not much ambiguity with GPIO, then.



      ‘PIO’ on the other hand... can mean several things. Just to name a few: Programmable I/O, Parallel I/O, Peripheral I/O. So you have to get it from context. There’s literature that uses it in each different way, going back to the 8048/8042, 8080, Z80, 6502 and others and even earlier. I’ll leave it up to you, the reader, to unearth all these different variants.



      Anyway, back to this decade and century. What does PIO mean? Let’s try for the earliest, most general concept we can find.



      PIO, in the context of computer system architecture, is an abstract concept that means ‘Programmed Input / Output’. It means using CPU instructions to move data to or from a resource, purely by software. It is the most basic kind of input and output for a computer. It’s an idea that’s been around since the beginning of computers.



      Nowadays, microcontroller/microcomputer CPU access to slow peripherals like serial ports and I2C usually use PIO. Same for GPIO pins.



      PIO isn't a 'pin' per se in this computer-science context, but you can define I/O pin sets that uses PIO to access them. A good example is the PC printer port, an 8-bit bidirectional I/O port mapped to x86 I/O space, derived from the Centronics port which dates back to.. 1971. Coincidentally, PC printer port is also a Parallel Input/Output, or ... PIO. Confused? You should be.



      Computer-science-y PIO is differentiated from DMA, or Direct Memory Access, which uses dedicated hardware to move data to/from a resource. DMA is used in higher performance computer peripherals such as graphics, networking and storage.



      Tying it all together, you would use PIO to set up the GPIO registers to do the desired function: input, output, bidirectional, or a special function that's shared with the pin. You would also use PIO to set up a DMA unit to perform a block transfer to or from Ethernet or to a hard disk. Got an old printer? You might use PIO to talk to... PIO.






      share|improve this answer











      $endgroup$












      • $begingroup$
        Upvoted your answer too because of the explanation.
        $endgroup$
        – Michel Keijzers
        4 hours ago













      1












      1








      1





      $begingroup$

      Any acronym used in a technical doc should be defined. Now, that said...



      GPIO means ‘General Purpose Input / Output’. For microcontrollers this customarily means a pin which can be configured through registers by the host to be an input, output, or bidirectional pin.



      Sometimes GPIO pins are also shared with other functions. That selection is also by a host register.



      Not much ambiguity with GPIO, then.



      ‘PIO’ on the other hand... can mean several things. Just to name a few: Programmable I/O, Parallel I/O, Peripheral I/O. So you have to get it from context. There’s literature that uses it in each different way, going back to the 8048/8042, 8080, Z80, 6502 and others and even earlier. I’ll leave it up to you, the reader, to unearth all these different variants.



      Anyway, back to this decade and century. What does PIO mean? Let’s try for the earliest, most general concept we can find.



      PIO, in the context of computer system architecture, is an abstract concept that means ‘Programmed Input / Output’. It means using CPU instructions to move data to or from a resource, purely by software. It is the most basic kind of input and output for a computer. It’s an idea that’s been around since the beginning of computers.



      Nowadays, microcontroller/microcomputer CPU access to slow peripherals like serial ports and I2C usually use PIO. Same for GPIO pins.



      PIO isn't a 'pin' per se in this computer-science context, but you can define I/O pin sets that uses PIO to access them. A good example is the PC printer port, an 8-bit bidirectional I/O port mapped to x86 I/O space, derived from the Centronics port which dates back to.. 1971. Coincidentally, PC printer port is also a Parallel Input/Output, or ... PIO. Confused? You should be.



      Computer-science-y PIO is differentiated from DMA, or Direct Memory Access, which uses dedicated hardware to move data to/from a resource. DMA is used in higher performance computer peripherals such as graphics, networking and storage.



      Tying it all together, you would use PIO to set up the GPIO registers to do the desired function: input, output, bidirectional, or a special function that's shared with the pin. You would also use PIO to set up a DMA unit to perform a block transfer to or from Ethernet or to a hard disk. Got an old printer? You might use PIO to talk to... PIO.






      share|improve this answer











      $endgroup$



      Any acronym used in a technical doc should be defined. Now, that said...



      GPIO means ‘General Purpose Input / Output’. For microcontrollers this customarily means a pin which can be configured through registers by the host to be an input, output, or bidirectional pin.



      Sometimes GPIO pins are also shared with other functions. That selection is also by a host register.



      Not much ambiguity with GPIO, then.



      ‘PIO’ on the other hand... can mean several things. Just to name a few: Programmable I/O, Parallel I/O, Peripheral I/O. So you have to get it from context. There’s literature that uses it in each different way, going back to the 8048/8042, 8080, Z80, 6502 and others and even earlier. I’ll leave it up to you, the reader, to unearth all these different variants.



      Anyway, back to this decade and century. What does PIO mean? Let’s try for the earliest, most general concept we can find.



      PIO, in the context of computer system architecture, is an abstract concept that means ‘Programmed Input / Output’. It means using CPU instructions to move data to or from a resource, purely by software. It is the most basic kind of input and output for a computer. It’s an idea that’s been around since the beginning of computers.



      Nowadays, microcontroller/microcomputer CPU access to slow peripherals like serial ports and I2C usually use PIO. Same for GPIO pins.



      PIO isn't a 'pin' per se in this computer-science context, but you can define I/O pin sets that uses PIO to access them. A good example is the PC printer port, an 8-bit bidirectional I/O port mapped to x86 I/O space, derived from the Centronics port which dates back to.. 1971. Coincidentally, PC printer port is also a Parallel Input/Output, or ... PIO. Confused? You should be.



      Computer-science-y PIO is differentiated from DMA, or Direct Memory Access, which uses dedicated hardware to move data to/from a resource. DMA is used in higher performance computer peripherals such as graphics, networking and storage.



      Tying it all together, you would use PIO to set up the GPIO registers to do the desired function: input, output, bidirectional, or a special function that's shared with the pin. You would also use PIO to set up a DMA unit to perform a block transfer to or from Ethernet or to a hard disk. Got an old printer? You might use PIO to talk to... PIO.







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 13 mins ago

























      answered 5 hours ago









      hacktasticalhacktastical

      1,5069 bronze badges




      1,5069 bronze badges











      • $begingroup$
        Upvoted your answer too because of the explanation.
        $endgroup$
        – Michel Keijzers
        4 hours ago
















      • $begingroup$
        Upvoted your answer too because of the explanation.
        $endgroup$
        – Michel Keijzers
        4 hours ago















      $begingroup$
      Upvoted your answer too because of the explanation.
      $endgroup$
      – Michel Keijzers
      4 hours ago




      $begingroup$
      Upvoted your answer too because of the explanation.
      $endgroup$
      – Michel Keijzers
      4 hours ago











      0












      $begingroup$

      General-Purpose Input/Output (GPIO) pins are so-named to distinguish them from peripheral I/O pins.



      Each GPIO pin can be configured as a software-readable digital input or a software-writable latched digital output. Occasionally they have a fixed direction, or a direction only programmable for groups of pins, but the term GPIO sticks.



      Peripheral I/O pins have specific functions for a specific peripheral, such as a UART transmitter or receiver, an SPI interface, an I2C controller, a timer, an ADC input or a DAC output.



      Many devices have I/O pins that can be programmed to be GPIO or a peripheral I/O pin.



      The term PIO is much less common than GPIO but I have seen it as a similar, alternate term to GPIO.






      share|improve this answer









      $endgroup$

















        0












        $begingroup$

        General-Purpose Input/Output (GPIO) pins are so-named to distinguish them from peripheral I/O pins.



        Each GPIO pin can be configured as a software-readable digital input or a software-writable latched digital output. Occasionally they have a fixed direction, or a direction only programmable for groups of pins, but the term GPIO sticks.



        Peripheral I/O pins have specific functions for a specific peripheral, such as a UART transmitter or receiver, an SPI interface, an I2C controller, a timer, an ADC input or a DAC output.



        Many devices have I/O pins that can be programmed to be GPIO or a peripheral I/O pin.



        The term PIO is much less common than GPIO but I have seen it as a similar, alternate term to GPIO.






        share|improve this answer









        $endgroup$















          0












          0








          0





          $begingroup$

          General-Purpose Input/Output (GPIO) pins are so-named to distinguish them from peripheral I/O pins.



          Each GPIO pin can be configured as a software-readable digital input or a software-writable latched digital output. Occasionally they have a fixed direction, or a direction only programmable for groups of pins, but the term GPIO sticks.



          Peripheral I/O pins have specific functions for a specific peripheral, such as a UART transmitter or receiver, an SPI interface, an I2C controller, a timer, an ADC input or a DAC output.



          Many devices have I/O pins that can be programmed to be GPIO or a peripheral I/O pin.



          The term PIO is much less common than GPIO but I have seen it as a similar, alternate term to GPIO.






          share|improve this answer









          $endgroup$



          General-Purpose Input/Output (GPIO) pins are so-named to distinguish them from peripheral I/O pins.



          Each GPIO pin can be configured as a software-readable digital input or a software-writable latched digital output. Occasionally they have a fixed direction, or a direction only programmable for groups of pins, but the term GPIO sticks.



          Peripheral I/O pins have specific functions for a specific peripheral, such as a UART transmitter or receiver, an SPI interface, an I2C controller, a timer, an ADC input or a DAC output.



          Many devices have I/O pins that can be programmed to be GPIO or a peripheral I/O pin.



          The term PIO is much less common than GPIO but I have seen it as a similar, alternate term to GPIO.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 3 hours ago









          TonyMTonyM

          8,7401 gold badge13 silver badges29 bronze badges




          8,7401 gold badge13 silver badges29 bronze badges





















              0












              $begingroup$

              PIO can mean 'programmed I/O' where a port is controlled directly by the CPU as opposed to being accessed via DMA (particularly in reference to IDE hard drives and printer ports on PCs).



              It can also mean 'Parallel I/O' where data is sent as a group of bits in parallel over several wires at once as opposed to serially over a single wire. One example of this is the Z80 PIO and SIO peripheral chips. The Z80 SIO sends and receives serial data on two dedicated pins, and has other I/O pins which are dedicated to control and status signals. The Z80 PIO has two ports which can each send or receive data 8 bits at a time, or they can be used as individual pins programmed to output or input a single bit (eg. to operate a relay or read the state of a toggle switch).



              Early microcontrollers often consisted simply of a CPU and peripheral devices stuck together on a single chip, so they came in large packages with a lot of pins. Modern microcontrollers have shrunk down the number of pins by sharing them with different peripherals, and provide many more functions such as analog to digital converters (ADC), pulse width modulators (PWM), etc.



              When a pin is internally connected to a dedicated device such as a UART or ADC it is generally called a 'peripheral' pin, and when connected to a parallel port internally it is called a GPIO or 'general purpose I/O' pin. However it might be just be described as a 'digital' pin, or one bit of a 'port'. Some examples:-



              ATmega328p




              Ports as General Digital I/O
              The ports are bi-directional I/O ports with optional internal pull-ups.
              Figure 14-2 shows a functional description of one I/O-port pin, here generically called Pxn.




              AT89S51




              Port 0 is an 8-bit open drain bi-directional I/O port. As an output
              port, each pin can sink eight TTL inputs. When 1s are written to port
              0 pins, the pins can be used as high-impedance inputs.







              share|improve this answer









              $endgroup$

















                0












                $begingroup$

                PIO can mean 'programmed I/O' where a port is controlled directly by the CPU as opposed to being accessed via DMA (particularly in reference to IDE hard drives and printer ports on PCs).



                It can also mean 'Parallel I/O' where data is sent as a group of bits in parallel over several wires at once as opposed to serially over a single wire. One example of this is the Z80 PIO and SIO peripheral chips. The Z80 SIO sends and receives serial data on two dedicated pins, and has other I/O pins which are dedicated to control and status signals. The Z80 PIO has two ports which can each send or receive data 8 bits at a time, or they can be used as individual pins programmed to output or input a single bit (eg. to operate a relay or read the state of a toggle switch).



                Early microcontrollers often consisted simply of a CPU and peripheral devices stuck together on a single chip, so they came in large packages with a lot of pins. Modern microcontrollers have shrunk down the number of pins by sharing them with different peripherals, and provide many more functions such as analog to digital converters (ADC), pulse width modulators (PWM), etc.



                When a pin is internally connected to a dedicated device such as a UART or ADC it is generally called a 'peripheral' pin, and when connected to a parallel port internally it is called a GPIO or 'general purpose I/O' pin. However it might be just be described as a 'digital' pin, or one bit of a 'port'. Some examples:-



                ATmega328p




                Ports as General Digital I/O
                The ports are bi-directional I/O ports with optional internal pull-ups.
                Figure 14-2 shows a functional description of one I/O-port pin, here generically called Pxn.




                AT89S51




                Port 0 is an 8-bit open drain bi-directional I/O port. As an output
                port, each pin can sink eight TTL inputs. When 1s are written to port
                0 pins, the pins can be used as high-impedance inputs.







                share|improve this answer









                $endgroup$















                  0












                  0








                  0





                  $begingroup$

                  PIO can mean 'programmed I/O' where a port is controlled directly by the CPU as opposed to being accessed via DMA (particularly in reference to IDE hard drives and printer ports on PCs).



                  It can also mean 'Parallel I/O' where data is sent as a group of bits in parallel over several wires at once as opposed to serially over a single wire. One example of this is the Z80 PIO and SIO peripheral chips. The Z80 SIO sends and receives serial data on two dedicated pins, and has other I/O pins which are dedicated to control and status signals. The Z80 PIO has two ports which can each send or receive data 8 bits at a time, or they can be used as individual pins programmed to output or input a single bit (eg. to operate a relay or read the state of a toggle switch).



                  Early microcontrollers often consisted simply of a CPU and peripheral devices stuck together on a single chip, so they came in large packages with a lot of pins. Modern microcontrollers have shrunk down the number of pins by sharing them with different peripherals, and provide many more functions such as analog to digital converters (ADC), pulse width modulators (PWM), etc.



                  When a pin is internally connected to a dedicated device such as a UART or ADC it is generally called a 'peripheral' pin, and when connected to a parallel port internally it is called a GPIO or 'general purpose I/O' pin. However it might be just be described as a 'digital' pin, or one bit of a 'port'. Some examples:-



                  ATmega328p




                  Ports as General Digital I/O
                  The ports are bi-directional I/O ports with optional internal pull-ups.
                  Figure 14-2 shows a functional description of one I/O-port pin, here generically called Pxn.




                  AT89S51




                  Port 0 is an 8-bit open drain bi-directional I/O port. As an output
                  port, each pin can sink eight TTL inputs. When 1s are written to port
                  0 pins, the pins can be used as high-impedance inputs.







                  share|improve this answer









                  $endgroup$



                  PIO can mean 'programmed I/O' where a port is controlled directly by the CPU as opposed to being accessed via DMA (particularly in reference to IDE hard drives and printer ports on PCs).



                  It can also mean 'Parallel I/O' where data is sent as a group of bits in parallel over several wires at once as opposed to serially over a single wire. One example of this is the Z80 PIO and SIO peripheral chips. The Z80 SIO sends and receives serial data on two dedicated pins, and has other I/O pins which are dedicated to control and status signals. The Z80 PIO has two ports which can each send or receive data 8 bits at a time, or they can be used as individual pins programmed to output or input a single bit (eg. to operate a relay or read the state of a toggle switch).



                  Early microcontrollers often consisted simply of a CPU and peripheral devices stuck together on a single chip, so they came in large packages with a lot of pins. Modern microcontrollers have shrunk down the number of pins by sharing them with different peripherals, and provide many more functions such as analog to digital converters (ADC), pulse width modulators (PWM), etc.



                  When a pin is internally connected to a dedicated device such as a UART or ADC it is generally called a 'peripheral' pin, and when connected to a parallel port internally it is called a GPIO or 'general purpose I/O' pin. However it might be just be described as a 'digital' pin, or one bit of a 'port'. Some examples:-



                  ATmega328p




                  Ports as General Digital I/O
                  The ports are bi-directional I/O ports with optional internal pull-ups.
                  Figure 14-2 shows a functional description of one I/O-port pin, here generically called Pxn.




                  AT89S51




                  Port 0 is an 8-bit open drain bi-directional I/O port. As an output
                  port, each pin can sink eight TTL inputs. When 1s are written to port
                  0 pins, the pins can be used as high-impedance inputs.








                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 25 mins ago









                  Bruce AbbottBruce Abbott

                  26.8k1 gold badge21 silver badges36 bronze badges




                  26.8k1 gold badge21 silver badges36 bronze badges



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Electrical Engineering Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      Use MathJax to format equations. MathJax reference.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f448950%2fis-there-a-difference-between-pio-and-gpio-pins%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                      Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                      199年 目錄 大件事 到箇年出世嗰人 到箇年死嗰人 節慶、風俗習慣 導覽選單