LTC5599 - 30MHz to 1300MHz Low Power Direct Quadrature Modulator
Features
- Frequency Range: 30MHz to 1300MHz
- Low Power: 2.7V to 3.6V Supply; 28mA
- Low LO Carrier Leakage: –51.5dBm at 500MHz
- Side-Band Suppression: –52.6dBc at 500MHz
- Output IP3: 20.8dBm at 500MHz
- Low RF Output Noise Floor: –156dBm/Hz at 6MHz Offset, PRF = 3dBm
- Sine Wave or Square Wave LO Drive
- SPI Control:
Adjustable Gain: –19dB to 0dB in 1dB Steps
Effecting Supply Current from 8mA to 35mA
I/Q Offset Adjust: –65dBm LO Carrier Leakage
I/Q Gain/Phase Adjust: –60dBc Side-Band Suppressed - 24-Lead QFN 4mm × 4mm Package
Typical Application
Description
The LTC®5599 is a direct conversion I/Q modulator designed for low power wireless applications that enable direct modulation of differential baseband I and Q signals on an RF carrier. Single side-band modulation or side-band suppressed upconversion can be achieved by applying 90° phase-shifted signals to the I and Q inputs. The I/Q baseband input ports can be either AC or DC coupled to a source with a common mode voltage level of about 1.4V. The SPI interface controls the supply current, modulator gain, and allows optimization of the LO carrier feedthrough and side-band suppression, with sine wave or square wave LO drive. A fixed LC network on the LO and RF ports covers a continuous 90MHz to 1300MHz operation. An on-chip thermometer can be activated to compensate for gain-temperature variations. More accurate temperature measurements can be made using an on-chip diode. In addition, a continuous analog gain control (VCTRL) pin can be used for fast power control.
Packaging
CAD Symbols and Footprints: The downloadable Zip file below contains the schematic symbol and PCB footprints.
For complete and up to date package information and drawings, please refer to our packaging page
| Part Number | Package | Code | Temp | Package Drawing |
RoHS |
|---|---|---|---|---|---|
| LTC5599IUF#PBF | 4x4 QFN-24 | UF | I | 05-08-1697 | Yes |
| LTC5599IUF#TRPBF | 4x4 QFN-24 | UF | I | 05-08-1697 | Yes |
Order Info
- Part numbers ending in PBF are lead free. Solder plated terminal finish (SnPb) versions are non-standard and special terms and conditions and pricing applies if available. Please contact LTC marketing for information.
- Part numbers containing TR or TRM are shipped in tape and reel or 500 unit mini tape and reel, respectively
- Please refer to our general ordering information or the product datasheet for more details
Package Variations and Pricing
| Part Number | Package | Temp | Price (1-99) |
Price (1k)* |
RoHS | |
|---|---|---|---|---|---|---|
| LTC5599IUF#PBF | 4x4 QFN-24 | I | $6.36 | $4.45 | Yes | |
| LTC5599IUF#TRPBF | 4x4 QFN-24 | I | $6.42 | $4.50 | Yes | |
| Buy Now • Request Samples | ||||||
Demo Boards
Linear Technology offers many demo boards free of charge to qualified customers. Contact your local sales office or distributor to inquire about a demo board. Certain demo boards are also available for sale via credit card on this website. Demo boards are for evaluation purposes only. It remains the customer’s responsibility to verify proper and reliable operation in the actual end application.| Part Number | Description | Price | Documentation |
|---|---|---|---|
| DC2091A | LTC5599 | 30MHz to 1300MHz Low Power Direct I/Q Modulator - DC590B Serial Board Required | $125.00 | |
| Buy Now | |||
Companion Boards
| Part Number | Description | Price | Documentation |
|---|---|---|---|
| DC2026C | Linduino One Isolated USB Demo Board: An Arduino- and QuikEval-Compatible Code Development Platform | $75.00 | |
| DC590B | Isolated USB Serial Controller for Linear Technology QuikEval-Compatible Demo Boards | $50.00 | |
| Buy Now | |||
Applications
- Wireless Microphones
- Battery Powered Radios
- Ad-Hoc Wireless Infrastructure Networks
- “White-Space” Transmitters
- Software Defined Radios (SDR)
- Military Radios
People Who Viewed This Product Also Viewed
- LTC6948 - Ultralow Noise 0.37GHz to 6.39GHz Fractional-N Synthesizer with Integrated VCO
- LT3042 - 20V, 200mA, Ultralow Noise, Ultrahigh PSRR RF Linear Regulator
- LT4320/LT4320-1 - Ideal Diode Bridge Controller
- LTC6655 - 0.25ppm Noise, Low Drift Precision References
- LTC2983 - Multi-Sensor High Accuracy Digital Temperature Measurement System
- LTC6946 - Ultralow Noise and Spurious 0.37GHz to 6.39GHz Integer-N Synthesizer with Integrated VCO
- LTC6950 - 1.4GHz Low Phase Noise, Low Jitter PLL with Clock Distribution
- LT3080 - Adjustable 1.1A Single Resistor Low Dropout Regulator
- LTC5584 - 30MHz to 1.4GHz IQ Demodulator with IIP2 and DC Offset Control
- LTC6957 - Low Phase Noise, Dual Output Buffer/Driver/Logic Converter
Product Notifications
Please login to your MyLinear account for notifications of datasheet updates, new document releases and LTspice model announcements for your favorite products. If you do not have a MyLinear account you may Sign Up Now.
Forgot your password? Click here.
Need help? Email mylinear@linear.com with questions and comments.
Design Tools
LTspice
LTspice® software is a powerful, fast and free simulation tool, schematic capture and waveform viewer with enhancements and models for improving the simulation of switching regulators. Click here to download LTspice
To launch a ready to run LTspice demonstration circuit for this part:
- Step 1: If you have not installed LTspice on this computer, download and install LTspice
- Step 2: Once LTspice is installed, click on the link(s) below to launch the simulation
- Step 3: If LTspice does not automatically open after clicking the link above, you can instead run the simulation by right clicking on the link and selecting "Save Target As." After saving the file to your computer, start LTspice and open the demonstration circuit by selecting 'Open' from the 'File' menu
To explore other ready to run LTspice demonstration circuits, please visit our Demo Circuits Collection.
Linduino
Linduino is an Arduino compatible platform for developing and distributing firmware libraries and code for SPI and I²C-compatible integrated circuits. The Linduino One board interfaces to more than 300 QuikEval demonstration cards, supporting a variety of product types including analog-to-digital converters (ADCs), digital-to-analog converters (DACs), power monitors, and more. Firmware libraries for individual devices are written in C and designed to be portable to a wide variety of processors and microcontrollers. Each library has a demonstration program that can be uploaded to the Linduino One platform to allow the circuit and software to be quickly and easily verified.
Code
Linduino is Linear Technology's Arduino compatible system for developing and distributing firmware libraries and example code for Linear Technology’s integrated circuits. The code below can be downloaded or copied and pasted into your project. Please visit the Linduino Home Page for demo board, manual and setup information.
This part is Code Supported: There is example code available for this part. The code below may rely on other drivers available in the full library.
Download LTC5599 - DC2091A.INO
/*!
Linear Technology DC2091A Demonstration Board.
LTC5599: 130 to 1300MHz IQ Modulator.
@verbatim
NOTES
Setup:
Set the terminal baud rate to 115200 and select the newline terminator.
USER INPUT DATA FORMAT:
decimal : 1024
hex : 0x400
octal : 02000 (leading 0 "zero")
binary : B10000000000
float : 1024.0
@endverbatim
http://www.linear.com/product/LTC5599
http://www.linear.com/product/LTC5599#demoboards
REVISION HISTORY
$Revision: 3018 $
$Date: 2014-12-01 15:53:20 -0800 (Mon, 01 Dec 2014) $
Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.
The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community. Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/
/*! @file
@ingroup LTC5599
*/
#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "UserInterface.h"
#include "LT_I2C.h"
#include "QuikEval_EEPROM.h"
#include "LTC5599.h"
#include <SPI.h>
#include <Wire.h>
// Function Declaration
void print_title(); // Print the title block
void print_prompt(); // Prompt the user for an input command
void print_user_command(uint8_t menu); // Display selected differential channels
void menu_1_read_register();
void menu_2_write_register();
//Global variables
uint8_t address;
uint8_t rw;
//! Initialize Linduino
void setup()
{
char demo_name[]="DC2091"; //!< Demo Board Name stored in QuikEval EEPROM
quikeval_I2C_init(); // Configure the EEPROM I2C port for 100kHz
quikeval_SPI_init(); // Configure the spi port for 4MHz SCK
quikeval_SPI_connect(); // Connect SPI to main data port
Serial.begin(115200); // Initialize the serial port to the PC
print_title();
print_prompt();
}
//! Repeats Linduino loop
void loop()
{
uint16_t user_command;
if (Serial.available())
{
user_command = read_int(); // Read the user command
if (user_command != 'm')
Serial.println(user_command); // Prints the user command to com port
switch (user_command)
{
case 1:
menu_1_read_register();
break;
case 2:
menu_2_write_register();
break;
default:
Serial.println("Invalid Option");
break;
}
Serial.println();
print_prompt();
}
}
// Function Definitions
//! Read register
//! @ return void
void menu_1_read_register()
{
uint8_t write_byte = 0;
uint8_t readback_byte;
// uint8_t address;
Serial.println();
Serial.print(F("Enter the desired register address in HEX (precede with '0x'): "));
address = read_int();
Serial.println(address, HEX);
Serial.println(F(""));
rw = LTC5599_READ; //set to read
LTC5599_write_read(LTC5599_CS, address, rw, write_byte, &readback_byte);
Serial.println(F(""));
Serial.print(F("Readback byte (in hex): "));
Serial.println(readback_byte, HEX);
Serial.print(F("Readback byte (in binary): "));
Serial.println(readback_byte, BIN);
}
//! Write to register & readback
//! @ return void
void menu_2_write_register()
{
uint8_t write_byte;
uint8_t readback_byte;
// uint8_t address;
Serial.println();
Serial.print(F("Enter the desired register address in HEX (precede with '0x'): "));
address = read_int();
Serial.println(address, HEX);
Serial.println(F(""));
Serial.println();
Serial.print(F("Enter the desired register byte in HEX: "));
write_byte = read_int();
Serial.println(write_byte, HEX);
Serial.println(F(""));
rw = LTC5599_WRITE; //set to write
LTC5599_write_read(LTC5599_CS, address, rw, write_byte, &readback_byte);
rw = LTC5599_READ; //set to read
LTC5599_write_read(LTC5599_CS, address, rw, write_byte, &readback_byte);
Serial.print(F("Readback byte (in hex): "));
Serial.println(readback_byte, HEX);
Serial.print(F("Readback byte (in binary): "));
Serial.println(readback_byte, BIN);
}
//! Prints the title block when program first starts.
void print_title()
{
Serial.println();
Serial.println(F("*****************************************************************"));
Serial.println(F("* DC2091A Demonstration Program *"));
Serial.println(F("* *"));
Serial.println(F("* This program demonstrates how to send data *"));
Serial.println(F("* to the LTC5599 IQ modulator. *"));
Serial.println(F("* *"));
Serial.println(F("* Set the baud rate to 115200 and select the newline terminator.*"));
Serial.println(F("* *"));
Serial.println(F("*****************************************************************"));
}
//! Prints main menu.
void print_prompt()
{
Serial.println(F(" 1-Read Register"));
Serial.println(F(" 2-Write Register"));
Serial.println();
Serial.print(F("Enter a command: "));
}
Download LTC5599 - Linduino Header File
/*!
LTC5599: 140 to 1000MHz IQ modulator
@verbatim
@endverbatim
http://www.linear.com/product/LTC5599
http://www.linear.com/product/LTC5599#demoboards
REVISION HISTORY
$Revision: 3018 $
$Date: 2014-12-01 15:53:20 -0800 (Mon, 01 Dec 2014) $
Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.
The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community. Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/
/*! @file
@ingroup LTC5599
Header for LTC5599: Direct Conversion I/Q Modulator
*/
#ifndef LTC5599_H
#define LTC5599_H
#include <SPI.h>
//! Define the SPI CS pin
#ifndef LTC5599_CS
#define LTC5599_CS QUIKEVAL_CS
#endif
//! @name LTC5599 read/write bits
//! @{
// Write Command
#define LTC5599_WRITE 0x00
// Read Command
#define LTC5599_READ 0x01
//!@}
//! Reads the modulator register and returns 8-bit data
//! @return void
void LTC5599_write_read(uint8_t cs, //!< Chip Select Pin
uint8_t address, //!< Channel address, config bits ORed together
uint8_t rw,
uint8_t tx,
uint8_t *rx //!< Returns code read from device
);
#endif // LTC5599_HDownload LTC5599 - Linduino.CPP File
/*!
LTC5599: 140 to 1000MHz IQ modulator
@verbatim
The LTC5599 is an IQ modulator with
serial I/O.
@endverbatim
http://www.linear.com/product/LTC5599
http://www.linear.com/product/LTC5599#demoboards
REVISION HISTORY
$Revision: 3028 $
$Date: 2014-12-02 16:42:48 -0800 (Tue, 02 Dec 2014) $
Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.
The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community. Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/
//! @defgroup LTC5599 LTC5599: Direct Conversion I/Q Modulator
/*! @file
@ingroup LTC5599
Library for LTC5599: Direct Conversion I/Q Modulator
*/
#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "LTC5599.h"
#include <SPI.h>
#include <math.h>
// Reads and returns 8-bit data
void LTC5599_write_read(uint8_t cs, uint8_t address, uint8_t rw, uint8_t tx, uint8_t *rx)
{
address = address << 1;
union
{
uint8_t b[2];
uint16_t w;
} command, data;
if(rw == 0) //write
{
command.b[1] = address;
command.b[0] = tx; //write this command byte
spi_transfer_word(cs,command.w,&data.w); //write an address byte and a command byte to the device
}
else
{
address = address + 0x01;
command.b[1] = address;
command.b[0] = 0x00; //read into this data byte
spi_transfer_word(cs,command.w,&data.w); //write an address byte to the device and read back a byte
*rx = data.b[0];
}
}
Technical Support
- For immediate technical assistance, contact your local sales office or distributor or call 1-800-4-LINEAR (US customers only) or 408-432-1900.
- For less urgent requests, please complete our Technical Support Request Form. Please allow 2-3 business days for reply.
