Page 2
SC5406B - Theory of Operation Overview Signal Path Description Local Oscillator Description Frequency Tuning Modes Setting the SC5406B to Achieve Best Dynamic Range Operating the SC5406B Outside Normal Range SC5406B Programming Interface Device Drivers The SC5406B USB Configuration Writing the Device Registers Directly...
Page 3
Setting the SC5406B - Writing USB Configuration Registers Directly Configuration Registers Tuning the RF Frequency Changing the Attenuator Settings Enabling and Disabling the Internal Tone Generator Changing the RF Synthesizer Mode Selecting the IF Filter Path Enabling the Internal IF Signal Generator.
Page 4
Programming the SC5406B Serial Peripheral Interface The SPI Communication Connector The SC5406B SPI Architecture SPI Clock Rates and Modes Writing Configuration Data via the SPI Bus Reading Requested Data via the SPI Bus Calibration & Maintenance Revision Notes SC5406B Operating & Programming Manual Rev 1.1...
Please contact SignalCore if errors are suspected. In no event shall SignalCore be liable for any damages arising out of or related to this document or the information contained in it.
SignalCore, Incorporated respects the intellectual property rights of others, and we ask those who use our products to do the same. Our products are protected by copyright and other intellectual property laws. Use of SignalCore products is restricted to applications that do not infringe on the intellectual property rights of others.
Laboratory Equipment include EN 61326 and EN 55011 for EMC, and EN 61010-1 for product safety. Recycling Information All products sold by SignalCore eventually reach the end of their useful life. SignalCore complies with EU directive 2002/96/EC regarding Waste Electrical and Electronic Equipment (WEEE).
Figure 1 Front view of the SC5406B connectors. The SC5406B is a core module-based RF upconverter with all user I/O located on the front face of the module as shown in Figure 1. Each location is discussed in further detail below.
Page 9
Signal Connections All signal connections (ports) to the SC5406B are SMA-type. Exercise caution when fastening cables to the SMA connections. Over-tightening any connection can cause permanent damage to the device. The condition of your system‘s signal connections can significantly affect measurement accuracy and repeatability.
Page 10
Reserved, pull high to 3.3V or RX/MOSI. This pin is RX for RS232 or MOSI for SPI RTS/SRDY. This pin is RTS for RS232 or , logic 0 to reset device Reset serial ready for SPI SC5406B Operating & Programming Manual Rev 1.2...
Page 11
Device ground (also tied to connector shell) The SC5406B uses a mini-USB Type B connector for USB communication with the device using the standard USB 2.0 protocol (full speed) found on most host computers. The pinout of this connector, viewed from the board edge, is shown in the table above.
IF frequencies from appearing at the RF output port. The SC5406B exhibits very low phase noise of -107 dBc/Hz at 10 kHz offset on a 1 GHz RF carrier with a typical noise floor of -150 dBm/Hz. The noise floor can be further reduced below -165 dBm/Hz by enabling the internal preamplifier.
Page 13
Figure 3 depicts an overall block diagram of the SC5406B. Starting from the upper right, the IF3 input of the SC5406B is AC coupled, followed by a switch set by default to switch in the IF port, but it will switch to the signal generator path when the device enables internal signal generation.
Page 14
10 MHz Attenuator, ADC, DAC, other devices Ref. Out Power PXIe 10/100 MHz SPI, RS-232, USB Module A Regulation 3.9 GHz Three Stage Upconverter Figure 3. Block diagram of SignalCore 3.9 GHz upconverters. SC5406B Operating & Programming Manual Rev 1.2...
Page 15
DDS-generated spurs are suppressed within the architecture, LO1 is made to fine tune to exact frequencies, that is, the frequency synthesized is an exact integer multiple or division of the reference signal. SC5406B Operating & Programming Manual Rev 1.2...
Page 16
10 MHz TCXO for frequency accuracy and stability. For better frequency accuracy and stability than the TCXO onboard the SC5406B, or for frequency synchronization, the user can programmatically set the device to phase lock the TCXO to an external 10 MHz reference source by programming the REFERENCE_SETTING register.
Page 17
The SC5406B is designed for a nominal input IF level of 0 dBm. Depending on the application, the user will need to set the appropriate gain of the device (via attenuation), and the output level, to suit the particular application.
Page 18
Operating the SC5406B Outside Normal Range The SC5406B is capable of tuning below 1 MHz and above 3.9 GHz. These frequencies lie outside of the specification range and performance will be degraded if operated in these outer margins. For some applications, the reduced dynamic range or elevated spurious levels in these ranges may not pose an application concern.
API other than that provided in the software installation, please contact SignalCore. The SC5406B USB Configuration The SC5406B USB interface is USB 2.0 compliant running at Full Speed, capable of 12 Mbits per second. It supports 3 transfer or endpoint types: •...
Page 20
Details for reading the registers are provided in the next section. Using the Application Programming Interface (API) The SC5406B API library functions make it easy for the user to communicate with the device. Using the API removes the need to understand register-level details - their configuration, address, data format, etc.
Users may write the configuration registers (write only) directly by calling the sc5406B_RegWrite function. The configuration registers to control the SC5406B are summarized in Table 2. Data must be formatted into an unsigned integer of 32 bits prior to passing it to the function. As an example, to write...
Page 22
IF3_FILTER0 and IF3_FILTER1. Setting bit 0 high will select IF_FILTER1. The exact bandwidths of the filters depend on the available installed options and are stored in the device calibration EEPROM. This function does not work for converters without addition filters. SC5406B Operating & Programming Manual Rev 1.2...
Page 23
Adjusting the Reference Clock Accuracy The frequency precision of the SC5406B’s 10 MHz TCXO is set by the device internally. The device writes the factory calibrated value to the reference DAC on power-up. This value is an unsigned 16-bit number stored in the EEPROM (see the calibration EEPROM map).
Page 24
ANDed to indicate the proper phase-locked status. The three bits that indicate the status of the three phase detectors are [13], [10], and [9]. SC5406B Operating & Programming Manual Rev 1.2...
Page 25
RF signal as the serial clock potentially modulates the local oscillators. Furthermore, once the SC5406B stabilizes in temperature, repeated readings will likely differ by as little as 0.25 °C over extended periods of time. Given that the gain-to-temperature coefficient is on the order of 0.06 dB/°C, gain changes between readings will be negligible.
Page 26
Reading User EEPROM Data Once data has been written to the User EEPROM, it can be retrieved using the process outlined above for reading calibration data by calling the READ_USER_EEPROM or READ_USER_EEPROM_BULK registers. SC5406B Operating & Programming Manual Rev 1.2...
Page 27
[33x50] RF Calibration Table 5 lists the calibration EEPROM map of the SC5406B, indicating how and where board information and calibration data are stored. Since there are only 16k bytes on the EEPROM, SignalCore recommends that all data be read into host memory on initialization of the device and parsed for further mathematical manipulation.
Page 28
Product Serial Number (0x04). This is an unsigned integer value that contains the SC5406B serial number. It is unique for every product produced. It is used for the purpose of tracking the history of the product.
Page 29
Table 8. An example of IF attenuation calibration. IF3_Attenuator 2 0.973 1.927 2.948 3.912 28.630 29.634 IF3_Attenuator1 0.989 1.970 2.998 3.989 28.890 29.874 IF1_ Attenuator 0.995 2.028 3.038 4.023 28.868 29.854 SC5406B Operating & Programming Manual Rev 1.2...
RF attenuator for fifty frequency points that span the operational frequency range of the SC5406B. Data is read in concatenation of rows. For example, all the frequency values are read in first, then the preamplifier gain values, followed by the zero attenuation- setting gain, etc.
Page 31
The function sc5406B_CalcGain uses six localized [X] points to compute the interpolated point. Using localized points, the example in Table 10 is re-tabulated in Table 11. Similarly, frequency dependent preamplifier gain and RF attenuation may be derived. SC5406B Operating & Programming Manual Rev 1.2...
Page 32
However, for a large bandwidth signal that spans several MHz, it is important to apply gain and phase correction to the offset frequencies; those that are SC5406B Operating & Programming Manual Rev 1.2...
Page 33
IF. Although SignalCore performs calibration of the amplitude and phase over the bandwidth of the IF filters (available on the device calibration EEPROM), it is recommended that the user perform in-situ system equalization for digital broadband applications for improved performance.
Page 34
The functions listed below comprise the function set of the dynamic-linked library (Windows operating systems) and shared library (Linux operating system) versions of the SC5406B API. The LabVIEW palette library differs slightly due to the unique requirements of the LabVIEW programming environment (e.g., LabVIEW already provides standard math functions for curve fitting with spline interpolation).
Page 35
SignalCore defines the following constants and types which are contained in the C header file, sc5406B.h. These constants and types are useful not only as an include file for developing applications using the sc5406B libraries, but also for writing device drivers independent of those provided by SignalCore.
// The TCXO dac value at T0 calibrationData_t; typedef struct attenuator_t unsigned int if3Atten1Value; unsigned int if3Atten2Value; unsigned int rfAtten1Value; unsigned int rfAtten2Value; unsigned int if2AttenValue; attenuator_t; typedef struct deviceStatus_t bool tcxoPllLock; bool vcxoPllLock; bool lo1Pll3Lock; SC5406B Operating & Programming Manual Rev 1.2...
Page 37
*handle; libusb_context *ctx; //need to carry the session context for libusb_exit } deviceHandle; //using deviceHandle rather deviceHandle_t for back compatibility SC5406B Operating & Programming Manual Rev 1.2...
I N T E R F A C E The functions listed below are found in the sc5406b.dll dynamic linked library These functions are also provided in the SC5406B LabVIEW palette, except in cases where an existing native function already exists to perform the same or similar task.
Page 39
See the register map in Table 2 for more information. This function should rarely be used. Example: To set the RF attenuator value to 10 dB: status = sc5406B_RegWrite(devHandle, 0x11, 0x020A); SC5406B Operating & Programming Manual Rev 1.2...
Page 40
Definition: sc5406B_ SetFrequency(deviceHandle *devHandle, unsigned int frequency) Return: The status of the function Input: deviceHandle *devhandle (handle to the opened device) unsigned int frequency (frequency in Hz) Description: sc5406B_SetFrequency sets the RF frequency. SC5406B Operating & Programming Manual Rev 1.2...
Page 42
(16-bit value for the reference DAC) Description: sc5406B_SetReferenceDac set the value of the DAC that tunes the internal reference TXCO. The user may choose to override the value stored in memory to improve frequency accuracy. SC5406B Operating & Programming Manual Rev 1.2...
Page 43
(handle to the opened device) unsigned int memAdd (memory address to write to) unsigned char byteData (byte to be written to the address) Description: sc5406B_WriteUserEeprom writes one byte of data to the memory address specified. SC5406B Operating & Programming Manual Rev 1.2...
Page 44
(handle to the opened device) unsigned int memAdd (EEPROM memory address) Output: unsigned char *byteData (the read byte data) Description: sc5406B_ReadCalEeprom reads back a byte from the memory address of the calibration EEPROM. SC5406B Operating & Programming Manual Rev 1.2...
Page 46
EEPROM and returns two data formats - deviceAttribute_t and calibrationData_t. The array rawCalData must contain valid calibration data, obtained by reading the EEPROM, and rawCalData, calData and deviceAttributes must have memory allocated. SC5406B Operating & Programming Manual Rev 1.2...
Page 47
//read in raw calibration status = sc5406B_GetRawCal(devHandle, rawCal); //Calling the function to structure the calibration data status = sc5406B_convertRawCalData(rawCal, devAttr, calData); //alternatively instead of calling the above 2 functions status = sc5406B_GetCalData(devHandle, devAttr, calData); SC5406B Operating & Programming Manual Rev 1.2...
Page 48
IF3 attenuators) Description: SC5406B_CalcAutoAttenuation returns the set of attenuation settings for all the attenuators that will configure the SC5406B for best dynamic range operation based on user input parameters such as frequency, mixer level, etc. The values are calculated to maintain a good balance between the signal-to-noise dynamic range and the linearity dynamic range.
Page 49
SC5406B_CalcAutoSigGenAttenuation returns the set of attenuation settings for all the attenuators that will configure the SC5406B for best dynamic range operation based on user input parameters such as frequency, perfSelection, etc when the internal signal generator is turned on. The values are calculated to maintain a good balance between the signal-to-noise dynamic range and the linearity dynamic range.
Page 50
(temperature value of the device in degrees Celsius) calibrationData_t *calData (calibration data for the device) Output: float *conversionGain (calculated calibrate conversion gain for current settings) Description: sc5406B_CalcGain calculates the calibrated gain based on the current user settings. SC5406B Operating & Programming Manual Rev 1.2...
Page 51
The user should apply in situ equalization to correct for the in-band amplitude and phase errors. SC5406B Operating & Programming Manual Rev 1.2...
Page 52
(the numbers of points in xArray) double x (the value at which interpolation is performed) interpolatedYValue Output: double * (the corresponding interpolated value at x) Description: Returns the Spline interpolated value. SC5406B Operating & Programming Manual Rev 1.2...
Page 53
The interface is provided through the communication I/O connector and its pinouts are giving in Table 1. The device communication control is provided in Table 13. SC5406B Operating & Programming Manual Rev 1.2...
Page 54
Temperature Data section for information to convert it to floating number in degree Celsius Table 14 Valid returned data REGISTER BYTE 1 BYTE 0 GET_DEVICE_STATUS (0x18) valid valid GET_TEMPERATURE (0x19) valid valid READ_CAL_EEPROM (0x20) non-valid valid READ_USER_EEPROM (0x22) non-valid valid SC5406B Operating & Programming Manual Rev 1.2...
Page 55
Therefore, a time delay is required between consecutive bytes of a command written to or read from the SC5406B by the host. The chip-select pin (CS) must be asserted low before data is clocked in or out of the product. CS must be asserted for the entire duration of the command.
Page 56
(address) byte. The CS pin must be asserted low for a minimum period of 1 before data is clocked into the SC5406B. The clock rate may be as high as 1.2 MHz. However, if the externally generated SPI commands do not have sufficient signal integrity due to cabling problems (impedance, crosstalk, etc.), the rate should be lowered.
Page 57
After each command is received successfully, it is processed by the SC5406B. The time required to process a command is dependent on the command itself. Measured times for command completions are typically between 40 to 350 after reception. It is required that the user poll the status of the SerialReady bit before sending another command.
Page 58
Writing Configuration Data via the SPI Bus SPI commands for the SC5406B vary between 2 bytes to 5 bytes. The most significant byte (MSB) is the command register address as noted in the register map of Table 16. The subsequent bytes contain configuration data.
Page 59
SERIAL_READY register to ensure that the prior request command has been fully executed. In figure 9, polling the SERIAL_READY register is not shown explicitly. If the delay between consecutive commands is longer than the preceding command processing time, then querying of the SERIAL_READY register may not be required. SC5406B Operating & Programming Manual Rev 1.2...
Page 60
Table 18 Valid returned data bytes Register (Address) Reg Code Byte 1 Byte 0 GET TEMPERATURE 0x19 Valid Valid GET DEVICE STATUS 0x18 Valid Valid READ USER EEPROM 0x22 Valid READ CAL EEPROM 0x20 Valid SC5406B Operating & Programming Manual Rev 1.2...
Page 61
The SC5406B is factory calibrated and ships with a certificate of calibration. SignalCore strongly recommends that the SC5406B be returned for factory calibration every 12 months or whenever a problem is suspected. The specific calibration interval is left to the end user and is dependent upon the accuracy required for a particular application.
Page 62
E V I S I O N O T E S Rev. 1.0 Original document Rev. 1.1 Address Removed Rev. 1.2 Updates for Clarity SC5406B Operating & Programming Manual Rev 1.2...
Need help?
Do you have a question about the SC5406B and is the answer not in the manual?
Questions and answers