CE122 - ADC Alternate Sampling

by Microchip Technology

CE122 - ADC Alternate Sampling

In this example, Timer 3 is setup to time-out every 125 microseconds (8Khz Rate). As a result, the module will stop sampling and trigger a A/D conversion on every Timer3 time-out, i.e., Ts=125us.

About this Code Example


In this example, Timer 3 is setup to time-out every 125 microseconds (8Khz Rate).
As a result, the module will stop sampling and trigger a A/D conversion on every Timer3 time-out, i.e., Ts=125us.

ADC is configured in 10bit mode to alternatively sample AN4/AN5 analog input on Timer 3 interrupt.
It will take TWO Timer3 Timeout period to sample AN4 first and then AN5.

ADC module clock time period is configured as Tad=Tcy*(ADCS+1)= (1/40M)*64 = 1.6us (625Khz).
Hence the conversion time for 10-bit A/D Conversion Time Tc=12*Tad = 19.2us

DMA is used to sort and transfer the converted data to DMA RAM. DMA is configured in ping-pong mode
and it transfers 16samples of each of the TWO analog inputs and generates interrupt.


DMA channel 0 is confiured in ping-pong mode to move the converted data from ADC to DMA RAM
on every sample/convert sequence.
First, DMA uses DMA0STA base address to store the ADC samples and it generates interrupt
after transfering (TWO x 16 samples = 32 samples).
Next, DMA uses DMA0STB base address to store the ADC samples and it generates interrupt
after transferubg (TWO x 16 samples = 32 samples).
Above process repeats contineously.

void __attribute__((__interrupt__)) _DMA0Interrupt(void);
DMA interrupt service routine, moves the data from DMA buffer to ADC signal buffer


ISR rate will be (8k/32samples) = 250Hz for 8K ADC trigger rate from Timer.
RA6 pin is toggled in ISR, hence it will be toggling at ~ 125Hz

  • Current Version: 1.0.0
  • Updated: Jun 16, 2012
  • Downloads: 778
  • Rating: 0/5 (0 votes cast)
  • Status: Released
    • MPLAB Version: V8.xx or above
    • C Compiler: MCC18 v3.30 or above
    • Development Tools: Explorer 16 board
    • Supported Devices: dsPIC33FJ256GP710

Reviews

  • There are no reviews for this Code Example.

    Write your review

    Release History

    CE122 - ADC Alternate Sampling  (current version) June 15, 2012
    First Release to ECS