ADC muxing limitations

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

cross mob
lock attach
Attachments are accessible only for community members.
DaEr_349131
Level 5
Level 5
25 likes received 50 sign-ins 5 comments on KBA

 

Hi,

I need to get 24 channels of ADC into the PSoC 63 (124 BGA).
max read-frequency is say 1kHz, x 24ch, I'd be ok with slightly less too.

I've built a project using AMux, it allows me to configure 24 connections while 8 of course will be placed on port10 which is directly tied to the ADC. The remaining pins will be routed in fabric. 

Questions:

  1. How do I best find out / calculate the limits of the MUX vs the SARADC speed?

  2. Please see attached screenshot which says "SARADC is reachable through analog routing fabric but my lead to congestion or failure"... 
    Is there a way in psoc creator (or modus) to get more info on what the actual limitations might be?
0 Likes
1 Solution
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

The SAR ADC sample buffer only supports 16 channels, so if you have more than 16, some of the channels will need to have its own sharing mechanism, as you proposed initially.

If you don't have some sort of priority on scanning the channels, you can configure the SAR ADC to have only one channel and do the muxing outside of the SAR ADC. You can even do it in hardware, using DMAs. You might need to use 3 chained DMAs and the SAR ADC's EOS (end-of-sample) and SOC (start-of-convert) signals:

1) One DMA to move data from the SAR ADC sample register to somewhere in RAM. Note you will only have one channel configured in the SAR ADC, which is connected to the Amux. There are ways to combine the Amux and SARMux, but then you would need to have a different scheme for the DMA chain. This DMA should be triggered using the SAR's EOC signal.

Note that depending which device you select, you might need to burn a pin to chain this DMA to the next.

2) One DMA to do the Amux switching. You would need a look up table with the muxing connections, so you can overwrite the switch registers.

3) One DMA to trigger the start of conversion of the SAR ADC. You could burn another pin instead of using this additional DMA. If you use this additional pin, you can connect to the SAR ADC's SOC.

View solution in original post

0 Likes
3 Replies
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi,

The ADC as such can be given 8 inputs through dedicated SARMUX (port 10). The rest of the inputs can be come through OPAMP buffers and AMUXBUS. The AMUXBUS inputs can be switched to connect to multiple inputs. Now the AMXUBUS routing resources are limited and if at all you are using that resource for some other peripheral, this could result in congestion or failure. Creator is warning you about that when you add more features to the project. Regarding switching time the  requirement of  1kHz, x 24ch can be easily met. Even though the ADC can sample at a rate of 1MSPS, you may need to check that with the settling time of the input signal you are giving.

Best Regards,
Vasanth

0 Likes
RodolfoGL
Employee
Employee
250 solutions authored 250 sign-ins 5 comments on KBA

The SAR ADC sample buffer only supports 16 channels, so if you have more than 16, some of the channels will need to have its own sharing mechanism, as you proposed initially.

If you don't have some sort of priority on scanning the channels, you can configure the SAR ADC to have only one channel and do the muxing outside of the SAR ADC. You can even do it in hardware, using DMAs. You might need to use 3 chained DMAs and the SAR ADC's EOS (end-of-sample) and SOC (start-of-convert) signals:

1) One DMA to move data from the SAR ADC sample register to somewhere in RAM. Note you will only have one channel configured in the SAR ADC, which is connected to the Amux. There are ways to combine the Amux and SARMux, but then you would need to have a different scheme for the DMA chain. This DMA should be triggered using the SAR's EOC signal.

Note that depending which device you select, you might need to burn a pin to chain this DMA to the next.

2) One DMA to do the Amux switching. You would need a look up table with the muxing connections, so you can overwrite the switch registers.

3) One DMA to trigger the start of conversion of the SAR ADC. You could burn another pin instead of using this additional DMA. If you use this additional pin, you can connect to the SAR ADC's SOC.

0 Likes

many thanks for great answers!

0 Likes