Analog Devices EVAL-AD5933EBZ User Manual page 14

Evaluating the ad5933 1 msps, 12-bit impedance converter network analyzer
Table of Contents

Advertisement

UG-364
ElseIf ((real > 0) And (img < 0)) Then
theta = Atn(img / real)
phase2 = ((theta * 180) / pi ) +360
ElseIf ((real < 0) And (img < 0)) Then
theta = -pi + Atn(img / real)
phase2 = (theta * 180) / pi
ElseIf ((real < 0) And (img > 0)) Then
theta = pi + Atn(img / real)
phase2 = (theta * 180) / pi
End If
End Function
'-----------------------------------------------------------------------------------------------------------
Private Sub Sweep ()
' the main sweep routine
'This routine coordinates a frequency sweep using a mid point gain factor (see datasheet).
'The gain factor at the mid-point is determined from the real and imaginary contents returned at this mid
'point frequency and the calibration impedance.
'The bits of the status register are polled to determine when valid data is available and when the sweep is
'complete.
'-----------------------------------------------------------------------------------------------------------
IndexArray = 0
Increment = NumberIncrements + 1 'number of increments in the sweep.
Frequency = StartFrequency
'------------------------- PROGRAM 30K Hz to the START FREQUENCY register ---------------------------------
DDSRefClockFrequency = 16E6
StartFrequency = 30E3
TempStartFrequency = (StartFrequency / (DDSRefClockFrequency / 4)) * 2^27 'dial up code for the DDS
TempStartFrequency = Int(TempStartFrequency)
StartFrequencybyte0 = 40
StartFrequencybyte1 = 92
StartFrequencybyte2 = 15
'Write in data to Start frequency register
WritetToPart &H84, StartFrequencybyte0
WritetToPart &H83, StartFrequencybyte1
WritetToPart &H82, StartFrequencybyte2
'--------------------------------- PROGRAM the NUMBER OF INCREMENTS register ------------------------------
'The sweep is going to have 150 points 150 DECIMAL = 96 hex
'Write in data to Number Increments register
WritetToPart &H89, 96
WritetToPart &H88, 00
'--------------------------------- PROGRAM the FREQUENCY INCREMENT register ------------------------------
'The sweep is going to have a frequency increment of 10Hz between successive points in the sweep
DDSRefClockFrequency = 16E6
FrequencyIncrements = 10
TempStartFrequency = (FrequencyIncrements / (DDSRefClockFrequency / 4)) * 2^27 'dial up code for the DDS
TempStartFrequency = Int(TempStartFrequency)
FrequencyIncrementbyt0 = 4F
FrequencyIncrementbyt1 = 01
FrequencyIncrementbyt2 = 00
'Write in data to frequency increment register
WritetToPart &H87, FrequencyIncrementbyt0
WritetToPart &H86, FrequencyIncrementbyt1
WritetToPart &H85, FrequencyIncrementbyt2
'--------------------------------- PROGRAM the SETTLING TIME CYCLES register ------------------------------
'The DDS is going to output 15 cycles of the output excitation voltage before the ADC will start sampling
'the response signal. The settling time cycle multiplier is set to x1
'4th quadrant theta = minus angle
'3rd quadrant theta img/real is positive
'2nd quadrant img/real is neg
'initialize counter variable.
'the sweep starts from here.
'Assuming a 16M Hz clock connected to MCLK
'frequency sweep starts at 30K Hz
'30K Hz = 0F5C28 hex
'40 DECIMAL = 28 HEX
'92 DECIMAL = 5C HEX
'15 DECIMAL = 0F HEX
'84 hex lsb
'83 hex
'82 hex
'lsb
'msb
'Assuming a 16M Hz clock connected to MCLK
'frequency increment of 10Hz
'10 Hz =
'335 decimal = 14f hex
'87 hex lsb
'86 hex
'85 hex msb
Rev. 0 | Page 14 of 28
Evaluation Board User Guide
335 decimal = 00014F hex

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the EVAL-AD5933EBZ and is the answer not in the manual?

Questions and answers

Table of Contents