318
Chapter 6 Application Programs
Program Listings
6
Example: Pulse Width Modulation (PWM)
This program (found in the “Examples\chapter6\PulseWidthMod” subdirectory on the
CD-ROM) configures a pulse waveform with duty cycle, which is then slowly modulated
by a triangle waveform.
Private Sub cmdPWM_Click()
Dim io_mgr As VisaComLib.ResourceManager
Dim Fgen As VisaComLib.FormattedIO488
Set io_mgr = New VisaComLib.ResourceManager
Set Fgen = New VisaComLib.FormattedIO488
Set Fgen.IO = io_mgr.Open(txtIO.Text)
On Error GoTo MyError
' This program uses low-level SCPI commands to configure
' the function gnerator to output an PWM waveform.
' The pulse is set up with a duty cycle of 35% and a depth
' of 15%, and will vary in width from 20% to 50% with the
' modulation. The pulse may also be configured in time
' units (pulse width and deviation) rather than duty cycle
' if preferred.
With Fgen
.WriteString "*RST" ' Reset the function generator
.IO.Clear ' Clear errors & status registers
.WriteString "OUTPut:LOAD 50" ' Output termination is 50 Ohms
.WriteString "FUNCtion:SHAPe PULSe" ' Carrier waveshape is pulse
.WriteString "FREQuency 5000" ' Carrier frequency is 5 kHz
.WriteString "VOLTage:LOW 0" ' Set parameters to 5 V TTL
.WriteString "VOLTage:HIGH 5"
.WriteString "FUNCtion:PULSe:DCYCle 35" ' Begin with 35% duty cycle
.WriteString "PWM:INTernal:FUNCtion TRIangle" ' Modulating waveshape
' is triangle
.WriteString "PWM:INTernal:FREQuency 2" ' Modulation frequency is 2 Hz
.WriteString "PWM:DEViation:DCYCle 15" ' Modulation depth is 15%
.WriteString "PWM:SOURce INTernal" ' Use internal signal for
' modulation
' If using an external signal for PWM, connect the signal to the
' rear-panel BNC and use the command PWM:SOURce EXTernal
.WriteString "PWM:STATe ON" ' Turn PWM modulation on
.WriteString "OUTPut ON" ' Turn on the instrument output
End With
Exit Sub
MyError:
txtError = Err.Description & vbCrLf
Resume Next
End Sub