70#if !defined(ADC_SAMPLE_RATE)
72#define ADC_SAMPLE_RATE ADC_SMPR_SMP_384P5
73#elif defined(STM32F3XX)
74#define ADC_SAMPLE_RATE ADC_SMPR_SMP_601P5
76#define ADC_SAMPLE_RATE ADC_SAMPLE_480
138#define ADC_BUF_DEPTH (MAX_AV_NB_SAMPLE/2)
149#error ADC2_not implemented in ChibiOS
152#error ADC3_not implemented in ChibiOS
179 cfg->circular =
true;
180 cfg->num_channels = num_channels;
181 cfg->end_cb = end_cb;
185#if defined(ADC_CFGR_RES_16BITS)
187#elif defined(ADC_CFGR_RES_12BITS)
193#if defined(ADC_CR2_TSVREFE)
199 for (
uint8_t i = 0; i < num_channels; i++) {
202#if defined(STM32H7XX) || defined(STM32F3XX) || defined(STM32G4XX) || defined(STM32L4XX)
203 cfg->pcsel |= (1 <<
chan);
207 cfg->sqr[0] |=
chan << (6 * (i + 1));
209 cfg->sqr[1] |=
chan << (6 * (i - 4));
211 cfg->sqr[2] |=
chan << (6 * (i - 9));
221 cfg->sqr3 |=
chan << (5 * i);
223 cfg->sqr2 |=
chan << (5 * (i - 6));
225 cfg->sqr3 |=
chan << (5 * (i - 12));
277#pragma GCC diagnostic push
278#pragma GCC diagnostic ignored "-Wtype-limits"
287#pragma GCC diagnostic pop
315#pragma GCC diagnostic push
316#pragma GCC diagnostic ignored "-Wtype-limits"
318#pragma GCC diagnostic pop
321 s->av_nb_sample = av_nb_sample;
arch independent ADC (Analog to Digital Converter) API
Generic interface for all ADC hardware drivers, independent from microcontroller architecture.
void adc1callback(ADCDriver *adcp)
Adc1 callback.
void adc_buf_channel(uint8_t adc_channel, struct adc_buf *s, uint8_t av_nb_sample)
Link between ChibiOS ADC drivers and Paparazzi adc_buffers.
void adc_init(void)
Adc init.
#define ADC_SAMPLE_RATE
#endif
static void adcerrorcallback(ADCDriver *adcp, adcerror_t err)
Adc error callback.
static void adc_configure(ADCConversionGroup *cfg, uint8_t num_channels, const uint8_t channels[], uint32_t sample_rate, adccallback_t end_cb, adcerrorcallback_t error_cb)
Configure the ADC conversion group depending on the architecture.
static const uint8_t adc_channel_map[ADC_NUM_CHANNELS]
void gpio_setup_pin_analog(ioportid_t port, uint16_t pin)
Setup a gpio for analog use.
Some architecture independent helper functions for GPIOs.
PRINT_CONFIG_MSG("USE_INS_NAV_INIT defaulting to TRUE")
Specific RAM section for DMA usage on F7.
#define IN_DMA_SECTION(var)
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.