14
INSTITUT MINES-TÉLÉCOM GPIO General Purpose Input/Output ELECINF344/ELECINF381 Alexandre Blanchet Clémentine Barbet Thibaut Collette

GPIO – General Purpose Input/Output …...INSTITUT MINES-TÉLÉCOM Généralités Chaque port peut être configuré par le software en entrée ou en sortie grâce à un registre

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

INSTITUT MINES-TÉLÉCOM

GPIO – General Purpose

Input/Output ELECINF344/ELECINF381

• Alexandre Blanchet

• Clémentine Barbet

• Thibaut Collette

INSTITUT MINES-TÉLÉCOM

Plan

■ Généralités sur les GPIO

• Open drain, Push-pull, …

■ Configuration GPIO sur STM32

■ PAL Driver

■ Convertisseur Analogique Numérique

• Généralités

• Cas du STM32

22 fév 2013 1 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Généralités

■ Chaque port peut être configuré par le software en entrée

ou en sortie grâce à un registre de configuration (32 bits).

■ Les ports du GPIO peuvent être partagés avec des

AFIO.

22 fév 2013 2 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Output Mode – Open Drain et Push-pull

22 fév 2013 3 GPIO - ELECINF344/381 - ROSE

Push-pull Open Drain

Les deux transistors N et P sont activés.

Le potentiel de la broche vaut Gnd ou

Vcc.

Le GPIO impose le potentiel.

Seul le transistor N est activé.

Le port ne peut que forcer le potentiel de la

broche à GND.

Si l’interrupteur est ouvert, le circuit extérieur

fixe le potentiel de la broche.

INSTITUT MINES-TÉLÉCOM

Input Mode – Floating input et Pull Down/Up

input

22 fév 2013 4 GPIO - ELECINF344/381 - ROSE

Pull Up/Pull down

Open Drain

Floating Input

Quelle valeur pour la résistance de pull-up ? • Plus la résistance est faible, plus l’intensité croît. L’intensité maximale supportée

détermine une valeur minimale pour la résistance.

• Lorsque les transistors sont tous bloqués, ils se comportent comme des capacités

parasites et on a un circuit RC : plus R est grand plus on mettra de temps à passer de

0 à 1, la fréquence du bus impose une valeur maximale.

INSTITUT MINES-TÉLÉCOM

Les GPIO sur STM32

■ Les fonctionnalités des GPIO :

• Remappage

• Interruptions externes

• Autres fonctions

• Mécanisme de verrouillage

• Set/reset de bit de façon atomique

• Configuration analogique

22 fév 2013 5 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Les ports du STM32

■ Il y a 7 ports GPIO sur le STM32 étudié

■ Chaque port possède plusieurs registres :

• 2 registres de configuration : GPIOx_CRL et

GPIOxCRH

• 2 registres de données : GPIOx_IDR et GPIOx_ODR

• 1 registre de set/reset : GPIOx_BSRR

• 1 registre de reset : GPIOx_BRR

22 fév 2013 6 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Autres fonctions I/O (AFIO)

■ CAN

■ Timer

■ I2C

■ USART

■ SPI

■ ADC

■ JTAG

■ Ethernet

22 fév 2013 7 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Exemple de board.h - ChibiOs

/*

* IO pins assignments.

*/

#define GPIOA_BUTTON 0

#define GPIOA_PIN1 1

#define GPIOA_PIN2 2

#define GPIOA_PIN3 3

#define GPIOA_PIN4 4

*/

#define VAL_GPIOA_MODER (PIN_MODE_INPUT(GPIOA_BUTTON) | \

PIN_MODE_INPUT(GPIOA_PIN1) | \

PIN_MODE_INPUT(GPIOA_PIN2) | \

PIN_MODE_INPUT(GPIOA_PIN3) | \

PIN_MODE_INPUT(GPIOA_PIN4) | \

PIN_MODE_INPUT(GPIOA_PIN5) | \

PIN_MODE_INPUT(GPIOA_PIN6) | \ )

22 fév 2013 8 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Exemple de board.c - ChibiOs

#if HAL_USE_PAL || defined(__DOXYGEN__) /** * @brief PAL setup. * @details Digital I/O ports static configuration as defined in @p board.h. * This variable is used by the HAL when initializing the PAL driver. */ const PALConfig pal_default_config = { {VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR, VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH}, {VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR, VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH}, {VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR, VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH}, {VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR, VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH}, {VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR, VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH} }; #endif

22 fév 2013 9 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

Généralités sur l’échantillonnage

■ Théorème de Shannon

𝟏

𝑻𝒆≥ 𝟐. 𝒇𝑴

22 fév 2013 10 GPIO - ELECINF344/381 - ROSE

𝑻𝒆 𝟏

𝒇𝑴

𝑇𝑒 ∶ 𝑃é𝑟𝑖𝑜𝑑𝑒 𝑑𝑒 𝑙′é𝑐ℎ𝑎𝑛𝑡𝑖𝑙𝑙𝑜𝑛𝑎𝑔𝑒

𝑓𝑀 ∶ 𝐹𝑟é𝑞𝑢𝑒𝑛𝑐𝑒 𝑚𝑎𝑥𝑖𝑚𝑎𝑙𝑒 𝑑𝑢 𝑠𝑖𝑔𝑛𝑎𝑙

x(t)

t

INSTITUT MINES-TÉLÉCOM

Convertisseur analogique numérique

Sur le STM 32 :

• Précision : < 1mV (si Vcc = 3,3V)

• Single or continuous mode

• Scan mode

• Self-calibration

22 fév 2013 11 GPIO - ELECINF344/381 - ROSE

INSTITUT MINES-TÉLÉCOM

ADC on STM32

■ How to use ?

22 fév 2013 12 GPIO - ELECINF344/381 - ROSE

Prescalaire

Bit ADON à 1

Flag EOC

INSTITUT MINES-TÉLÉCOM

Sources

■ datasheet du STM32F103CB, www.st.com/st-web-

ui/static/active/en/resource/technical/document/datasheet/CD00

161566.pdf

■ le reference manual du STM32F103CB, www.st.com/st-web-

ui/static/active/en/resource/technical/document/reference_manu

al/CD00171190.pdf

■ Cours en ligne de l'Insa

Toulouse, www.google.com/url?sa=t&rct=j&q=insa%20toulouse

%20gpio&source=web&cd=1&ved=0CDEQFjAA&url=http%3A%

2F%2Fmoodle.insa-

toulouse.fr%2Fpluginfile.php%2F34819%2Fmod_resource%2Fc

ontent%2F2%2FFormation_STM32_IO_v6.pdf&ei=opkmUarsIoy

r0AXgnIDIDQ&usg=AFQjCNECURUb8Qusx6650NyqgEwxrNjZe

g&bvm=bv.42661473,d.d2k&cad=rja

■ Wikipedia

22 fév 2013 13 GPIO - ELECINF344/381 - ROSE