background image

SC5506A Operating & Programming Manual 

Rev 2.1.1 

21 

 

Constants Definitions 

// Parameters for storing data in the onboard EEPROM

 

#define

 CALEEPROMSIZE 

65536 

// bytes

 

#define

 USEREEPROMSIZE 

32768 

// bytes  

 

 

// Assign channel names

 

#define

 CH1 

#define

 CH2  

 

// Attenuator assignments

 

#define 

CH1ATTEN0 

#define 

CH1ATTEN1 

#define 

CH2ATTEN0 

#define 

CH2ATTEN1 

 
 

// Define error codes

 

#define 

SUCCESS 

0

 

 

#define

 USBDEVICEERROR 

-1 

#define

 USBTRANSFERERROR 

-2 

#define

 INPUTNULL 

-3 

#define

 COMMERROR 

-4 

#define

 INPUTNOTALLOC 

-5 

#define

 EEPROMOUTBOUNDS 

-6 

#define

 INVALIDARGUMENT 

-7 

#define

 INPUTOUTRANGE 

-8 

#define

 NOREFWHENLOCK 

-9 

#define

 NORESOURCEFOUND 

-10 

#define

 INVALIDCOMMAND  

-11 

 

// Define device registers

 

#define

 INITIALIZE 

0x01 

// initialize the device

 

#define

 SET_SYSTEM_ACTIVE 

0x02 

// set the system “a

ctive

 light 

#define

 RF_FREQUENCY 

0x10 

// set the frequency

 

#define

 RF_POWER 

0x11 

// set power of LO1

 

#define

 RF_OUT_ENABLE 

0x12 

// enable RF output

 

#define

 AUTO_PWR_DISABLE 

0x13 

// disable auto power leveling

 

#define

 RF_ALC_MODE 

0x14 

// select closed (0) or open (1) loop ALC modes

 

#define

 DEVICE_STANDBY 

0x15 

// place the selected channel in standby mode  

#define

 REFERENCE_MODE 

0x16 

// reference settings

 

#define

 GET_TEMPERATURE 

0x17 

// get the internal temperature of device

 

#define

 GET_DEVICE_STATUS 

0x18 

// read the device status 

 

#define

 USER_EEPROM_READ 

0x1A 

// read a byte from the user EEPROM

 

#define

 USER_EEPROM_WRITE 

0x1B 

// write a byte to the user EEPROM

 

#define

 REFERENCE_DAC_SETTING 

0x1D 

// set the reference DAC value

 

#define

 CAL_EEPROM_READ 

0x21 

// read a byte from the calibration EEPROM

 

#define

 STORE_STARTUP_STATE 

0x23 

// store the new default state

 

#define

 SET_ALC_DAC_VALUE 

0x24 

// set the RF ALC DAC value

 

#define

 GET_ALC_DAC_VALUE 

0x39 

// read back the RF ALC DAC value 

 

 

 

Summary of Contents for 7100036-01

Page 1: ... 2013 2020 SignalCore Inc support signalcore com SC5506A 25 MHz to 6 GHz RF Signal Source USB SPI and RS 232 Interfaces Operating Programming Manual ...

Page 2: ...our Shipment 4 Setting Up and Configuring the SC5506A 4 Power Connection 5 Signal Connections 5 Communication Connections 6 Reset Button 6 Indicator LEDs 7 SC5506A Theory of Operation 8 Output Amplitude Control 8 Frequency Synthesizer 9 Reference Clock Control 10 Harmonics and Range of Operation 10 Channel Standby and RF Enable 10 Default Startup Mode 11 SC5506A Programming Interface 12 Device Dri...

Page 3: ...e DAC Value 15 Storing the Startup State 15 Setting the RF ALC DAC Value 15 Querying the SC5506A Writing to Request Registers 16 Reading the Device Temperature 16 Reading the Device Status 17 Reading the User EEPROM 17 Reading the Calibration EEPROM 18 Reading the RF ALC DAC Value 18 Reading the Device Parameters firmware rev 4 0 18 Calibration EEPROM Map 19 Software API Library Functions 20 Const...

Page 4: ...amming Manual Rev 2 1 1 iii Programming the RS 232 Interface 33 Writing to the Device via RS 232 33 Reading from the Device via RS 232 33 Using the LabVIEW Functions and NI VISA 34 Calibration Maintenance 35 Revision Notes 36 ...

Page 5: ... related to this document or the information contained in it EXCEPT AS SPECIFIED HEREIN SIGNALCORE INCORPORATED MAKES NO WARRANTIES EXPRESS OR IMPLIED AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE CUSTOMER S RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE ON THE PART OF SIGNALCORE INCORPORATED SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID B...

Page 6: ...atement is based on the assumption of reliable information and data provided by our component suppliers and may not have been independently verified through other means For products sold into China we also comply with the Administrative Measure on the Control of Pollution Caused by Electronic Information Products China RoHS In the current stage of this legislation the content of six hazardous mate...

Page 7: ...ERS AND DEVELOPMENT SOFTWARE USED TO DEVELOP AN APPLICATION INSTALLATION ERRORS SOFTWARE AND HARDWARE COMPATIBILITY PROBLEMS MALFUNCTIONS OR FAILURES OF ELECTRONIC MONITORING OR CONTROL DEVICES TRANSIENT FAILURES OF ELECTRONIC SYSTEMS HARDWARE AND OR SOFTWARE UNANTICIPATED USES OR MISUSES OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER ADVERSE FACTORS SUCH AS THESE ARE HEREAFTER COLLECT...

Page 8: ...C5506A Dual Channel RF Signal Source 1 Software Installation USB Flash Drive may be combined with other products onto a single drive Setting Up and Configuring the SC5506A The SC5506A is a core module based RF signal source with all I O connections and indicators located on the front face of the module as shown in Figure 1 Each location is discussed in further detail below Figure 1 Front view of t...

Page 9: ...ffice supply stores If deeper cleaning is necessary use lint free swabs and isopropyl alcohol to gently clean inside the connector barrel and the external threads Do not mate connectors until the alcohol has completely evaporated Excess liquid alcohol trapped inside the connector may take several days to fully evaporate and may degrade measurement performance until fully evaporated Tighten all SMA...

Page 10: ...can also communicate with the device through the micro HDMI port Depending on the version ordered this connector provides either the SPI or RS 232 communication path The pinout of this connector viewed from the front of the module is listed in Table 2 Table 2 Pinout of the SC5506A micro HDMI connector for either SPI or RS 232 communication Pin Number SPI Function RS 232 Function 3 MISO TxD 5 8 RES...

Page 11: ... provides visual indication of important modes There are three LED indicators on the unit Their behavior under different operating conditions is shown in Table 3 Table 3 LED indicator states LED Color Definition STATUS Green Power good and all oscillators phase locked STATUS Orange Channel powered down STATUS Red One or more oscillators off lock STATUS Off Power fault ACTIVE Green Off Device is op...

Page 12: ...ated noise onto the carrier signal and these levels may not be acceptable although they are generally lower than the phase noise SignalCore offers the user the option to open the ALC loop to remove any unwanted AM noise that results from closed loop control Another side effect of the closed loop is that the frequency bandwidth of the ALC loop may slow down amplitude settling Typically in order to ...

Page 13: ...eps of a few megahertz over several gigahertz of range The main or summing PLL combines the signals of the coarse and fine loops into one broad tuning signal with fine tuning capability Figure 2 Simplified block diagram of the SC5506A dual channel RF signal source Using this multiple loop approach produces signals with low phase noise and low phase spurs high levels of which exist in single loop a...

Page 14: ...calibrated level of 10 dBm although the maximum calibrated output is greater than that in most regions of the spectrum The accuracy degrades as the amplitude approaches the compression point due to the linear approximation in the correction algorithm As a general rule however the lower the tuned frequency the higher the achievable output power Channel Standby and RF Enable The SC5506A has independ...

Page 15: ...t state of either channel programmatically allowing the user to power up the device in the last saved state without having to reprogram Table 4 Factory default power up state CH1 CH2 Frequency 2 0 GHz 2 4 GHz Power 0 00 dBm 0 00 dBm RF Output Enabled Enabled ALC Mode Closed Loop Closed Loop Standby Disabled Disabled Auto Level Enabled Enabled Ref Out Disabled Ext Ref Lock Disabled ...

Page 16: ...available in the Win API LabVIEW directory To use the library copy the SignalCore folder in that directory to LabVIEW path instr lib location of your LabVIEW installation directory The LabVIEW functions are simply VI wrappers around sc5506a dll Code written purely in G that does not call or depend on external library functions is available to our customers on request If pure G code SC5506A API fun...

Page 17: ...pen Open Open Open Open Open Enable active LED RF_FREQUENCY 0x10 7 0 Frequency Word MHz 7 0 15 8 Frequency Word MHz 15 8 23 16 Frequency Word MHz 23 16 31 24 Frequency Word MHz 31 24 39 32 Frequency Word MHz 39 32 47 40 Open Open Open Open Open Open Open Channel RF_POWER 0x11 7 0 RF Power Word 7 0 15 8 Sign Bit RF Power Word 14 8 23 9 Channel RF_OUT_ENABLE 0x12 7 0 Open Open Open Open Open Open Ch...

Page 18: ...1 This register sets the RF power level for each channel The LSB is 1 100th of a dB and absolute magnitude is carried in the first 15 bits starting with bit 0 The sign bit is indicated on bit 15 Setting bit 15 high implies a negative magnitude For example to write 10 05 dBm to the register the data is simply 1005 0x03ED For 10 05 dBm the data is 33773 0x83ED Setting RF Output Enable RF_OUT_ENABLE ...

Page 19: ... EEPROM for the user to store data User data is sent one byte at a time and is contained in the last least significant byte of the three bytes of data written to the register The other two bytes contain the write address in the EEPROM For example to write user data 0x22 into address 0x1F00 requires writing 0x1F0022 to this register Setting the Reference DAC Value REFERENCE_DAC_SETTING 0x1D The fre...

Page 20: ...made to the device ENPOINT_OUT to tell the device what data needs to be read back Then a read transfer is made from ENDPOINT_IN to obtain the data The number of valid bytes returned varies from 1 to 3 bytes See the register details below Reading the Device Temperature GET_TEMPERATURE 0x17 Data returned by this register needs to be processed to correctly represent data in temperature units of degre...

Page 21: ...a bits Bit Description 23 Channel 1 Auto level enable Firmware rev 4 0 22 Channel 2 Auto level enable Firmware rev 4 0 21 Channel 1 ALC open 20 Channel 2 ALC open 19 Channel 1 RF output enable 18 Channel 2 RF output enable 17 Channel 1 standby enable 16 Channel 2 standby enable 15 Channel 1 sum PLL status 14 Channel 1 coarse PLL status 13 Channel 1 fine PLL status 12 Reserved 11 Channel 2 sum PLL ...

Page 22: ...int representation is slightly more involved First convert the 4 bytes into an unsigned 32 bit integer value through concatenation and then in C C type cast a float pointer to the address of the value In C C the code would be float Y float X where X has been converted earlier to an unsigned integer An example written in C code would look something like the following Reading the RF ALC DAC Value GE...

Page 23: ... ALC disabled temperature coefficient 100 128 U8 Ch0 VCO value 180 128 U8 Ch0 VCO tune value 200 128 U8 Ch1 VCO value 280 128 U8 Ch1 VCO tune value 300 1 U8 Reference attenuation value 301 125 U16 Cal frequencies MHz 3FB 3875 F32 Ch0 attenuator values 4087 125 F32 Ch0 ALC closed ref RF power 427B 125 U16 Ch0 ALC closed ref DAC value 4375 375 F32 Ch0 ALC closed coefficients 2nd order 4951 125 F32 C...

Page 24: ...c5506a_SetStandby sc5506a_SetFrequency sc5506a_SetPowerLevel sc5506a_SetRfOut sc5506a_SetAlcMode sc5506a_DisableAutoLevel sc5506a_SetReferenceClock sc5506a_SetReferenceDac sc5506a_WriteUserEeprom sc5506a_StoreCurrentState sc5506a_SetAlcDac sc5506a_GetDeviceStatus sc5506a_GetTemperature sc5506a_GetAlcDac sc5506a_ReadCalEeprom sc5506a_ReadUserEeprom sc5506a_GetDeviceInfo sc5506a_GetDeviceParams note...

Page 25: ...he system active light define RF_FREQUENCY 0x10 set the frequency define RF_POWER 0x11 set power of LO1 define RF_OUT_ENABLE 0x12 enable RF output define AUTO_PWR_DISABLE 0x13 disable auto power leveling define RF_ALC_MODE 0x14 select closed 0 or open 1 loop ALC modes define DEVICE_STANDBY 0x15 place the selected channel in standby mode define REFERENCE_MODE 0x16 reference settings define GET_TEMP...

Page 26: ...efClkOutEnable bool deviceAccess deviceStatus_t Function Definitions and Usage Before reading this API section please note that there are API changes in revision 2 0 or later The changes consist of the following The API library is renamed from sc5506a dll to sc5506a_usb dll for the USB interface to prevent confusion between libraries for USB and RS232 Two extra members of the deviceStatus_t struct...

Page 27: ...his information to open specific device s based on their unique serial numbers See sc5506a_OpenDevice function on how to open a device Note changes to OpenDevice function Function sc5506a_OpenDevice API DLL 2 0 Definition deviceHandle sc5506a_OpenDevice char devSerialNum Input char devSerialNum serial number string Return deviceHandle unsigned int number for the deviceHandle Description sc5506a_Op...

Page 28: ...ceList char malloc sizeof char MAXDEVICES MAXDEVICES serial numbers to search for i 0 i MAXDEVICES i deviceList i char malloc sizeof char SCI_SN_LENGTH SCI SN has 8 char numOfDevices sc5506a_SearchDevices deviceList searches for SCI for device type if numOfDevices 0 printf No signal core devices found or cannot not obtain serial numbers n for i 0 i MAXDEVICES i free deviceList i free deviceList re...

Page 29: ...eHandle devHandle handle to the opened device unsigned char commandByte The address byte of the register to write to unsigned long long int instructWord the data for the register unsigned int receivedWord data to be received Description sc5506a_RegRead reads the data requested by the instructWord data to the register specified by the commandByte See the register map on Table 6 for more information...

Page 30: ...PowerLevel Definition int sc5506a_SetPowerLevel deviceHandle devHandle unsigned int channel float powerLevel Input deviceHandle devHandle handle to the opened device unsigned int channel channel name of target power level change float powerLevel set power in dBm Description sc5506a_SetPowerLevel sets the value of the desired output power level for the channel Function sc5506a_SetRfOut Definition i...

Page 31: ...out port Description sc5506a_SetReferenceClock configures the reference clock behavior of the device Function sc5506a_SetReferenceDac Definition int sc5506a_SetReferenceDac deviceHandle devHandle unsigned int dacValue Input deviceHandle devHandle handle to the opened device unsigned int dacValue 14bit value for the reference DAC Description sc5506a_SetReferenceDac set the value of the DAC that tun...

Page 32: ...current device settings Example Code showing how to use function Function sc5506a_GetTemperature Definition int sc5506a_GetTemperature deviceHandle devHandle float temperature Input deviceHandle devHandle handle to the opened device Output float temperature temperature in degrees Celsius Description sc5506a_GetTemperature retrieves the internal temperature of the device Function sc5506a_GetAlcDac ...

Page 33: ... unsigned char byteData the read back byte data Description sc5506a_ReadUserEeprom reads back a byte from a specific memory address of the user EEPROM Function sc5506a_GetDeviceInfo Definition int sc5506a_GetDeviceInfo deviceHandle devHandle deviceInfo_t devInfo Input deviceHandle devHandle handle to the opened device Output deviceInfo_t devInfo device info struct Description sc5506a_GetDeviceInfo...

Page 34: ...ee Table 2 for the connector pin layout Figure 4 shows a 3 byte SPI transfer initiated by the host the device is always in slave mode The CS pin must be asserted low for a minimum period of 5 𝜇𝑠 before data is clocked in The clock rate may be as high as 1 0 MHz however if the external SPI signals do not have sufficient integrity due to cabling problems then the rate should be lowered SignalCore re...

Page 35: ...ster being targeted The MSB byte is the command register address as noted in Table 9 The subsequent bytes contain the data associated with the register As data from the host is being transferred to the device data present on its SPI output buffer is simultaneously transferred back MSB first via the master in slave out MISO line The data return is invalid for most transfers except for those registe...

Page 36: ...mware versions 4 0 or later the number of bytes read back will extended from 4 to 5 bytes to be able to hold the frequency parameters being read back Including the 0x19 register a total of 6 bytes needs to be clock in to properly retrieve the correct values Figure 6 Reading queried data In the above example valid data is present in the last 2 bytes byte 1 and byte 0 Table 10 shows the valid data b...

Page 37: ...last byte may be a null The device upon receiving the first register addressing byte will wait for all the associated data bytes before acting on the register instruction Failure to complete the register transmission will cause the device to behave erratically or hang Information for writing to the configuration registers is provided in Table 5 When the device receives all the information for a re...

Page 38: ...he register calls are made Table 12 LabVIEW RS 232 port access functions Function Description Opens the VISA session to the serial port associated with the device Option to select between 2 Baud rates Closes the VISA session associated with the serial port Writes the data bytes in the buffer to the opened port The data buffer is a byte array Most significant data is sent first Writes the query reg...

Page 39: ...e maintains a calibration data archive of all units shipped Archiving this data is important should a customer need to reload calibration data into their device for any reason SignalCore also uses the archived data for comparative analysis when units are returned for calibration Should any customer need to reload calibration data for their SC5506A SignalCore offers free support through support sig...

Page 40: ...S 232 documentation Rev 1 1 4 Corrected Table 10 Rev 1 1 5 Corrected section on SPI communication corrected for missing references Rev 1 1 6 Updated EN and IEC testing standards and EU Directive references minor rewrites throughout manual Rev 1 2 0 Removed legacy SPI information Rev 2 0 0 Added revision 2 API information to take advantage of firmware revision 4 and later Rev 2 1 0 Added note for p...

Reviews: