Skip to content

STM32H7 ADC : dual pad feature update #14733

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
extern "C" {
#endif

#define ALTC 0xF00
#define DUAL_PAD 0xF00

typedef enum {
ALT0 = 0x100,
Expand All @@ -39,9 +39,7 @@ typedef enum {

typedef enum {
PA_0 = 0x00,
PA_0C = PA_0 | ALTC, // dual pad
PA_1 = 0x01,
PA_1C = PA_1 | ALTC, // dual pad
PA_1_ALT0 = PA_1 | ALT0, // same pin used for alternate HW
PA_2 = 0x02,
PA_2_ALT0 = PA_2 | ALT0, // same pin used for alternate HW
Expand Down Expand Up @@ -120,10 +118,10 @@ typedef enum {
PC_1_ALT3 = PC_1 | ALT3, // same pin used for alternate HW
PC_1_ALT4 = PC_1 | ALT4, // same pin used for alternate HW
PC_2 = 0x22,
PC_2C = PC_2 | ALTC, // dual pad
PC_2C = PC_2 | DUAL_PAD, // dual pad
PC_2C_ALT0 = PC_2C | ALT0, // same pin used for alternate HW
PC_3 = 0x23,
PC_3C = PC_3 | ALTC, // dual pad
PC_3C = PC_3 | DUAL_PAD, // dual pad
PC_4 = 0x24,
PC_4_ALT0 = PC_4 | ALT0, // same pin used for alternate HW
PC_5 = 0x25,
Expand Down Expand Up @@ -230,9 +228,9 @@ typedef enum {
// Arduino Uno (Rev3) pins
ARDUINO_UNO_A0 = PA_3,
ARDUINO_UNO_A1 = PC_0,
ARDUINO_UNO_A2 = PC_3,
ARDUINO_UNO_A2 = PC_3C,
ARDUINO_UNO_A3 = PB_1,
ARDUINO_UNO_A4 = PC_2,
ARDUINO_UNO_A4 = PC_2C,
ARDUINO_UNO_A5 = PF_10,

ARDUINO_UNO_D0 = PB_7,
Expand Down Expand Up @@ -416,8 +414,8 @@ typedef enum {
} PinName;

// Standardized LED and button names
#define LED1 PB_0 // LD1
#define LED2 PE_1 // Yellow
#define LED1 PB_0 // LD1 [Green]
#define LED2 PE_1 // LD2 [Yellow]
#define LED3 PB_14 // LD3 [Red]
#define BUTTON1 PC_13 // USER_Btn [B1]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
extern "C" {
#endif

#define ALTC 0xF00
#define DUAL_PAD 0xF00

typedef enum {
ALT0 = 0x100,
Expand All @@ -39,12 +39,12 @@ typedef enum {

typedef enum {
PA_0 = 0x00,
PA_0C = PA_0 | ALTC, // dual pad
PA_0C = PA_0 | DUAL_PAD, // dual pad
PA_0C_ALT0 = PA_0C | ALT0, // same pin used for alternate HW
PA_0C_ALT1 = PA_0C | ALT1, // same pin used for alternate HW
PA_0C_ALT2 = PA_0C | ALT2, // same pin used for alternate HW
PA_1 = 0x01,
PA_1C = PA_1 | ALTC, // dual pad
PA_1C = PA_1 | DUAL_PAD, // dual pad
PA_1C_ALT0 = PA_1C | ALT0, // same pin used for alternate HW
PA_1_ALT0 = PA_1 | ALT0, // same pin used for alternate HW
PA_2 = 0x02,
Expand Down Expand Up @@ -124,15 +124,15 @@ typedef enum {
PC_1_ALT3 = PC_1 | ALT3, // same pin used for alternate HW
PC_1_ALT4 = PC_1 | ALT4, // same pin used for alternate HW
PC_2 = 0x22,
PC_2C = PC_2 | ALTC, // dual pad
PC_2C = PC_2 | DUAL_PAD, // dual pad
PC_2C_ALT0 = PC_2C | ALT0, // same pin used for alternate HW
PC_2_ALT0 = PC_2 | ALT0, // same pin used for alternate HW
PC_2_ALT1 = PC_2 | ALT1, // same pin used for alternate HW
PC_2_ALT2 = PC_2 | ALT2, // same pin used for alternate HW
PC_2_ALT3 = PC_2 | ALT3, // same pin used for alternate HW
PC_2_ALT4 = PC_2 | ALT4, // same pin used for alternate HW
PC_3 = 0x23,
PC_3C = PC_3 | ALTC, // dual pad
PC_3C = PC_3 | DUAL_PAD, // dual pad
PC_3_ALT0 = PC_3 | ALT0, // same pin used for alternate HW
PC_3_ALT1 = PC_3 | ALT1, // same pin used for alternate HW
PC_3_ALT2 = PC_3 | ALT2, // same pin used for alternate HW
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
extern "C" {
#endif

#define ALTC 0xF00
#define DUAL_PAD 0xF00

typedef enum {
ALT0 = 0x100,
Expand All @@ -55,12 +55,12 @@ typedef enum {

typedef enum {
PA_0 = 0x00,
PA_0C = PA_0 | ALTC, // dual pad
PA_0C = PA_0 | DUAL_PAD, // dual pad
PA_0C_ALT0 = PA_0C | ALT0, // same pin used for alternate HW
PA_0C_ALT1 = PA_0C | ALT1, // same pin used for alternate HW
PA_0C_ALT2 = PA_0C | ALT2, // same pin used for alternate HW
PA_1 = 0x01,
PA_1C = PA_1 | ALTC, // dual pad
PA_1C = PA_1 | DUAL_PAD, // dual pad
PA_1C_ALT0 = PA_1C | ALT0, // same pin used for alternate HW
PA_1_ALT0 = PA_1 | ALT0, // same pin used for alternate HW
PA_2 = 0x02,
Expand Down Expand Up @@ -140,15 +140,15 @@ typedef enum {
PC_1_ALT3 = PC_1 | ALT3, // same pin used for alternate HW
PC_1_ALT4 = PC_1 | ALT4, // same pin used for alternate HW
PC_2 = 0x22,
PC_2C = PC_2 | ALTC, // dual pad
PC_2C = PC_2 | DUAL_PAD, // dual pad
PC_2C_ALT0 = PC_2C | ALT0, // same pin used for alternate HW
PC_2_ALT0 = PC_2 | ALT0, // same pin used for alternate HW
PC_2_ALT1 = PC_2 | ALT1, // same pin used for alternate HW
PC_2_ALT2 = PC_2 | ALT2, // same pin used for alternate HW
PC_2_ALT3 = PC_2 | ALT3, // same pin used for alternate HW
PC_2_ALT4 = PC_2 | ALT4, // same pin used for alternate HW
PC_3 = 0x23,
PC_3C = PC_3 | ALTC, // dual pad
PC_3C = PC_3 | DUAL_PAD, // dual pad
PC_3_ALT0 = PC_3 | ALT0, // same pin used for alternate HW
PC_3_ALT1 = PC_3 | ALT1, // same pin used for alternate HW
PC_3_ALT2 = PC_3 | ALT2, // same pin used for alternate HW
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* SPDX-License-Identifier: BSD-3-Clause
******************************************************************************
*
* Copyright (c) 2016-2020 STMicroelectronics.
* Copyright (c) 2016-2021 STMicroelectronics.
* All rights reserved.
*
* This software component is licensed by ST under BSD 3-Clause license,
Expand Down Expand Up @@ -326,6 +326,7 @@ MBED_WEAK const PinMap PinMap_SPI_MOSI[] = {
{PB_5_ALT1, SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF8_SPI6)},
{PB_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
{PC_1, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
{PC_3C, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
{PC_12, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
{PD_6, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI3)},
{PD_7, SPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI1)},
Expand All @@ -344,6 +345,7 @@ MBED_WEAK const PinMap PinMap_SPI_MISO[] = {
{PB_4_ALT0, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
{PB_4_ALT1, SPI_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF8_SPI6)},
{PB_14, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)}, // Connected to LD3 (Red Led)
{PC_2C, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI2)},
{PC_11, SPI_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF6_SPI3)},
{PE_5, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
{PE_13, SPI_4, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF5_SPI4)},
Expand Down Expand Up @@ -418,6 +420,7 @@ MBED_WEAK const PinMap PinMap_CAN_TD[] = {

MBED_WEAK const PinMap PinMap_QSPI_DATA0[] = {
{PB_1, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PC_3C, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PC_9, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PD_11, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PF_8, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
Expand All @@ -434,6 +437,7 @@ MBED_WEAK const PinMap PinMap_QSPI_DATA1[] = {

MBED_WEAK const PinMap PinMap_QSPI_DATA2[] = {
{PA_7, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PC_2C, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PE_2, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PF_7, QSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{NC, NC, 0}
Expand Down Expand Up @@ -468,6 +472,7 @@ MBED_WEAK const PinMap PinMap_QSPI_SSEL[] = {

MBED_WEAK const PinMap PinMap_OSPI_DATA0[] = {
{PB_1, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PC_3C, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PC_9, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PD_11, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
{PF_8, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO0
Expand All @@ -484,6 +489,7 @@ MBED_WEAK const PinMap PinMap_OSPI_DATA1[] = {

MBED_WEAK const PinMap PinMap_OSPI_DATA2[] = {
{PA_7, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PC_2C, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PE_2, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{PF_7, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO2
{NC, NC, 0}
Expand All @@ -505,12 +511,14 @@ MBED_WEAK const PinMap PinMap_OSPI_DATA4[] = {
};

MBED_WEAK const PinMap PinMap_OSPI_DATA5[] = {
{PC_2C, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO5
{PD_5, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO5
{PE_8, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO5
{NC, NC, 0}
};

MBED_WEAK const PinMap PinMap_OSPI_DATA6[] = {
{PC_3C, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO6
{PD_6, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO6
{PE_9, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO6
{PG_9, OSPI_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_OCTOSPIM_P1)}, // OCTOSPIM_P1_IO6
Expand Down Expand Up @@ -571,6 +579,8 @@ MBED_WEAK const PinMap PinMap_USB_HS[] = {
{PB_12, USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG1_HS)}, // USB_OTG_HS_ULPI_D5
{PB_13, USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG1_HS)}, // USB_OTG_HS_ULPI_D6
{PC_0, USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG1_HS)}, // USB_OTG_HS_ULPI_STP
{PC_2C, USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG1_HS)}, // USB_OTG_HS_ULPI_DIR
{PC_3C, USB_HS, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_OTG1_HS)}, // USB_OTG_HS_ULPI_NXT
#endif /* MBED_CONF_TARGET_USB_SPEED */
{NC, NC, 0}
};
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
extern "C" {
#endif

#define ALTC 0xF00
#define DUAL_PAD 0xF00

typedef enum {
ALT0 = 0x100,
Expand All @@ -37,9 +37,7 @@ typedef enum {

typedef enum {
PA_0 = 0x00,
PA_0C = PA_0 | ALTC, // dual pad
PA_1 = 0x01,
PA_1C = PA_1 | ALTC, // dual pad
PA_1_ALT0 = PA_1 | ALT0, // same pin used for alternate HW
PA_2 = 0x02,
PA_2_ALT0 = PA_2 | ALT0, // same pin used for alternate HW
Expand Down Expand Up @@ -113,10 +111,10 @@ typedef enum {
PC_1_ALT1 = PC_1 | ALT1, // same pin used for alternate HW
PC_1_ALT2 = PC_1 | ALT2, // same pin used for alternate HW
PC_2 = 0x22,
PC_2C = PC_2 | ALTC, // dual pad
PC_2C = PC_2 | DUAL_PAD, // dual pad
PC_2C_ALT0 = PC_2C | ALT0, // same pin used for alternate HW
PC_3 = 0x23,
PC_3C = PC_3 | ALTC, // dual pad
PC_3C = PC_3 | DUAL_PAD, // dual pad
PC_4 = 0x24,
PC_4_ALT0 = PC_4 | ALT0, // same pin used for alternate HW
PC_5 = 0x25,
Expand Down
15 changes: 0 additions & 15 deletions targets/TARGET_STM/TARGET_STM32H7/analogin_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,21 +77,6 @@ void analogin_init(analogin_t *obj, PinName pin)
MBED_ASSERT(obj->handle.Instance != (ADC_TypeDef *)NC);
MBED_ASSERT(function != (uint32_t)NC);

#if defined(ALTC)
if (pin == PA_0C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PA0, SYSCFG_SWITCH_PA0_OPEN);
}
if (pin == PA_1C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PA1, SYSCFG_SWITCH_PA1_OPEN);
}
if (pin == PC_2C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PC2, SYSCFG_SWITCH_PC2_OPEN);
}
if (pin == PC_3C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PC3, SYSCFG_SWITCH_PC3_OPEN);
}
#endif /* ALTC */

obj->channel = STM_PIN_CHANNEL(function);
obj->differential = STM_PIN_INVERTED(function);

Expand Down
1 change: 1 addition & 0 deletions targets/TARGET_STM/TARGET_STM32H7/objects.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "stm32h7xx_ll_cortex.h"
#endif /* CONFIG_STM32H7_DUAL_CORE */
#include "stm32h7xx_ll_pwr.h"
#include "stm32h7xx_ll_system.h"

#ifdef __cplusplus
extern "C" {
Expand Down
15 changes: 0 additions & 15 deletions targets/TARGET_STM/gpio_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -136,21 +136,6 @@ void gpio_init(gpio_t *obj, PinName pin)
// Enable GPIO clock
GPIO_TypeDef *gpio = Set_GPIO_Clock(port_index);

#if defined(ALTC)
if (pin == PA_0C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PA0, SYSCFG_SWITCH_PA0_CLOSE);
}
if (pin == PA_1C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PA1, SYSCFG_SWITCH_PA1_CLOSE);
}
if (pin == PC_2C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PC2, SYSCFG_SWITCH_PC2_CLOSE);
}
if (pin == PC_3C) {
HAL_SYSCFG_AnalogSwitchConfig(SYSCFG_SWITCH_PC3, SYSCFG_SWITCH_PC3_CLOSE);
}
#endif /* ALTC */

// Fill GPIO object structure for future use
obj->mask = gpio_set(pin);
obj->gpio = gpio;
Expand Down
Loading