The MCHP Blockset provides comprehensive ADC support for all Microchip microcontroller families. Each family has optimized ADC blocks tailored to the specific peripheral architecture and capabilities.

dsPIC & PIC24 Family ADC Blocks

[MCHP_ADC] Standard ADC for dsPIC30F, dsPIC33F, dsPIC33E, dsPIC33C, and PIC24 families. Resolution: 10/12-bitFeatures: Scan mode, simultaneous sampling, DMA supportBest for: General-purpose acquisition, motor control [MCHP_ADC_HighSpeed_SAR_dsPIC] High-speed SAR ADC for dsPIC33C with dedicated cores and shared ADC7. Resolution: 6/8/10/12-bitCores: 3-6 dedicated + shared ADC7Speed: Up to 3.25 Msps per coreBest for: High-speed multi-channel, simultaneous sampling [MCHP_ADC_HS_12b] 12-bit high-speed ADC with software sequencing for dsPIC33A family. Resolution: 12-bit fixedCores: 2-5 (variant dependent)Sequencing: 6 sequences × 6 conversionsDevices: Perseus, Pegasus, Blue Ridge, Serpens (33AK series)Best for: Advanced FOC motor control, flexible multi-channel

PIC32 Family ADC Blocks

[MCHP_ADC_HighSpeed_SAR] High-speed SAR ADC for PIC32MK, PIC32MZ, and dsPIC33C families. Resolution: 6/8/10/12-bitCores: 3-6 dedicated + ADC7Speed: Up to 3.25 MspsFeatures: VBat, IVref, Temperature, CTMU inputsBest for: PIC32 high-performance applications

SAM Arm Cortex-M Family ADC Blocks

[MCHP_ADC_SAME5x] ADC for SAM E5x, SAM D5x, and SAM C2x Cortex-M4 devices. Resolution: 12-bitCores: Dual ADC (ADC0, ADC1) on SAMC2xSequencing: 6 sequences × 6 conversionsBest for: Motor control, industrial, cost-optimized designs [MCHP_AFEC_SAM7x] Analog Front-End Controller for SAM E7x/S7x/V7x Cortex-M7 devices. Resolution: 12-bit with 16-bit oversamplingCores: Dual AFEC (AFEC0, AFEC1)Analog Front-End: Programmable gain (1x/2x/4x), offset compensationFeatures: Temperature sensor, differential modeBest for: Precision measurements, automotive, medical [MCHP_ADC_SAMRH707x] Radiation-hardened ADC for SAM RH707x space-grade Cortex-M7. Resolution: 12-bitReliability: Radiation hardening, ECC, fault detectionBest for: Aerospace, satellite, nuclear, high-reliability

Feature Comparison Table

ADC BlockTarget FamiliesResolutionMax SpeedKey Features
MCHP_ADCdsPIC30F, 33F, 33E, 33C, PIC2410/12-bitVaries by familyScan, simultaneous, DMA
MCHP_ADC_HS_SAR_dsPICdsPIC33C6-12-bit3.25 MspsDedicated cores, ADC7, dsPIC interface
MCHP_ADC_HS_12bdsPIC33A (33AK)12-bitHigh-speedSoftware sequencing, 2-5 cores
MCHP_ADC_HS_SARPIC32MK, MZ, dsPIC33C6-12-bit3.25 MspsDedicated cores, VBat/Temp/CTMU
MCHP_ADC_SAME5xSAM E5x, D5x, C2x12-bit1 MspsDual ADC, software sequencing
MCHP_AFEC_SAM7xSAM E7x, S7x, V7x12-bit (16-bit OS)1 MspsPGA, offset comp, temp sensor
MCHP_ADC_SAMRH707xSAM RH707x12-bit1 MspsRadiation hardened, ECC

Application Guidelines

Motor Control Applications

  • 3-Phase FOC (dsPIC33A): Use MCHP_ADC_HS_12b with software sequencing for flexible current/voltage sampling
  • 3-Phase FOC (dsPIC33C): Use MCHP_ADC_HS_SAR_dsPIC with dedicated cores for simultaneous sampling
  • 3-Phase FOC (dsPIC33E/F): Use MCHP_ADC in 10-bit mode with simultaneous sampling
  • Dual Motor: Use devices with multiple ADC cores or dual AFEC

Industrial Sensing

  • Precision measurement: Use MCHP_AFEC_SAM7x with programmable gain and offset compensation
  • Multi-channel DAQ: Use high-speed SAR blocks with scan/sequence modes
  • High-impedance sources: Configure extended sample times (SAMC parameter)

Trigger Synchronization

  • PWM-synchronized: All blocks support PWM special event triggers
  • Timer-based: Periodic sampling with timer compare events
  • External trigger: Hardware trigger from external sources
  • Software control: Manual trigger for on-demand conversion

Selection Flowchart

            Identify your microcontroller family (dsPIC, PIC32, SAM)
            Check device-specific ADC capabilities in datasheet
            Select matching ADC block from table above
            Configure resolution, channels, and trigger sources
            Optimize sample time based on source impedance

Common Configuration Patterns

Pattern 1: PWM-Synchronized Current Sensing

  • Enable dedicated ADC cores for phase currents (U, V, W)
  • Set resolution to 12-bit for precision
  • Configure trigger: PWM1 Special Event (valley sampling)
  • Set SAMC for low-impedance current sensors (3-10 TAD)

Pattern 2: Multi-Channel Scan with DMA

  • Enable scan mode with channel list (e.g., [0 1 2 5 6 7])
  • Configure DMA channel for automatic transfer
  • Set trigger: Timer compare for periodic sampling
  • Adjust sequence repeat for averaging

Pattern 3: Precision Measurement with AFEC

  • Enable AFEC channels with programmable gain (2x or 4x)
  • Turn on offset compensation
  • Use differential mode for noise rejection
  • Enable hardware averaging
  • [PWM Blocks] - PWM trigger sources for ADC synchronization
  • [Timer Blocks] - Timer-based ADC triggering
    • DMA configuration for ADC data transfer
  • [Block Reference Home] - Complete block library reference

Additional Resources

  • [Getting Started Guide] - ADC block tutorial
  • [Motor Control Guide] - ADC in FOC applications
  • [Troubleshooting Guide] - Common ADC issues and solutions