LPC1518: Two ADCs on ADC0 - crosstalk

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPC1518: Two ADCs on ADC0 - crosstalk

758 Views
jensen_j
Contributor II

Hi,
i'm trying to use the ADC0_8 and the ADC0_0 at the same time on a LPC1518.
Both ADCs are initialized with there fixed pins:

Chip_IOCON_PinMuxSet(pIOCON, 0, 8, IOCON_MODE_INACT);
Chip_IOCON_PinMuxSet(pIOCON, 1, 0, IOCON_MODE_INACT);
Chip_SWM_EnableFixedPin(SWM_FIXED_ADC0_8);  // P1_0
Chip_SWM_EnableFixedPin(SWM_FIXED_ADC0_0);  // P0_8
Chip_ADC_Init(LPC_ADC0, 0);
Chip_ADC_SetupSequencer(LPC_ADC0, ADC_SEQB_IDX, (ADC_SEQ_CTRL_CHANSEL(8) | ADC_SEQ_CTRL_MODE_EOS));
Chip_ADC_SetupSequencer(LPC_ADC0, ADC_SEQA_IDX, (ADC_SEQ_CTRL_CHANSEL(0) | ADC_SEQ_CTRL_MODE_EOS));
Chip_ADC_SetTrim(LPC_ADC0, ADC_TRIM_VRANGE_HIGHV);
Chip_ADC_StartCalibration(LPC_ADC0);
while (!(Chip_ADC_IsCalibrationDone(LPC_ADC0))) {}
Chip_ADC_SetDivider(LPC_ADC0, 16);

...setting up interrupts...

The input voltage on ADC0_0 directly influence the measurement on the ADC0_8 (voltage on ADC0_0 keeps less than the reference voltage).
This happens as soon i just initilialize the fixed pin on ADC0_0 (without sequencer B...).
Without the activation of the fixed pin, all works properly.

Does i forgot something or is this some known issue?
Best Regards
Jürgen

Labels (1)
0 Kudos
4 Replies

609 Views
ianbenton
Senior Contributor I

What is your sampling frequency and, more importantly, your signal impedance.

This is most often a hardware problem, nothing to do with software.

0 Kudos

609 Views
jensen_j
Contributor II

Hi Ian,
in the LPCXpresso1549 example above, a sampling rate about 1.38 Mhz is activ.

The output impedance from the power supply on ADC0_0 i don't know, but it should be very low.

The error on ADC0_8 would probably get better with a capacitor to ground (e.g. 4.7nF) on ADC0_0.

Best regards
Jürgen

0 Kudos

609 Views
jeremyzhou
NXP Employee
NXP Employee

Hi ,

Thank you for your interest in NXP Semiconductor products and
for the opportunity to serve you.
I think I need more information before figuring the issue out, so I was wondering if you can tell me which board you used and can you replicate the phenomenon on multiple identical boards? In further, I appreciate it a lot if you can show the testing result you get.

Looking forward to your reply.

TIC

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

609 Views
jensen_j
Contributor II

Thanks for your reply!
I use a custom board, but i could replicate the phenomenon on a LPCXpresso 1549.
It seems to set the divider very low after the calibration make the problems.


To retrace, I adapt the periph_adc example from lpcopen 2.20:
Test setup:
-Board supply over USB
-variable power supply on ADC0_0
   A0 on J7 -> variable input voltage

   GND connected to power supply
-ADC0_8 on ground
   D9 on J1 -> To ground

If setting the DIVIDER_WORKAROUND to false in the config header, i get an offset/crosstalk from ADC0_0 on ADC0_8
If setting to true all works fine.

I try to attach the files.

In difference to my costum board, the calibration with lower dividers works on the LPCXpresso much better.

Best regards
Jürgen