aboutsummaryrefslogtreecommitdiffstats
path: root/testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c
diff options
context:
space:
mode:
Diffstat (limited to 'testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c')
-rw-r--r--testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c80
1 files changed, 77 insertions, 3 deletions
diff --git a/testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c b/testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c
index 3c9c59911..7c6b1d2f5 100644
--- a/testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c
+++ b/testhal/STM32/multi/ADC/cfg/stm32l4r5zi_nucleo144/portab.c
@@ -34,6 +34,80 @@
/* Module exported variables. */
/*===========================================================================*/
+/*
+ * GPT configuration.
+ */
+const GPTConfig portab_gptcfg1 = {
+ .frequency = 1000000U,
+ .callback = NULL,
+ .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */
+ .dier = 0U
+};
+
+const ADCConfig portab_adccfg1 = {
+ .difsel = 0U
+};
+
+void adccallback(ADCDriver *adcp);
+
+/*
+ * ADC errors callback, should never happen.
+ */
+void adcerrorcallback(ADCDriver *adcp, adcerror_t err);
+
+/*
+ * ADC conversion group 1.
+ * Mode: One shot, 2 channels, SW triggered.
+ * Channels: IN0, IN5.
+ */
+const ADCConversionGroup portab_adcgrpcfg1 = {
+ .circular = false,
+ .num_channels = ADC_GRP1_NUM_CHANNELS,
+ .end_cb = NULL,
+ .error_cb = adcerrorcallback,
+ .cfgr = 0U,
+ .cfgr2 = 0U,
+ .tr1 = ADC_TR(0, 4095),
+ .smpr = {
+ ADC_SMPR1_SMP_AN0(ADC_SMPR_SMP_247P5) |
+ ADC_SMPR1_SMP_AN5(ADC_SMPR_SMP_247P5),
+ 0U
+ },
+ .sqr = {
+ ADC_SQR1_SQ1_N(ADC_CHANNEL_IN0) | ADC_SQR1_SQ2_N(ADC_CHANNEL_IN5),
+ 0U,
+ 0U,
+ 0U
+ }
+};
+
+/*
+ * ADC conversion group 2.
+ * Mode: Continuous, 2 channels, HW triggered by GPT4-TRGO.
+ * Channels: IN0, IN5.
+ */
+const ADCConversionGroup portab_adcgrpcfg2 = {
+ .circular = true,
+ .num_channels = ADC_GRP2_NUM_CHANNELS,
+ .end_cb = adccallback,
+ .error_cb = adcerrorcallback,
+ .cfgr = ADC_CFGR_EXTEN_RISING |
+ ADC_CFGR_EXTSEL_SRC(12), /* TIM4_TRGO */
+ .cfgr2 = 0U,
+ .tr1 = ADC_TR(0, 4095),
+ .smpr = {
+ ADC_SMPR1_SMP_AN0(ADC_SMPR_SMP_247P5) |
+ ADC_SMPR1_SMP_AN5(ADC_SMPR_SMP_247P5),
+ 0U
+ },
+ .sqr = {
+ ADC_SQR1_SQ1_N(ADC_CHANNEL_IN0) | ADC_SQR1_SQ2_N(ADC_CHANNEL_IN5),
+ 0U,
+ 0U,
+ 0U
+ }
+};
+
/*===========================================================================*/
/* Module local types. */
/*===========================================================================*/
@@ -52,9 +126,9 @@
void portab_setup(void) {
- /* Setting up the output pin as analog as suggested
- by the Reference Manual.*/
- palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG);
+ /* ADC inputs.*/
+ palSetPadMode(GPIOA, 0, PAL_MODE_INPUT_ANALOG);
+ palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_ANALOG);
}
/** @} */