Multiplexing PSoC® 4 SAR ADC Channels - KBA87497 | Cypress Semiconductor
Support & Community
Multiplexing PSoC® 4 SAR ADC Channels - KBA87497
How do you multiplex PSoC® 4 SAR ADC channels?
When you need to measure several signals using a single ADC, the ADC must be timemultiplexed to convert those signals in succession. The PSoC 4 SAR ADC has a hardware sequencer that scans multiple input channels without CPU intervention. It is also possible to control the channels in firmware. The maximum number of channels is either 8 or 16 depending on the device. However, it also depends on the selected mode (single-ended/differential) and the availability of input sources.
|PSoC 4 Family||Maximum Number of Channels|
|PSoC 4100 BLE/4200 BLE||16|
The input sources for the SAR ADC can be from a fixed set of pins (Port P2 to P2 for PSoC 4100, PSoC 4200, PSoC 4100S, PSoC 4100M, PSoC 4200M, and PSoC 4200L, and Port 3 to P3 for PSoC 4100 BLE and PSoC 4200 BLE), internal signals from AMUXBUS-A/B, Continuous Time Block mini (CTBm), and an on-chip temperature sensor.
The sequencer scans through the input channels with zero switching overhead. That means that the aggregate sampling bandwidth is equal to 1 Msps whether it is for a single channel or distributed over several channels. The results of the A/D conversion are stored in 16-bit result registers (one per channel) after the scan.
The PSoC Creator™ configuration is simple. An example is shown with three differential input channels for the SAR ADC in PSoC 4200. The corresponding pins are P2, P2, P2, P2, P2, and P2. Make sure that you use P2/P2 as one differential pair, and do the same for the other pairs: P2/P2, P2/P2, and P2/P2. Note that this limitation is applicable only when the hardware sequencer is used and not when the firmware is used for selecting the input channels. Similar limitation is also applicable to the SAR ADC in PSoC 4100 BLE/ PSoC 4200 BLE that uses Port 3 pins.
Figure 1. Top Design Schematic
Figure 2. SARADC Channel Setup
Figure 3. Pin Selection in .cydwr File
Use the code example “ADC_Differential_Preamplifier” provided in PSoC Creator for reference.
Figure 4. Opening the Code Example