cancel
Showing results for 
Search instead for 
Did you mean: 

G473 ADC crosstalk

grisom13
Associate III

Hello. Have some issues with MCU ADC configuration and data.

Hardware:
                                                                                                                                                                                                                                         

  - MCU: STM32G473MET3                                      

  - ICs: BTS70401 smart high-side switches (2 channels on ADC4)                                                                                                                                                                                     

  SW1: PE15 = ADC4_IN2                                   

  SW2: PD9 = ADC4_IN13

 

  Problem:

  When both channels enabled, ADC reads ~3000 instead of ~4095 during short circuit. Single channel reads correctly (4095).

 

  Attempts Made:

 

  1. ADC Configuration:

    - Changed ContinuousConvMode from ENABLE → DISABLE

    - Added ADC calibration at startup

    - Changed Overrun from OVERWRITTEN → PRESERVED

    -  sampling times 12-600 cycles 

  2. Channel Multiplexing:

    -  Double-read technique (discard first, use second)

    - Triple-read with dummy conversions

    -  Excessive delays (50-640 cycles) - no improvement

 

  Question:

 is there a real 100 % code line that guarantees ADC channel samples only its pin voltage?
Thank you.

2 REPLIES 2
TDK
Super User

> ADC reads ~3000 instead of ~4095 during short circuit

"Short circuit" being shorting the pin to VDD? That's a massive difference between 4095 and. I don't expect this can be anything other than a hardware issue or a misunderstanding in how things are actually set up. Especially as changing other ADC settings has no effect. Keep rechecking your assumptions.

If you feel a post has answered your question, please click "Accept as Solution".

No, Not shorting MCU pin to GND. Infineon High side switch BTS70401 shorted to GND.

The BTS70401 has a IS pin connected to MCU. 

If BTS70401 shorted to GND, ADC4_IN2 on MCU read 4094 RAW

If add one more BTS70401 to the same ADC4_IN12 and short it to GND then RAW reading are never 4095, (around 3000). 

 

Originally I did the same config with the same IBTS70401 on STM32G0 - and all ADC raw are with the margin they should be.