ADC-PWM Synchronization Using ADC Interrupt
This example shows how to use the ADC block to sample an analog voltage and use the PWM block to generate a pulse waveform. This example also shows how to use the Hardware Interrupt block to synchronize the change in the PWM duty cycle with analog to digital conversion of voltage. In the generated code, changes in the voltage of the ADC input alter the duty cycle of the PWM output. The period of the PWM waveform remains constant.
You can also use the model c2838x_adcpwmasync_TopModel to perform Model Reference workflow. For more information, see Model Reference Support for C2000 Processors.
Required Hardware
Spectrum Digital F2808/F2812/F28335 eZdsp or Texas Instruments™ LaunchPad/controlSTICK/controlCARD with docking station
Oscilloscope and probes
Function generator
Hardware Connections
Connect the function generator output to the ADC input (ADCINA0) on the board. Connect the GPIO pin corresponding to PWM1A to the analog input of the oscilloscope.
Available Models
These are the Simulink® models available for different C2000 processors:
F281x-based board: c281x_adcpwmasynctest_ert
F280x/F2823x/F2833x-based board: c280x_2833x_adcpwmasynctest_ert
Piccolo F2802x/F2803x/F2806x or Concerto F28M35x/F28M36x-based board: c280xx_adcpwmasynctest_ert
Piccolo F2807x or Delfino F2837xS/F2837xD-based board: c2807x_2837xx_adcpwmasynctest_ert
Piccolo F28004x-based board: c28004x_adcpwmasynctest_ert
Model Reference workflow: c2838x_adcpwmasync_TopModel
Note: To use the F28M35x/F28M36x controlCARD, you need C2000™ Microcontroller Blockset.
Model
Open the c28004x_adcpwmasynctest_ert model.
The analog voltage from the function generator controls the duty cycle of the PWM waveform. Duty cycle changes can be observed on the oscilloscope. The Hardware Interrupt block triggers an interrupt service routine (ISR) and schedules the execution of the connected subsystem (ADC-PWM Subsystem) when the processor receives the ADC interrupt (ADCINT).
The ADC-PWM Subsystem consists of an ADC block that drives the duty cycle input port of the PWM block. The PWM block is configured to trigger the start of conversion (SOC) of the ADC block.
Block Configuration
Configure the ADC and ePWM block configurations as shown in the image.
ADC
ePWM
Configure ePWM Event Trigger
Configure ePWMA and ePWMB
Configure ePWM Counter Compare
Open the Hardware Mapping app and configure the hardware interrupt event
Configure and Run Model on Hardware Board
Open the model corresponding to the target hardware you are using. Each model is configured for a default target hardware. To select a different target hardware, browse to Configuration Parameters > Hardware Implementation > Hardware board
On the Hardware tab, Click Build, Deploy & Start > Build Stand-Alone to generate, build, load, and run the program.
Observe the changes to the PWM waveform on the oscilloscope.