0% found this document useful (0 votes)
28 views15 pages

(MCU) Lecture2 - GPIO

Uploaded by

bach.buissrr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views15 pages

(MCU) Lecture2 - GPIO

Uploaded by

bach.buissrr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Microcontroller GPIO

LÊ TRỌNG NHÂN
[email protected]
[email protected]
Content
▪ GPIO Output Mode
▪ GPIO Input Mode
▪ Analog Mode
▪ Alternative function Mode

2
GPIO Output ▪ T1 is the PMOS
and T2 is the NMOS.

▪ When we write 1 from


our code, the first
inverter will make it
as 0

▪ T1 will be activated
Ouput HIGH Output Low and T2 will be
deactivated

▪ T1 will take
the Vcc and give it to
the GPIO pin
3
GPIO Input
▪ When input GPIO = 1,
the inverter makes it as 0

▪ PMOS T1 is activated and


the NMOS T2 is
deactivated

▪ T1 will take the Vcc and


give it to the processor 🡪
get 1 in the software
program

▪ Opposite behaviors occur


when GPIO pin = 0

4
GPIO Input Modes
▪ High-impedance or Floating
▪ Pull-up
▪ Pull-down

5
High-impedance
▪ Whenever the microcontroller is powered
ON, the GPIO pins are by default in this
HIGH impedance state input mode.

▪ High-impedance or HI-Z State of a GPIO is


the state when a pin is floating by not
connecting to either HIGH (VCC) or LOW
(GND) Voltage levels.

▪ Its state is indeterminate (cannot


determine the logic level, which is 0 or 1)
unless it is driven high or low externally.

▪ Floating state can lead to leakage current,


which may result in high power
consumption because a floating pin is
highly susceptible to picking up the noise
and may result in leakage current.

▪ 🡪 It is recommended to keep the unused


pins in either a pull-up or pull-down state
to avoid leakage of current.
6
Pull Up
▪ The internal pull-up
resistor is connected to
the pin. So, the state will
be HIGH unless an
external pull-down
resistor is used.

▪ There will be a particular


register to enable this
pull-up resistor in the
microcontroller (check
on the datasheet)

7
Pull Down
▪ In this type, the internal
pull-down resistor is
connected to the pin. So,
the state will be Low unless
an external pull-up resistor
is used.

▪ There will be a particular


register to enable this
pull-down resistor in the
microcontroller.

8
GPIO Output Modes
▪ The GPIO is used to drive the electrical signal (high or
low) to the pin when it is configured as a output. There
are primarily two configuration options for GPIO outputs:
▫ Push-pull
▫ Open-drain

9
Push-pull
▪ This state is the default state of the GPIO output mode.
The pin can “push” the signal high or “pull” it low using
the PMOS transistor or NMOS transistor.

▪ There is no need for pull-up or pull-down resistors as the


PMOS and NMOS transistors do that job.

10
Open-Drain
▪ In GPIO output mode, the output buffer is formed using the
PMOS and NMOS transistors. If you remove the PMOS
transistor, then it will be an open drain output mode.

▪ The name comes from the fact that the MOSFET’s drain isn’t
internally connected to anything. If you use BJT instead of
MOSFET, then this is called an Open collector

▪ When you make the NMOS to high, then it will supply a


GND. The GPIO pin will be Low.

▪ When you turn off the NMOS, the GPIO will not be
connected to either Vcc or GND. It will be in a floating state.
So, the output will be either Low or high impedance
(floating). It can pull the pin towards the ground, but it
cannot drive it high.

▪ Open drain outputs are most commonly used in


communication interfaces where multiple devices are
connected on the same line (e.g. I2C, One-Wire, etc.). When
all of the outputs of the devices connected to the line are in
the Hi-Z state, the line is driven to a default logic 1 level by a
pull-up. Any device can pull the line to logic 0 using its open
drain ouput and all devices can see this level.
11
Analog Mode
▪ This mode connects the pin to an internal ADC
(analog-to-digital converter) and allows you to read a
value that represents a given voltage in a pin.
▪ The value depends on the resolution of the ADC, for
example, a 12-bit ADC can have values that go from 0 to
4095.
▪ This value is mapped to a voltage that is between 0V and
(usually) the voltage the microcontroller is running (3.3V
for example).
▪ When a GPIO is configured in analog mode the input
pull-up/pull-down resistors are disconnected (floating).

12
Alternate Function Mode
▪ GPIO pins have the capability of providing an alternate
function apart from the regular three modes.

▪ The pins are multiplexed to provide functionalities: UART


Rx/Tx pins, I2C pins, etc.

▪ There will be a separate register to set the alternate


functions.

13
LED BLINKY on STM32CUBE IDE

[STM32CubeIDE]
https://www.youtube.com/watch?v=ZuBKAAFxjgk
[Proteus Simulation]
https://www.youtube.com/watch?v=b5K0uxedVDw
Software Timer

You might also like