mirror of https://github.com/ARMmbed/mbed-os.git
STM32L1xx - Add support of ADC internal channels (Temperature, VRef)
parent
49fe84ccd0
commit
50cb26040a
|
@ -59,6 +59,8 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,10 @@ typedef enum {
|
||||||
//PH_0 = 0x70,
|
//PH_0 = 0x70,
|
||||||
//PH_1 = 0x71,
|
//PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -59,6 +59,8 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,10 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
|
||||||
// Arduino connector namings
|
// Arduino connector namings
|
||||||
A0 = PA_0,
|
A0 = PA_0,
|
||||||
A1 = PA_1,
|
A1 = PA_1,
|
||||||
|
|
|
@ -59,6 +59,8 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
{PC_3, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 13, 0)}, // ADC_IN13
|
||||||
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
{PC_4, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 14, 0)}, // ADC_IN14
|
||||||
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
{PC_5, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 15, 0)}, // ADC_IN15
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,10 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
|
||||||
// Generic signals namings
|
// Generic signals namings
|
||||||
LED1 = PB_2,
|
LED1 = PB_2,
|
||||||
LED2 = PB_2,
|
LED2 = PB_2,
|
||||||
|
|
|
@ -49,6 +49,8 @@ const PinMap PinMap_ADC[] = {
|
||||||
{PB_13, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 19, 0)}, // ADC_IN19
|
{PB_13, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 19, 0)}, // ADC_IN19
|
||||||
{PB_14, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 20, 0)}, // ADC_IN20
|
{PB_14, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 20, 0)}, // ADC_IN20
|
||||||
{PB_15, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 21, 0)}, // ADC_IN21
|
{PB_15, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 21, 0)}, // ADC_IN21
|
||||||
|
{ADC_TEMP, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 16, 0)},
|
||||||
|
{ADC_VREF, ADC_1, STM_PIN_DATA_EXT(STM_MODE_ANALOG, GPIO_NOPULL, 0, 17, 0)},
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,10 @@ typedef enum {
|
||||||
PH_0 = 0x70,
|
PH_0 = 0x70,
|
||||||
PH_1 = 0x71,
|
PH_1 = 0x71,
|
||||||
|
|
||||||
|
// ADC internal channels
|
||||||
|
ADC_TEMP = 0xF0,
|
||||||
|
ADC_VREF = 0xF1,
|
||||||
|
|
||||||
// GPIOs
|
// GPIOs
|
||||||
GPIO0 = PA_4, // analog out capable, analog in capable
|
GPIO0 = PA_4, // analog out capable, analog in capable
|
||||||
GPIO1 = PA_5, // analog out capable, analog in capable
|
GPIO1 = PA_5, // analog out capable, analog in capable
|
||||||
|
|
|
@ -53,8 +53,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)
|
||||||
pinmap_pinout(pin, PinMap_ADC);
|
if ((obj->channel != 16) && (obj->channel != 17)) {
|
||||||
|
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;
|
||||||
|
@ -154,10 +156,10 @@ static inline uint16_t adc_read(analogin_t *obj)
|
||||||
sConfig.Channel = ADC_CHANNEL_15;
|
sConfig.Channel = ADC_CHANNEL_15;
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
sConfig.Channel = ADC_CHANNEL_16;
|
sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
sConfig.Channel = ADC_CHANNEL_17;
|
sConfig.Channel = ADC_CHANNEL_VREFINT;
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
sConfig.Channel = ADC_CHANNEL_18;
|
sConfig.Channel = ADC_CHANNEL_18;
|
||||||
|
|
Loading…
Reference in New Issue