mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #2538 from bcostm/adcintch_stm32f4
STM32F4xx - Add support of ADC internal channels (Temp, VRef, VBat)pull/2604/head
commit
b1aebbace7
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -222,6 +222,10 @@ typedef enum {
|
||||||
PI_14 = 0x8E,
|
PI_14 = 0x8E,
|
||||||
PI_15 = 0x8F,
|
PI_15 = 0x8F,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -156,6 +156,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_1,
|
A0 = PA_1,
|
||||||
A1 = PA_2,
|
A1 = PA_2,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -139,6 +139,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
LED1 = PD_12,
|
LED1 = PD_12,
|
||||||
LED2 = PD_13,
|
LED2 = PD_13,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)}, // ADC1_IN16
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -222,6 +222,11 @@ typedef enum {
|
||||||
PI_14 = 0x8E,
|
PI_14 = 0x8E,
|
||||||
PI_15 = 0x8F,
|
PI_15 = 0x8F,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
LED1 = PD_13,
|
LED1 = PD_13,
|
||||||
LED2 = PD_12,
|
LED2 = PD_12,
|
||||||
|
|
|
@ -63,6 +63,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
||||||
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
||||||
{PF_10,ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
|
{PF_10,ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,21 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((MODE & 0x0F) << 0) |\
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
((PUPD & 0x07) << 4) |\
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
((AFNUM & 0x0F) << 7)))
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((MODE & 0x0F) << 0) |\
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
((PUPD & 0x07) << 4) |\
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
((AFNUM & 0x0F) << 7) |\
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
((CHANNEL & 0x0F) << 11) |\
|
|
||||||
((INVERTED & 0x01) << 15)))
|
|
||||||
|
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -162,7 +154,6 @@ typedef enum {
|
||||||
PE_14 = 0x4E,
|
PE_14 = 0x4E,
|
||||||
PE_15 = 0x4F,
|
PE_15 = 0x4F,
|
||||||
|
|
||||||
|
|
||||||
PF_0 = 0x50,
|
PF_0 = 0x50,
|
||||||
PF_1 = 0x51,
|
PF_1 = 0x51,
|
||||||
PF_2 = 0x52,
|
PF_2 = 0x52,
|
||||||
|
@ -180,7 +171,6 @@ typedef enum {
|
||||||
PF_14 = 0x5E,
|
PF_14 = 0x5E,
|
||||||
PF_15 = 0x5F,
|
PF_15 = 0x5F,
|
||||||
|
|
||||||
|
|
||||||
PG_0 = 0x60,
|
PG_0 = 0x60,
|
||||||
PG_1 = 0x61,
|
PG_1 = 0x61,
|
||||||
PG_2 = 0x62,
|
PG_2 = 0x62,
|
||||||
|
@ -198,10 +188,14 @@ typedef enum {
|
||||||
PG_14 = 0x6E,
|
PG_14 = 0x6E,
|
||||||
PG_15 = 0x6F,
|
PG_15 = 0x6F,
|
||||||
|
|
||||||
|
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
LED1 = PG_13, // Corresponds to LD3 on MB1075B
|
LED1 = PG_13, // Corresponds to LD3 on MB1075B
|
||||||
LED2 = PG_14, // Corresponds to LD4 on MB1075B
|
LED2 = PG_14, // Corresponds to LD4 on MB1075B
|
||||||
|
|
|
@ -63,6 +63,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
||||||
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
||||||
{PF_10,ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
|
{PF_10,ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -154,7 +154,6 @@ typedef enum {
|
||||||
PE_14 = 0x4E,
|
PE_14 = 0x4E,
|
||||||
PE_15 = 0x4F,
|
PE_15 = 0x4F,
|
||||||
|
|
||||||
|
|
||||||
PF_0 = 0x50,
|
PF_0 = 0x50,
|
||||||
PF_1 = 0x51,
|
PF_1 = 0x51,
|
||||||
PF_2 = 0x52,
|
PF_2 = 0x52,
|
||||||
|
@ -172,7 +171,6 @@ typedef enum {
|
||||||
PF_14 = 0x5E,
|
PF_14 = 0x5E,
|
||||||
PF_15 = 0x5F,
|
PF_15 = 0x5F,
|
||||||
|
|
||||||
|
|
||||||
PG_0 = 0x60,
|
PG_0 = 0x60,
|
||||||
PG_1 = 0x61,
|
PG_1 = 0x61,
|
||||||
PG_2 = 0x62,
|
PG_2 = 0x62,
|
||||||
|
@ -190,7 +188,6 @@ typedef enum {
|
||||||
PG_14 = 0x6E,
|
PG_14 = 0x6E,
|
||||||
PG_15 = 0x6F,
|
PG_15 = 0x6F,
|
||||||
|
|
||||||
|
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
PH_2 = 0x72,
|
PH_2 = 0x72,
|
||||||
|
@ -208,7 +205,6 @@ typedef enum {
|
||||||
PH_14 = 0x7E,
|
PH_14 = 0x7E,
|
||||||
PH_15 = 0x7F,
|
PH_15 = 0x7F,
|
||||||
|
|
||||||
|
|
||||||
PI_0 = 0x80,
|
PI_0 = 0x80,
|
||||||
PI_1 = 0x81,
|
PI_1 = 0x81,
|
||||||
PI_2 = 0x82,
|
PI_2 = 0x82,
|
||||||
|
@ -226,7 +222,6 @@ typedef enum {
|
||||||
PI_14 = 0x8E,
|
PI_14 = 0x8E,
|
||||||
PI_15 = 0x8F,
|
PI_15 = 0x8F,
|
||||||
|
|
||||||
|
|
||||||
PJ_0 = 0x90,
|
PJ_0 = 0x90,
|
||||||
PJ_1 = 0x91,
|
PJ_1 = 0x91,
|
||||||
PJ_2 = 0x92,
|
PJ_2 = 0x92,
|
||||||
|
@ -244,6 +239,10 @@ typedef enum {
|
||||||
PK_6 = 0xA6,
|
PK_6 = 0xA6,
|
||||||
PK_7 = 0xA7,
|
PK_7 = 0xA7,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PB_1,
|
A0 = PB_1,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Not connected
|
// Not connected
|
||||||
NC = (int)0xFFFFFFFF,
|
NC = (int)0xFFFFFFFF,
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PC_2,
|
A0 = PC_2,
|
||||||
A1 = PC_0,
|
A1 = PC_0,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)}, // ADC1_IN16
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -125,6 +125,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
LED1 = PA_9,
|
LED1 = PA_9,
|
||||||
LED2 = PA_9,
|
LED2 = PA_9,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
XBEE_DOUT = PA_2,
|
XBEE_DOUT = PA_2,
|
||||||
XBEE_DIN = PA_3,
|
XBEE_DIN = PA_3,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)}, // ADC1_IN16
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,14 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -125,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -87,6 +87,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
||||||
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
||||||
{PF_10, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 - ARDUINO A5
|
{PF_10, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 - ARDUINO A5
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,22 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((MODE & 0x0F) << 0) |\
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
((PUPD & 0x07) << 4) |\
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
((AFNUM & 0x0F) << 7)))
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((MODE & 0x0F) << 0) |\
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
((PUPD & 0x07) << 4) |\
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
((AFNUM & 0x0F) << 7) |\
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
((CHANNEL & 0x0F) << 11) |\
|
|
||||||
((INVERTED & 0x01) << 15)))
|
|
||||||
|
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
|
||||||
|
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -200,6 +191,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_3,
|
A0 = PA_3,
|
||||||
A1 = PC_0,
|
A1 = PC_0,
|
||||||
|
|
|
@ -55,6 +55,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC1_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC1_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC1_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -124,6 +124,11 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -89,6 +89,9 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
{PF_8, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 6, 0)}, // ADC3_IN6
|
||||||
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
{PF_9, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 7, 0)}, // ADC3_IN7
|
||||||
//{PF_10, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 - ARDUINO A5
|
//{PF_10, ADC_3, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 8, 0)}, // ADC3_IN8 - ARDUINO A5
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_VBAT)
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)}, // ADC1_IN17
|
||||||
|
{ADC_VBAT, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 18, 0)}, // ADC1_IN18 (shared with ADC_TEMP)
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -192,6 +192,11 @@ typedef enum {
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
PH_2 = 0x72,
|
PH_2 = 0x72,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_3,
|
A0 = PA_3,
|
||||||
A1 = PC_0,
|
A1 = PC_0,
|
||||||
|
|
|
@ -37,13 +37,13 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
// See stm32f4xx_hal_gpio.h and stm32f4xx_hal_gpio_ex.h for values of MODE, PUPD and AFNUM
|
||||||
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM) << 7) | ((PUPD) << 4) | ((MODE) << 0)))
|
#define STM_PIN_DATA(MODE, PUPD, AFNUM) ((int)(((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 15) | ((CHANNEL & 0x0F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
#define STM_PIN_DATA_EXT(MODE, PUPD, AFNUM, CHANNEL, INVERTED) ((int)(((INVERTED & 0x01) << 16) | ((CHANNEL & 0x1F) << 11) | ((AFNUM & 0x0F) << 7) | ((PUPD & 0x07) << 4) | ((MODE & 0x0F) << 0)))
|
||||||
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
#define STM_PIN_MODE(X) (((X) >> 0) & 0x0F)
|
||||||
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
#define STM_PIN_PUPD(X) (((X) >> 4) & 0x07)
|
||||||
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
#define STM_PIN_AFNUM(X) (((X) >> 7) & 0x0F)
|
||||||
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x0F)
|
#define STM_PIN_CHANNEL(X) (((X) >> 11) & 0x1F)
|
||||||
#define STM_PIN_INVERTED(X) (((X) >> 15) & 0x01)
|
#define STM_PIN_INVERTED(X) (((X) >> 16) & 0x01)
|
||||||
#define STM_MODE_INPUT (0)
|
#define STM_MODE_INPUT (0)
|
||||||
#define STM_MODE_OUTPUT_PP (1)
|
#define STM_MODE_OUTPUT_PP (1)
|
||||||
#define STM_MODE_OUTPUT_OD (2)
|
#define STM_MODE_OUTPUT_OD (2)
|
||||||
|
@ -109,6 +109,11 @@ typedef enum {
|
||||||
PH_8 = 0x78, PH_9 = 0x79, PH_10 = 0x7A, PH_11 = 0x7B,
|
PH_8 = 0x78, PH_9 = 0x79, PH_10 = 0x7A, PH_11 = 0x7B,
|
||||||
PH_12 = 0x7C, PH_13 = 0x7D, PH_14 = 0x7E, PH_15 = 0x7F,
|
PH_12 = 0x7C, PH_13 = 0x7D, PH_14 = 0x7E, PH_15 = 0x7F,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
ADC_VBAT = 0xF2,
|
||||||
|
|
||||||
// Module Pins
|
// Module Pins
|
||||||
// A
|
// A
|
||||||
P_A5 = PC_2, // UART-DTR
|
P_A5 = PC_2, // UART-DTR
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* mbed Microcontroller Library
|
/* mbed Microcontroller Library
|
||||||
* Copyright (c) 2015, STMicroelectronics
|
* Copyright (c) 2016, STMicroelectronics
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -58,8 +58,10 @@ void analogin_init(analogin_t *obj, PinName pin)
|
||||||
MBED_ASSERT(function != (uint32_t)NC);
|
MBED_ASSERT(function != (uint32_t)NC);
|
||||||
obj->channel = STM_PIN_CHANNEL(function);
|
obj->channel = STM_PIN_CHANNEL(function);
|
||||||
|
|
||||||
// Configure GPIO
|
// Configure GPIO excepted for internal channels (Temperature, Vref, Vbat)
|
||||||
pinmap_pinout(pin, PinMap_ADC);
|
if ((obj->channel != 16) && (obj->channel != 17) && (obj->channel != 18)) {
|
||||||
|
pinmap_pinout(pin, PinMap_ADC);
|
||||||
|
}
|
||||||
|
|
||||||
// Save pin number for the read function
|
// Save pin number for the read function
|
||||||
obj->pin = pin;
|
obj->pin = pin;
|
||||||
|
@ -101,6 +103,7 @@ void analogin_init(analogin_t *obj, PinName pin)
|
||||||
AdcHandle.Init.NbrOfConversion = 1;
|
AdcHandle.Init.NbrOfConversion = 1;
|
||||||
AdcHandle.Init.DMAContinuousRequests = DISABLE;
|
AdcHandle.Init.DMAContinuousRequests = DISABLE;
|
||||||
AdcHandle.Init.EOCSelection = DISABLE;
|
AdcHandle.Init.EOCSelection = DISABLE;
|
||||||
|
|
||||||
if (HAL_ADC_Init(&AdcHandle) != HAL_OK) {
|
if (HAL_ADC_Init(&AdcHandle) != HAL_OK) {
|
||||||
error("Cannot initialize ADC\n");
|
error("Cannot initialize ADC\n");
|
||||||
}
|
}
|
||||||
|
@ -114,7 +117,7 @@ static inline uint16_t adc_read(analogin_t *obj)
|
||||||
|
|
||||||
// Configure ADC channel
|
// Configure ADC channel
|
||||||
sConfig.Rank = 1;
|
sConfig.Rank = 1;
|
||||||
sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
|
sConfig.SamplingTime = ADC_SAMPLETIME_15CYCLES;
|
||||||
sConfig.Offset = 0;
|
sConfig.Offset = 0;
|
||||||
|
|
||||||
switch (obj->channel) {
|
switch (obj->channel) {
|
||||||
|
@ -166,6 +169,15 @@ static inline uint16_t adc_read(analogin_t *obj)
|
||||||
case 15:
|
case 15:
|
||||||
sConfig.Channel = ADC_CHANNEL_15;
|
sConfig.Channel = ADC_CHANNEL_15;
|
||||||
break;
|
break;
|
||||||
|
case 16:
|
||||||
|
sConfig.Channel = ADC_CHANNEL_16;
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
sConfig.Channel = ADC_CHANNEL_17;
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
sConfig.Channel = ADC_CHANNEL_18;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue