stm32/adc: Allow mboot to use basic ADC functions.
Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
@@ -26,8 +26,13 @@
|
|||||||
#ifndef MICROPY_INCLUDED_STM32_ADC_H
|
#ifndef MICROPY_INCLUDED_STM32_ADC_H
|
||||||
#define MICROPY_INCLUDED_STM32_ADC_H
|
#define MICROPY_INCLUDED_STM32_ADC_H
|
||||||
|
|
||||||
|
#if !BUILDING_MBOOT
|
||||||
extern const mp_obj_type_t pyb_adc_type;
|
extern const mp_obj_type_t pyb_adc_type;
|
||||||
extern const mp_obj_type_t pyb_adc_all_type;
|
extern const mp_obj_type_t pyb_adc_all_type;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void adc_config(ADC_TypeDef *adc, uint32_t bits);
|
||||||
|
uint32_t adc_config_and_read_u16(ADC_TypeDef *adc, uint32_t channel, uint32_t sample_time);
|
||||||
|
|
||||||
#if defined(ADC_CHANNEL_VBAT)
|
#if defined(ADC_CHANNEL_VBAT)
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ STATIC const uint8_t adc_cr_to_bits_table[] = {16, 14, 12, 10, 8, 8, 8, 8};
|
|||||||
STATIC const uint8_t adc_cr_to_bits_table[] = {12, 10, 8, 6};
|
STATIC const uint8_t adc_cr_to_bits_table[] = {12, 10, 8, 6};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
STATIC void adc_config(ADC_TypeDef *adc, uint32_t bits) {
|
void adc_config(ADC_TypeDef *adc, uint32_t bits) {
|
||||||
// Configure ADC clock source and enable ADC clock
|
// Configure ADC clock source and enable ADC clock
|
||||||
#if defined(STM32L4) || defined(STM32WB)
|
#if defined(STM32L4) || defined(STM32WB)
|
||||||
__HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_SYSCLK);
|
__HAL_RCC_ADC_CONFIG(RCC_ADCCLKSOURCE_SYSCLK);
|
||||||
@@ -331,7 +331,7 @@ STATIC uint32_t adc_read_channel(ADC_TypeDef *adc) {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC uint32_t adc_config_and_read_u16(ADC_TypeDef *adc, uint32_t channel, uint32_t sample_time) {
|
uint32_t adc_config_and_read_u16(ADC_TypeDef *adc, uint32_t channel, uint32_t sample_time) {
|
||||||
if (channel == ADC_CHANNEL_VREF) {
|
if (channel == ADC_CHANNEL_VREF) {
|
||||||
return 0xffff;
|
return 0xffff;
|
||||||
}
|
}
|
||||||
@@ -357,6 +357,8 @@ STATIC uint32_t adc_config_and_read_u16(ADC_TypeDef *adc, uint32_t channel, uint
|
|||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
// MicroPython bindings for machine.ADC
|
// MicroPython bindings for machine.ADC
|
||||||
|
|
||||||
|
#if !BUILDING_MBOOT
|
||||||
|
|
||||||
const mp_obj_type_t machine_adc_type;
|
const mp_obj_type_t machine_adc_type;
|
||||||
|
|
||||||
typedef struct _machine_adc_obj_t {
|
typedef struct _machine_adc_obj_t {
|
||||||
@@ -462,3 +464,5 @@ const mp_obj_type_t machine_adc_type = {
|
|||||||
.make_new = machine_adc_make_new,
|
.make_new = machine_adc_make_new,
|
||||||
.locals_dict = (mp_obj_dict_t *)&machine_adc_locals_dict,
|
.locals_dict = (mp_obj_dict_t *)&machine_adc_locals_dict,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ SRC_C += \
|
|||||||
ports/stm32/flash.c \
|
ports/stm32/flash.c \
|
||||||
ports/stm32/flashbdev.c \
|
ports/stm32/flashbdev.c \
|
||||||
ports/stm32/i2cslave.c \
|
ports/stm32/i2cslave.c \
|
||||||
|
ports/stm32/machine_adc.c \
|
||||||
ports/stm32/powerctrlboot.c \
|
ports/stm32/powerctrlboot.c \
|
||||||
ports/stm32/qspi.c \
|
ports/stm32/qspi.c \
|
||||||
ports/stm32/spibdev.c \
|
ports/stm32/spibdev.c \
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ static inline int mp_hal_status_to_neg_errno(HAL_StatusTypeDef status) {
|
|||||||
#define MP_HAL_PIN_MODE_OUTPUT (1)
|
#define MP_HAL_PIN_MODE_OUTPUT (1)
|
||||||
#define MP_HAL_PIN_MODE_ALT (2)
|
#define MP_HAL_PIN_MODE_ALT (2)
|
||||||
#define MP_HAL_PIN_MODE_ANALOG (3)
|
#define MP_HAL_PIN_MODE_ANALOG (3)
|
||||||
|
#if defined(GPIO_ASCR_ASC0)
|
||||||
|
#define MP_HAL_PIN_MODE_ADC (11)
|
||||||
|
#else
|
||||||
|
#define MP_HAL_PIN_MODE_ADC (3)
|
||||||
|
#endif
|
||||||
#define MP_HAL_PIN_MODE_OPEN_DRAIN (5)
|
#define MP_HAL_PIN_MODE_OPEN_DRAIN (5)
|
||||||
#define MP_HAL_PIN_MODE_ALT_OPEN_DRAIN (6)
|
#define MP_HAL_PIN_MODE_ALT_OPEN_DRAIN (6)
|
||||||
#define MP_HAL_PIN_PULL_NONE (GPIO_NOPULL)
|
#define MP_HAL_PIN_PULL_NONE (GPIO_NOPULL)
|
||||||
|
|||||||
Reference in New Issue
Block a user