How to calculate GPIO to ADC muxing timings?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
DaEr_349131
Level 5
Level 5
25 likes received 50 sign-ins 5 comments on KBA

Via firmware we can route any GPIOs to the ADC via analog switches inside the PSoC.

The TRM mentions the below text.

The additional switches reduce the scanning performance (more parasitic coupling, longer RC time to settle) – it is not fast enough to sample at 1 Msps. This is not recommended for external signals; the dedicated SARMUX port should be used, if possible.

But lets assume we need to mux ALL gpio's available into the ADC.

How can we calculate the maximum speed we can achieve. i.e. max adc sampling speed / (number of gpios * muxing, settling time, etc)!?

reference: Re: Which PSoC has the highest ADC input count (muxed)

0 Likes
2 Replies
SaKu_291986
Level 4
Level 4
10 replies posted 10 questions asked 5 solutions authored

The maximum speed we can achieve is the inverse of the minimum time needed to sample all the channels connected to the Scanning ADC. The conversion time for a single channel is 18 clocks of the ADC input clock and the acquisition time. PSoC Creator allows us to set the acquisition in terms of number of clocks.

Hence, the minimum time needed to complete one scan will be the sum of (Conversion time + Acquisition Time) of every individual channel. From this time, we can calculate the sampling speed of the ADC per channel.

pastedImage_0.png

Best regards,

Sampath Selvaraj

0 Likes

Thanks Sampath,

Then we have to add the time for

  • the additional muxing via GPIO's (not sarmux), is this timing number documented somewhere?
  • settling time between switches (not sure how to calculate this)
0 Likes