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