CMU200 almost tracking generator - Page 1
Forum section: electronics / testgear

author: dcarr
author_rank: Regular Contributor
timestamp: January 19, 2017, 06:13:35 am
content: Based on what's happening in this thread, I think the CMU200 K47 "Smart Alignment" software option is about to become a lot more common.https://www.eevblog.com/forum/testgear/enabling-options-for-rs-test-equipment/new/?topicseen#newReading through the manual, it appears that with this option you can configure the RF generator to rapidly jump through up to 500 pre-determined frequencies/amplitudes with a dwell time from 0.5-100ms each. This can be done using the front panel or the remote interface.With this capability it seems like we ought to be able to get approximate tracking generator and/or scalar analyzer functionality. Any clever ideas on the best way to do so?My best so far is to configure the frequency steps to cover the full span of interest and then set the spectrum analyzer to max hold and wait for a while to get a "full sweep", but perhaps there might be better ways to go about it. Because you have amplitude control, it might be possible to program one or more zero-amplitude slots to use for synchronization/triggering.David

author: CJay
author_rank: Super Contributor
timestamp: February 02, 2017, 09:56:59 am
content: Well I missed your post when you made it, did you get anywhere with that idea?

author: richnormand
author_rank: Unknown
timestamp: February 02, 2017, 03:53:37 pm
content: 1)You might want to try the FreRes32 or FreRes64 to use your CMU200 as a scanning spectrum analyser. It is available free on the R&S website and has an associated pdf manual to configure it properly.Works fine on my unit and might give you more capabilities or flexibility than the smart alignment option. I think I posted some photos in a previous thread while fixing my TxRx module.2)I also have the K47 smart alignment option on my unit but I have not played with it yet. In what manual did you find information on how to do this or is it embedded in one of the cell phone extensions?Cheers and have fun!

author: CJay
author_rank: Super Contributor
timestamp: February 02, 2017, 06:38:20 pm
content: Manual for K47 is available as first hit on Google.Freeres only works over GPIB doesn't it?A GPIB adapter is on the 'need' list but some rather annoying news today means it will remain there for some time to come yet.

author: sorenkir
author_rank: Regular Contributor
timestamp: February 02, 2017, 07:58:35 pm
content: Description of the Generator List Mode is in the CMU200/300 Operating Manual (pages 4.82+ & 6.53+ for programming).On my CMU200 (V5.21) / K47 (V5.22), the maximum dwell time is only 100ms which is a little short compared to spectrum sweep time, although the manual states 1s !?It is possible to use multiple identical steps to stay at the same frequency more than 100ms but it not very convenient...I have tried a little to write a program to set the values over GPIB in the Frequency List table but I have not been able to figure out the exact syntax of the commands "SOURce:RFGenerator:GLIStmode:FREQuency <Frequency [1..500]>" and "SOURce:RFGenerator:GLIStmode:LIST <Start>, <Seq. Length>, <Frequency 1>, <Level 1>, <Frequency 2> … <Level N>" and, so far, none of my trials have been successful.Does somebody have an example ?Michel.

author: richnormand
author_rank: Unknown
timestamp: February 02, 2017, 08:08:14 pm
content: "Freeres only works over GPIB doesn't it?"I used my Agilent GPIB to USB for this, but FreRes is quite generic and it looks like RS232 is possible also, given the right drivers and library.So you might be able to get away with it.The nice thing is all the parameters for the scan can be adjusted in the gui.Attachment is taken from the R&S pdf describing the program.

author: sorenkir
author_rank: Regular Contributor
timestamp: February 02, 2017, 09:34:15 pm
content: I finally managed to do something :Code:/**CMU200 Frequency List Table Auto Fill*02/02/2017*/#include <visa.h>#include <stdio.h>#include <string.h>#define ARRAYSIZE 100 // Size of read buffer// --- send command with tracevoid sendCommand(ViSession vi, char * cb){ViStatus rc;printf("%s\r\n", cb);if ((rc=viWrite(vi, (unsigned char*)cb, strlen(cb), VI_NULL)) != VI_SUCCESS){printf ("Erreur viWrite (command %s) %08X\n", cb, rc);return;}}// --- mainvoid main(void) {ViSession defaultRM, vi1;ViStatus rc = VI_ERROR_LIBRARY_NFOUND;ViUInt32 retCnt;unsigned char ReadBuffer[ARRAYSIZE + 1]; // Read data bufferchar CommandBuffer[ARRAYSIZE + 1]; // Command buffer/* Open session to GPIB device */if ((rc=viOpenDefaultRM (&defaultRM)) != VI_SUCCESS){printf ("Erreur viOpenDefaultRM %08X\n", rc);return;}// CMU200 Primary address=6, secondary=1if ((rc=viOpen (defaultRM, "GPIB0::6::1::INSTR", VI_NULL,VI_NULL, &vi1)) != VI_SUCCESS){printf ("Erreur viOpen 1 %08X\n", rc);return;}// Identificationif ((rc=viWrite(vi1, (unsigned char*)"*IDN?", 5, VI_NULL)) != VI_SUCCESS){printf ("Erreur viWrite (command IDN) %08X\n", rc);return;}rc=viRead(vi1, ReadBuffer, ARRAYSIZE, &retCnt);if (rc != VI_SUCCESS && rc != VI_SUCCESS_TERM_CHAR && rc != VI_SUCCESS_MAX_CNT){printf ("Erreur viRead (IDN) %08X\n", rc);return;}ReadBuffer = '\0';printf("IDN=%s\n", ReadBuffer);// Frequency List Tablefloat startFrequency = 10; // MHzfloat stopFrequency = 200; // MHzint nbSteps = 200;float stepFrequency = (stopFrequency - startFrequency) / (nbSteps - 1);float frequency = startFrequency;for (int step = 1 ; step <= nbSteps; step++) {sprintf(CommandBuffer, "SOURce:RFGenerator:GLIStmode:LIST %d, 1, %f MHz, -10 dbm", step, frequency);sendCommand(vi1, CommandBuffer);frequency += stepFrequency;}// Go!sendCommand(vi1, "SOURce:RFGenerator:GLIStmode:DWELltime 100 ms");sendCommand(vi1, "SOURce:RFGenerator:GLIStmode:STARt 1");sprintf(CommandBuffer, "SOURce:RFGenerator:GLIStmode:STEPs %d", nbSteps); sendCommand(vi1, CommandBuffer);sprintf(CommandBuffer, "SOURce:RFGenerator:GLIStmode:SLENgth %d", nbSteps); sendCommand(vi1, CommandBuffer);}Direct connection RF3 out --> RF1 :Frequency response of a DC-10MHz amplifier (well beyond its bandwith!):This is working well with 1MHz RBW because spectrum analyzer sweep time must be below 100ms.With 200 steps @ 100ms, generator sweep time is 20s, which is acceptable.Michel.

author: richnormand
author_rank: Unknown
timestamp: February 02, 2017, 09:38:55 pm
content: This would be quite handy for narrowband filters.I'll give it a trial.Thanks for posting

author: hafrse
author_rank: Regular Contributor
timestamp: December 07, 2018, 09:07:52 am
content: Quote from: richnormand on February 02, 2017, 03:53:37 pmHello,Any luck on how to operate the K47 option ?Thanks

author: richnormand
author_rank: Unknown
timestamp: December 07, 2018, 07:28:27 pm
content: Got the manual for the K47 option and managed to set a few frequencies to try it. The manual has a long chapter on it.At the end of the day however I reverted using FreRes64 and the software written by Vitor (nice job there).