UPDATE After reading comments, I realize that I need to ask better questions. Here is a more explicit question. Ignore the original, which is below for reference.

I am driving an LED. The idea is to change the supply of the LED so that I can make the output of LED modulated at my supply frequency. LED is tied to a transistor which is essentially a switch, when I want output, I use GPIO to turn on a simple transistor and current starts to flow. The issue is that I want to sense when I turn on this LED from far far away where the SNR is real issue. So, my idea is to add modulation to my LED output. So when I turn on the LED it will essentially emit a modulated signal (hopefully 10MHz, previous 1MHz was a mistake). The idea is to modulate the voltage supply of the LED and when I turn on the LED using GPIO, the current across the LED modulates at my desired frequency. I will choose the DC and AC components such that the LED will be on but its intensity will change with frequency.

The idea is to implement a lock in amplifier at the receiver for 10Mhz and sense 1 vs. 0 at much lower signal levels.

My current requirement is 50mA max. The 10MHz AC over DC must be stable as I turn on or off the LED, I don't want to loose the 10MHz or wait for it to stabilize for a long time, so the source should tolerate load changes and respond fairly fast. (preferably <50nSec)

UPDATE 2 FYI. The application is not data transmission, I just need to recognize the presence of the signal. I control both transmitter and receiver. The signal is on only for 1uSec at a time, with frequency between 100Khz to 1MHz. I unfortunately cannot change this 1usec hard requirement or use a fixed frequency. So, I need to see the signal at that 1uSec. The idea I have is to make that 1uSec a modulated signal so that I can tune into the modulation of that signal during that 1uSec.

BTW, the system currently works without this type of modulation but not in every situation (too much interference, imperfect alignment of the receiver etc) due to low SNR. All I want to is to modify transceiver and receiver circuits to increase the SNR and this is what I can think of. I considered several other options but since my transmitter frequency is not fixed, it is difficult to use narrowband filters etc to reduce the overall noise. Having a HF modulation during the short burst of transmission would allow me to have a lock in amplifier. Essentially, I am trying to cheat by embedding a high fixed frequency signal on to a Lower Frequency signal that is not fixed frequency and look for the HF to see the presence of LF signal. As I indicated, LF in this case is not fixed frequency, could be as low as 100Khz or as high as 1MHz.

ORIGINAL QUESTION I have a 5V DC. I like to generate 3VDC, 1V AC (2-4V) from this 5V. AC frequency I am targeting is 1MHz. This AC needs to stabilize very very fast, hopefully less than 50nSec. I have a CPU on board, so if I must, I can provide a clock input, it can be anything since I can program the timers of the CPU. (I prefer a pure hardware solution though).

Solution needs to be design time tunable, I may have to change the frequency.

  • 1
    \$\begingroup\$ I don't think I understand... you have a 5VDC input (what is it's current limit?), and you want two outputs: 3VDC and a 2V peak-to-peak AC output with DC offset of 3V? What kind of current demand do your outputs require? \$\endgroup\$ – vicatcu Jan 2 '12 at 3:43
  • \$\begingroup\$ As ever, telling us as much about what you are trying to do can help muchly. eg 1 MHz can be a suitably fast DAC output. BUT 50 nS = 0.05 of a cycle. What do YOU - MEAN by stabilise? What is you r starting ciondition- > DC? Phase changing from some other AC phase etc. A fller picture allows a fuller answer. I could probably provide an instant adequate answer if I knew the real question. As could Wouter and Olin and Oli and ??? others. A counter clocked PROM with "adeaute" DAC would do a fine job of this. Probably. would \$\endgroup\$ – Russell McMahon Jan 2 '12 at 3:44
  • \$\begingroup\$ Some terms to look up: oscillator, voltage-controlled oscillator. Check these on Wikipedia or where-ever, and if you still have questions, drop back here. \$\endgroup\$ – The Photon Jan 2 '12 at 5:17
  • \$\begingroup\$ If you are asking us to suggest a circuit for you, we need some more key specs: how accurately do you need to hit 1.0000 MHz? How much do you need to adjust the frequency by ( +/- 1 Hz or +/- 500 kHz)? What kind of input will you use to tell the circuit to adjust the frequency? Do you care about spectral purity/harmonic distortion? How many do you need to build? \$\endgroup\$ – The Photon Jan 2 '12 at 5:21
  • 1
    \$\begingroup\$ Why 10 MHz? Does this system of your need extremely high data-rates or something? Normal TV remotes work quite well at ~40 KHz, even over impressively long distances. \$\endgroup\$ – Connor Wolf Jan 2 '12 at 12:27

I think the easiest way to do this is to simply buy an oscillator from CTS, ECS, NDK or any of the other vendors available through the catalog distributors. You could get an oscillator that puts out a fixed 10.000000 MHz square wave at CMOS levels, or, for tunability you could use either a "programmable oscillator" or a voltage controlled oscillator (VCO). With the VCO you could adjust the frequency in real-time using a PWM output from your microcontroller. In either case you will pay a couple of dollars extra for adjustability.

You could also save a few pennies by building your own oscillator, but buying off-the-shelf will get the job done quicker and not require as much testing and debugging.

Now, how to connect it in to your circuit. As you suggested, you could build an op-amp circuit to scale and offset the oscillator output to a 2-to-4 V range and use that to control a high-side or low-side switch on the LED power circuit.

But more simple would probably be to just AND the oscillator output with your existing GPIO signal, then use the new modulated control signal to drive your existing switch circuit. This will ensure a fast response when the control signal turns on and off.

Here's an idea of how this would look:


The "in" signal is your existing GPIO control signal, and the transistor/resistor combination represents your existing LED drive buffer circuit.

  • \$\begingroup\$ Good idea, I like it. Do you think it is possible to design the transistor front end to cope with that speeds, I had a hard time dealing with 1MHz. (I had to add a shotky diode to make it faster). However I still prefer how to do it by changing the supply. \$\endgroup\$ – Ktc Jan 4 '12 at 10:34
  • \$\begingroup\$ @user3685, See Olin Lathrop's answer to another question (electronics.stackexchange.com/questions/24516/…) for an improved driver circuit that can improve the speed of switching an LED. If the circuit I propose is too slow, any solution that works by only switching the power supply will be equally slow for the same reason, solved by Olin's circuit. You may need to be careful selecting your LED and your drive transistor(s) to achieve 10 MHz switching. \$\endgroup\$ – The Photon Jan 4 '12 at 17:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.