cancel
Showing results for 
Search instead for 
Did you mean: 

ADC - 4 channels crostalk

Ditzhak
Associate II

Hi, im using NUCLEO-u575zi-q and im trying to sample signal via adc multi-channel, im also using DMA to transfer the sampled data into memory buffer. the buffer is filled by this order: in the 0th place of the buffer - channel 1, 1th place of the buffer - channel 2, 2th place of the buffer - channel 3, 3th place of the buffer - channel 4.

im using circular mode so in the next iteration channel 1 sampled data is going into 0th place and so on.

the problem is when i want to check the channels i insert a signal to one of the channels while the others nor connecting to anything (high Z) and im getting leakage from the injected channel to the next channel (if im insert signal to ch1 so i get the signal with low amplitude in channel 2 and so on).

how can i reduce channel to channel - crosstalk?

the ADC configuration:

14-bit Resolution (which means 17 cycles of conversion time according to the reference manual)

ADC_CLK = 100M[hz]

ADC_DIVIDER = 8

NUM_OF_CONV = 4

SAMPLING TIME = 20 cycles

sampling frequency = 12.5M/4*(17+20) = 84.46K[hz]

 

3 REPLIES 3
iTTy
Associate III

Hi @Ditzhak !

I'm not an ADC expert but for my experience your problem could be given:

1) by the ADC peripheral configuration

2) by the routing of the analog channels on the board

3) both of previous ones.

I a similar application based on STM32H755 MCU i referred to the following ST application notes to work on ADC peripheral configuration:

https://www.st.com/resource/en/application_note/an2834-how-to-optimize-the-adc-accuracy-in-the-stm32-mcus-stmicroelectronics.pdf 

and

 https://www.st.com/resource/en/application_note/an5354-getting-started-with-the-stm32h7-series-mcu-16bit-adc-stmicroelectronics.pdf 

 

Loking on the st web site there willl be something more specific for your MCU.

 

Andrew Neil
Evangelist III

@Ditzhak wrote:

i insert a signal to one of the channels while the others not connecting to anything (high Z)


Well, an unconnected Hi-Z input would be expected to pick up noise!

What happens if you connect the unused channels to GND (or some other suitable Lo-Z point)?

LCE
Principal

Open and Hi Z -> crosstalk

If you keep the input open, there's probably nothing you can do on the STM32 side.
I don't know if the pull-up or -down resistor can be activated when in analog mode, that would be worth a try.

Usually an ADC input is fed by a low Z source, so maybe you connect as it should be in the final application.

Reminder: compared to other ADCs, the STM32 ADC has relatively low impedance, so big resistors as voltage dividers will influence the result.

Ah, I forgot: is there at least a capacitor (e.g., 10nF, again that depends on the source) connected to the open ADC pins?