STM32H735 ADC12

ChibiOS public support forum for topics related to the STMicroelectronics STM32 family of micro-controllers.

Moderators: RoccoMarco, barthess

hybridA
Posts: 37
Joined: Wed Jan 12, 2022 7:15 am
Has thanked: 10 times
Been thanked: 5 times

STM32H735 ADC12

Postby hybridA » Fri Oct 06, 2023 5:10 am

Hi,
I'm having some issues with the H735 ADC12:

Code: Select all

#define LINE_AIN1                        PAL_LINE(GPIOA, 6U) // ADC12_INP3
#define LINE_AIN2                        PAL_LINE(GPIOB, 1U) // ADC12_INP5
#define LINE_AIN3                        PAL_LINE(GPIOB, 0U) // ADC12_INP9
#define LINE_AIN4                        PAL_LINE(GPIOA, 3U) // ADC12_INP15
#define LINE_AIN6                        PAL_LINE(GPIOF, 13U) // ADC2_INP2
#define LINE_AIN7                        PAL_LINE(GPIOF, 14U) // ADC2_INP6

adcsample_t adcBuffer[ADC12_GRP_NUM_CHANNELS * ADC_OVERSAMPLE];


const ADCConfig adccfg = {
  .difsel       =0U,
  .calibration  = 0U};

static constexpr ADCConversionGroup adc12grpcfg = {
   .circular         = false,
   .num_channels      = ADC12_GRP_NUM_CHANNELS,
   .end_cb            = NULL,
   .error_cb         = NULL,
   .cfgr            = ADC_CFGR_CONT,
   .cfgr2            = 0U,
   .ccr            = 0U,
   .pcsel            = ADC_SELMASK_IN2 |
                          ADC_SELMASK_IN3 |
                          ADC_SELMASK_IN5 |
                          ADC_SELMASK_IN6 |
                          ADC_SELMASK_IN9 |
                          ADC_SELMASK_IN15,
   .ltr1               = 0U,
    .htr1               = 0U,
    .ltr2               = 0U,
    .htr2               = 0U,
    .ltr3               = 0U,
    .htr3               = 0U,
   .awd2cr             = 0U,
   .awd3cr             = 0U,
   .smpr           = {
        ADC_SMPR1_SMP_AN2(ADC_SMPR_SMP_32P5) |
        ADC_SMPR1_SMP_AN3(ADC_SMPR_SMP_32P5) |
        ADC_SMPR1_SMP_AN5(ADC_SMPR_SMP_32P5) |
        ADC_SMPR1_SMP_AN6(ADC_SMPR_SMP_32P5) |
        ADC_SMPR1_SMP_AN9(ADC_SMPR_SMP_32P5),
        ADC_SMPR2_SMP_AN15(ADC_SMPR_SMP_32P5)
    },
    .sqr          = {
        ADC_SQR1_SQ1_N(ADC_CHANNEL_IN2) |
        ADC_SQR1_SQ2_N(ADC_CHANNEL_IN3) |
        ADC_SQR1_SQ3_N(ADC_CHANNEL_IN5) |
        ADC_SQR1_SQ4_N(ADC_CHANNEL_IN6),
        ADC_SQR2_SQ5_N(ADC_CHANNEL_IN9) |
        ADC_SQR2_SQ6_N(ADC_CHANNEL_IN15),
        0U,
        0U
    },
};


palSetLineMode(AIN1, PAL_MODE_INPUT_ANALOG);
palSetLineMode(AIN2, PAL_MODE_INPUT_ANALOG);
palSetLineMode(AIN3, PAL_MODE_INPUT_ANALOG);
palSetLineMode(AIN4, PAL_MODE_INPUT_ANALOG);
palSetLineMode(AIN6, PAL_MODE_INPUT_ANALOG);
palSetLineMode(AIN7, PAL_MODE_INPUT_ANALOG);

adcConvert(&ADCD1, &adc12grpcfg, adcBuffer, ADC_OVERSAMPLE);


all readings sit at 32767 after the conversion is done.

User avatar
Giovanni
Site Admin
Posts: 14458
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 1076 times
Been thanked: 922 times
Contact:

Re: STM32H735 ADC12

Postby Giovanni » Fri Oct 06, 2023 7:44 am

Hi,

Is the buffer in a cached RAM area?

Giovanni

hybridA
Posts: 37
Joined: Wed Jan 12, 2022 7:15 am
Has thanked: 10 times
Been thanked: 5 times

Re: STM32H735 ADC12

Postby hybridA » Fri Oct 06, 2023 3:21 pm

Thanks Giovanni, I'm pretty sure it's not.
Is there a sample/demo that shows how to use it?
(Most of my previous projects have evolved around F series MCUs so cache management is new to me)

Thanks


Return to “STM32 Support”

Who is online

Users browsing this forum: No registered users and 14 guests