# HG changeset patch # User David Douard # Date 1524179476 -7200 # Node ID 4a94e81bff740b310b6460e20d5fa62a97fb97ca # Parent 3a4b9ec3c0b0e8b8ca5d73501ab5bfc705dfed90 [hp8662a] part 3: fixing error 04 and unlocked loops diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/hp8662a_2.rst --- a/content/hp8662a_2.rst Fri Apr 20 01:10:33 2018 +0200 +++ b/content/hp8662a_2.rst Fri Apr 20 01:11:16 2018 +0200 @@ -14,7 +14,8 @@ - a few sloppy keys on the keypad, - the know did not work at all, - and more importantly, some very unpleasant spectrums at some frequencies - (covered in part 3). + (covered in `part 3 <{filename}hp8662a_3.rst>`_), +- some output level accuracy problems. Keypad diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/hp8662a_3.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/hp8662a_3.rst Fri Apr 20 01:11:16 2018 +0200 @@ -0,0 +1,180 @@ +=============================================== + HP8662A Synthetized Signal Generator - Part 3 +=============================================== + +:Author: David Douard +:Category: Electronics +:Tags: HP8662A, repair, test equipment, HP, Generator, RF +:series: HP 8662A +:series_index: 3 + + +This is the part 3 on my series about my HP 8662A Signal Generator, and is +about the third main problems I found with this unit, as evocated in `part +2 <{filename}hp8662a_2.rst>`_: Error 04 is lit and there are some very +unpleasant spectrums at some frequencies. + + +Low Fequency Section +==================== + +If the generator is now able to produce a signal (the AM and FM modulations +also work), it also gives an Error 04, which is described in the Service Manual +as "Sum Loop Unlocked (Low Frequency Section)", and the troubleshooting +procedure to follow in on the Service Sheet H. The general block diagram of +this section is as follow: + +.. image:: {filename}images/hp8662a/LF_block_diagram.png + :class: image-process-large-photo + +This Low Frequency Section consists in no less than 4 phase locked loops in +order to achieve adjustable frequency synthesis with the expected stability and +resolution. + +In fact, when in the main band of the generator, ie. when neither the output +frequency doubler nor the down converter are in the signal path (that is, when +the frequency range is between 120MHz and 640MHz). The frequency display +consists in 11 digits, named DF0 to DF10, which are segmented to control +several sets of PLLs: + +:DF0 - DF2: are the fractional part of the fractional N-Loop (.1Hz, 1Hz and + 10Hz digits), + +:DF3 - DF5: are the integer part of the fractional N-loop (100Hz, 1kHz and + 10kHz resolutions) + +:DF6 - DF7: are used to set the pretune VCO value for the sum loop VCO (A3A7), + the FM sum loop VCO (A3A8) as well as the N-Loop VCO (A3A4). These + are the 0.1MHz and 1MHz resolution digits. + +:DF8 - DF9: these control the high frequency section (DF10 can only be 0 or 1, + in which case the frequency doubler is used). + + +Here is a more detailed vue of the block diagram of the low frequency section: + +.. image:: {filename}images/hp8662a/sheet_H.png + :class: image-process-large-photo + + +Fixing the Error 04 +=================== + +The service manual describes the Error 04 as related to the Sum Loop, and the +first troubleshooting step is to adjust the LF Sum Loop VCO on A3A7. + +To do this, one must open the loop of the PLL to be able to adjust the +frequency-to-voltage curve of the VCO. + +It took me a while to really understand the service manual on this point, as it explains: + + Remove the two jumpers on the A3A7 VCO Assembly a n d plug the board back + into its socket. + +The problem is that there are no jumpers on that board... In fact, these +jumpers exists, but are just soldered wires, and not, as one would expect, +jumpers that can be easily unplugged. + +Once I finally understood this, I've been able to perform this adjustment. This +consists in tweaking two potentiometers to tune both ends of this +frequency/voltage curve. + +The ideal curve is (all frequencies are in MHz): + +===== =========== ========= ========= +Freq N-Loop VCO Sum L VCO FM SL VCO + +/- 3MHz +/- 3MHz +/- .3MHz +===== =========== ========= ========= +320.0 122 120 10.0 +320.1 123 121 10.1 +320.2 124 122 10.2 +320.4 126 124 10.4 +320.8 130 128 10.8 +321.0 132 130 11 +322.0 142 140 12 +324.0 162 160 14 +328.0 202 200 18 +329.9 221 219 19.9 +===== =========== ========= ========= + +As you can see, ideal curves are pretty linear. + +At first, I could not find a correct set of tunings: when I was setting the two +ends of the curve to their ideal values (120MHz and 219MHz), the values for +324MHz and 328MHz did not match the +/- 3MHz criterion. + +Here is the curve after I adjusted both ends to be as close as possible as +their ideal values (the error is inversed to make the plot easier to read; most +of the time, I am below the expected value): + +.. plotly:: {filename}/json/hp8662a_vco_sl.json + :width: 800 + :height: 600 + +As you can see, the +/- 3MHz band is not achieved for most part of the curve. +And it looks pretty bad since the max error is above 6MHz. However, I +compensated this by overshooting these two points as much as possible in order +to try to keep the whole curve within this +/- 3MHz band. + +Unfortunately I haven't taken numerical values after this tuning, since this +was enough to clear the Error 04. + + +Other unstable PLLs +=================== + +After this adjustement, the generator seems to works fine: it does produces a +nice output signal (well, I though) and gives no more error. But eventually, +playing with the sweep controls, I found some pretty nasty behaviors at some +ferquencies. + +For example, at 100.3MHz, we have a decent signal: + +.. image:: {filename}/images/hp8662a/working_not_quite_3.jpg + :class: image-process-large-photo + +.. image:: {filename}/images/hp8662a/working_not_quite_3_sa.jpg + :class: image-process-large-photo + +but at 101.0Mhz, it begins to looks pretty messy: + +.. image:: {filename}/images/hp8662a/working_not_quite_2.jpg + :class: image-process-large-photo + +.. image:: {filename}/images/hp8662a/working_not_quite_2_sa.jpg + :class: image-process-large-photo + +and 101.9Mhz shows "nice" side bands: + +.. image:: {filename}/images/hp8662a/working_not_quite.jpg + :class: image-process-large-photo + +.. image:: {filename}/images/hp8662a/working_not_quite_sa.jpg + :class: image-process-large-photo + +The problem seems quite clear: some PLL cannot lock at specific frequencies, +but the strange thing is that this unlock PLL does not produces an error. + +So I tried to figure out which boad assembly could be the culprit. With no +error however, I had to troubleshoot without a procedure. + +The funny thing was there was not clear 'pattern' of which frequencies produces +the erratic behavior and which worked fine. + +The problematic ranges were clearly cyclic upon the frequency range, but the +limits were not very stable. + +I spent a fait amount of time reading the service manual and reading the +schematics to try to understand which board could be the culprit, and measuring +value at any testpoint possible... + +At the end, as I did not make any progress, I decided to try to make all the +"post-reapir" adjustments related to the Low Frequency section. + +And when I finally tuned the FM Sum Loop VCO, for the procedure is very similar +to the Sum Loop VCO one, the problem disappeared. + +For example, a 101MHz signal which was very unstable before now looks like: + +.. image:: {filename}/images/hp8662a/working_101.jpg + :class: image-process-large-photo diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/images/hp8662a/LF_block_diagram.png Binary file content/images/hp8662a/LF_block_diagram.png has changed diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/images/hp8662a/sheet_H.png Binary file content/images/hp8662a/sheet_H.png has changed diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/images/hp8662a/working_101.jpg Binary file content/images/hp8662a/working_101.jpg has changed diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 content/json/hp8662a_vco_sl.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/json/hp8662a_vco_sl.json Fri Apr 20 01:11:16 2018 +0200 @@ -0,0 +1,58 @@ +{"traces": [ + { + "type": "scatter", + "mode": "lines", + "name": "Measured Response", + "x": [320.0, 320.1, 320.2, 320.3, 320.4, 320.5, 320.6, 320.7, 320.8, 320.9, + 321.0, 321.2, 321.4, 321.6, 321.8, + 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, + 328.0, 328.2, 328.4, 328.6, 328.8, + 329.0, 329.2, 329.4, 329.6, 329.7, 329.8, 329.9], + "y": [120.03, 120.99, 121.77, 122.67, 123.87, 124.77, 125.63, 126.53, 127.46, 128.34, + 128.98, 130.68, 132.65, 134.32, 136.1, + 137.7, 146.3, 154.9, 163.8, 173.4, 183.9, + 195.2, 197.5, 199.9, 202.1, 204.9, + 207.4, 210.3, 213.2, 215.6, 216.8, 217.9, 219.1]}, + { + "type": "scatter", + "mode": "lines", + "name": "Ideal Response", + "line": {"width": 1}, + "x": [320.0, 329.9], + "y": [120, 219] + }, + { + "type": "scatter", + "mode": "lines", + "name": "Error (in MHz)", + "line": {"shape": "spline"}, + "x": [320.0, 320.1, 320.2, 320.3, 320.4, 320.5, 320.6, 320.7, 320.8, 320.9, + 321.0, 321.2, 321.4, 321.6, 321.8, + 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, + 328.0, 328.2, 328.4, 328.6, 328.8, + 329.0, 329.2, 329.4, 329.6, 329.7, 329.8, 329.9], + "y": [-0.03, 0.01, 0.23, 0.33, 0.13, 0.23, 0.37, 0.47, 0.54, 0.66, + 1.02, 1.32, 1.35, 1.68, 1.90, + 2.30, 3.70, 5.10, 6.20, 6.60, 6.10, + 4.80, 4.50, 4.10, 3.90, 3.10, + 2.60, 1.70, 0.80, 0.40, 0.20, 0.10, -0.10], + "yaxis": "y2" + }], + "layout": { + "xaxis": { + "title": "Front Panel Frequency", + "showgrid": true + }, + "yaxis": { + "title": "Sum Loop VCO Output Frequency", + "showgrid": true + }, + "yaxis2": { + "title": "Error", + "side": "right", + "overlaying": "y", + "showgrid": false + }, + "title": "Sum Loop VCO Frequency Response" + } +} diff -r 3a4b9ec3c0b0 -r 4a94e81bff74 pelicanconf.py --- a/pelicanconf.py Fri Apr 20 01:10:33 2018 +0200 +++ b/pelicanconf.py Fri Apr 20 01:11:16 2018 +0200 @@ -66,10 +66,10 @@ # Uncomment following line if you want document-relative URLs when developing #RELATIVE_URLS = True -STATIC_PATHS = ['images', 'pdfs'] +STATIC_PATHS = ['images', 'pdfs', 'json'] -PLUGIN_PATHS = ['pelican-plugins', - 'pelican-plugins/pelican_dailymotion', +PLUGIN_PATHS = ['pelican-plugins', + 'pelican-plugins/pelican_dailymotion', ] PLUGINS = ['better_figures_and_images', 'sitemap', @@ -81,6 +81,7 @@ 'pelican_dailymotion', 'pelican_javascript', 'wavedrom', + 'plotly', 'image_process', ] RESPONSIVE_IMAGES = True @@ -107,5 +108,3 @@ 'default': '800w', }, } - -