First off: me and analog don't get along, so this is is a really simple question that I *should* know the answer to, but don't...
I've got a pulse coming in that's *trying* to be a 1uSec square wave, but is being collapsed (intentionally) by a short circuit. It's being compared against a reference voltage, and the length of time above that reference is measured by a chip I've got.
Here's an example of a series of readings as I *expect* to get:
Problem is, I moved the circuit to another breadboard, and now I have a really nasty 100MHz noise overlaid on the signals (both the purple reference and the blue signal to be measured). That means the comparator is generating a large number of spurious pulses...
I need to filter the two signals, clearly, and I'm pretty sure a basic R/C is enough (besides which that's all I have parts for), but have no idea what values to use. I need to maintain as much of the initial rising edge as possible, while eliminating as much of the 100MHz noise as I can.
My first guess would be R*C = 50MHz, but I'm guessing that's subtly wrong somehow.
Hopefully someone can suggest an easy rule of thumb ASAP, cause I need to get this mostly working again within about 48hrs, before finalizing a major demo... _______________________________________________ dorkbotpdx-blabber mailing list dorkbotpdx-blab...@dorkbot.org http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
I don't want to assume anything, so I am wondering if you have run the signals (before and after moving to the new breadboard) through a spectrum analyzer? It would be potentially revealing to know the frequencies and magnitudes of each in order to think about possible solutions. It might also be revealing as to the source of the noise in the first place. (I generally first try to eliminate or reduce the source before trying to brute-force filter it out).
On Wed, Mar 14, 2012 at 10:46 AM, Erik Walthinsen <om...@omegacs.net> wrote: > First off: me and analog don't get along, so this is is a really simple > question that I *should* know the answer to, but don't...
> I've got a pulse coming in that's *trying* to be a 1uSec square wave, but > is being collapsed (intentionally) by a short circuit. It's being compared > against a reference voltage, and the length of time above that reference is > measured by a chip I've got.
> Here's an example of a series of readings as I *expect* to get:
> Problem is, I moved the circuit to another breadboard, and now I have a > really nasty 100MHz noise overlaid on the signals (both the purple > reference and the blue signal to be measured). That means the comparator > is generating a large number of spurious pulses...
> I need to filter the two signals, clearly, and I'm pretty sure a basic R/C > is enough (besides which that's all I have parts for), but have no idea > what values to use. I need to maintain as much of the initial rising edge > as possible, while eliminating as much of the 100MHz noise as I can.
> My first guess would be R*C = 50MHz, but I'm guessing that's subtly wrong > somehow.
On Mar 14, 2012, at 10:46 AM, Erik Walthinsen wrote:
> Problem is, I moved the circuit to another breadboard, and now I have a really nasty 100MHz noise overlaid on the signals (both the purple reference and the blue signal to be measured). That means the comparator is generating a large number of spurious pulses...
Filtering is fine and all, but if you could address the noise problem, that'd be even better! From the looks of it, you might have some sort of ground bounce. If the high side of your pulse was stable, that noise wouldn't cause a problem (assuming the receiver has any sort of hysteresis). Is there a ground connection that runs close/parallel with the wire that carries the pulse?
More broadly, what device is generating the signal, what sort of wiring is connecting that device and the receiver, and what type of device is the receiver (microcontroller GPIO, I'm guessing)? If you know the impedance of the transmitter and receiver, you might be able to put a series inductor in the signal path and attenuate everything above 10MHz or so, without altering the signal too much. How sensitive is your application to this pulse arriving late, or having the pulse with change (due to filtering)?
Very difficult to comment on this without a schematic...
But if there's a fast voltage comparator chip on that breadboard, I'd first suspect capacitive coupling to one or both of the inputs.
The "easy rule of thumb" for fast comparators is hysteresis. Presumably one of the inputs is a DC voltage? If it's to the positive input pin, just connect a low value resistor between the DC voltage at the positive input pin, and a high value from the output to the positive input pin. Even 100 ohms and 100K will give you a tiny but very useful shift of the DC voltage at the input pin. If the DC voltage is to the negative pin, leave it as-is. The feedback needs to be to the positive pin, so connect it like you would an opamp with inverting gain (except the feedback to the + pin).
I'd also solder a decoupling capacitor right to the power pins on that comparator chip, just in case. Some people go to a lot of trouble to try shielding the inputs with guard traces/rings or other approaches, but you can't do that stuff on a breadboard. But you can easily add a little hysteresis with a couple resistors.
> First off: me and analog don't get along, so this is is a really > simple question that I *should* know the answer to, but don't...
> I've got a pulse coming in that's *trying* to be a 1uSec square wave, > but is being collapsed (intentionally) by a short circuit. It's being > compared against a reference voltage, and the length of time above > that reference is measured by a chip I've got.
> Here's an example of a series of readings as I *expect* to get:
> Problem is, I moved the circuit to another breadboard, and now I have > a really nasty 100MHz noise overlaid on the signals (both the purple > reference and the blue signal to be measured). That means the > comparator is generating a large number of spurious pulses...
> I need to filter the two signals, clearly, and I'm pretty sure a basic > R/C is enough (besides which that's all I have parts for), but have no > idea what values to use. I need to maintain as much of the initial > rising edge as possible, while eliminating as much of the 100MHz noise > as I can.
> My first guess would be R*C = 50MHz, but I'm guessing that's subtly > wrong somehow.
> Hopefully someone can suggest an easy rule of thumb ASAP, cause I need > to get this mostly working again within about 48hrs, before finalizing > a major demo... > _______________________________________________ > dorkbotpdx-blabber mailing list > dorkbotpdx-blab...@dorkbot.org > http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
> First off: me and analog don't get along, so this is is a really > simple question that I *should* know the answer to, but don't...
> I've got a pulse coming in that's *trying* to be a 1uSec square wave, > but is being collapsed (intentionally) by a short circuit. It's being > compared against a reference voltage, and the length of time above > that reference is measured by a chip I've got.
> Here's an example of a series of readings as I *expect* to get:
> Problem is, I moved the circuit to another breadboard, and now I have > a really nasty 100MHz noise overlaid on the signals (both the purple > reference and the blue signal to be measured). That means the > comparator is generating a large number of spurious pulses...
> I need to filter the two signals, clearly, and I'm pretty sure a basic > R/C is enough (besides which that's all I have parts for), but have no > idea what values to use. I need to maintain as much of the initial > rising edge as possible, while eliminating as much of the 100MHz noise > as I can.
> My first guess would be R*C = 50MHz, but I'm guessing that's subtly > wrong somehow.
> Hopefully someone can suggest an easy rule of thumb ASAP, cause I need > to get this mostly working again within about 48hrs, before finalizing > a major demo... > _______________________________________________ > dorkbotpdx-blabber mailing list > dorkbotpdx-blab...@dorkbot.org > http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
> ----- > No virus found in this message. > Checked by AVG - www.avg.com > Version: 2012.0.1913 / Virus Database: 2114/4871 - Release Date: 03/14/12
Yup. You won't be able to use a fast comparator on a white nylon breadboard - all that capacitance is going to get a lot of high frequency oscillations going. If you are feeding your comparator from a relatively high impedance, couple kohms to 50 kohms, the comparator will certainly ring. Put a cap to ground right close to the comparator input - 1nF or so, see how that does.
Also, make sure you have enough bypass caps to feed the comparator - if it's a fast part, it will need a ceramic like .01uF together with a 1uF tantalum close to its supply pins. Not to mention, low impedance connections to a ground plane.
Oh, if you are breadboarding this, a loose wire floating in the wind will have a lot of inductance, and that will also explain the inputs oscillating. Use a piece of scrap copper clad PCB for a ground plane, and use short connections.
> Tell me more about your "breadboard". Analog doesn't always like breadboards.
> How's your impedance matching? You could have some transmission line things going on.
> Others comments apply also.
> On 3/14/2012 10:46 AM, Erik Walthinsen wrote: >> First off: me and analog don't get along, so this is is a really simple question that I *should* know the answer to, but don't...
>> I've got a pulse coming in that's *trying* to be a 1uSec square wave, but is being collapsed (intentionally) by a short circuit. It's being compared against a reference voltage, and the length of time above that reference is measured by a chip I've got.
>> Here's an example of a series of readings as I *expect* to get:
>> Problem is, I moved the circuit to another breadboard, and now I have a really nasty 100MHz noise overlaid on the signals (both the purple reference and the blue signal to be measured). That means the comparator is generating a large number of spurious pulses...
>> I need to filter the two signals, clearly, and I'm pretty sure a basic R/C is enough (besides which that's all I have parts for), but have no idea what values to use. I need to maintain as much of the initial rising edge as possible, while eliminating as much of the 100MHz noise as I can.
>> My first guess would be R*C = 50MHz, but I'm guessing that's subtly wrong somehow.
>> Hopefully someone can suggest an easy rule of thumb ASAP, cause I need to get this mostly working again within about 48hrs, before finalizing a major demo... >> _______________________________________________ >> dorkbotpdx-blabber mailing list >> dorkbotpdx-blab...@dorkbot.org >> http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
>> ----- >> No virus found in this message. >> Checked by AVG - www.avg.com >> Version: 2012.0.1913 / Virus Database: 2114/4871 - Release Date: 03/14/12
Great suggestions, Mark. My only caution would be that getting a cap to ground "close" to the supply pins is very difficult on a breadboard. Maybe solder it to the copper ground plane? Then suspend that directly over the chips with short wires connecting to the grounds.
> Yup. You won't be able to use a fast comparator on a white nylon breadboard - all that capacitance is going to get a lot of high frequency oscillations going. If you are feeding your comparator from a relatively high impedance, couple kohms to 50 kohms, the comparator will certainly ring. Put a cap to ground right close to the comparator input - 1nF or so, see how that does.
> Also, make sure you have enough bypass caps to feed the comparator - if it's a fast part, it will need a ceramic like .01uF together with a 1uF tantalum close to its supply pins. Not to mention, low impedance connections to a ground plane.
> Oh, if you are breadboarding this, a loose wire floating in the wind will have a lot of inductance, and that will also explain the inputs oscillating. Use a piece of scrap copper clad PCB for a ground plane, and use short connections.
> - Mark Medonis
> On Mar 14, 2012, at 6:17 PM, Jim Larson wrote:
>> Tell me more about your "breadboard". Analog doesn't always like breadboards.
>> How's your impedance matching? You could have some transmission line things going on.
>> Others comments apply also.
>> On 3/14/2012 10:46 AM, Erik Walthinsen wrote: >>> First off: me and analog don't get along, so this is is a really simple question that I *should* know the answer to, but don't...
>>> I've got a pulse coming in that's *trying* to be a 1uSec square wave, but is being collapsed (intentionally) by a short circuit. It's being compared against a reference voltage, and the length of time above that reference is measured by a chip I've got.
>>> Here's an example of a series of readings as I *expect* to get:
>>> Problem is, I moved the circuit to another breadboard, and now I have a really nasty 100MHz noise overlaid on the signals (both the purple reference and the blue signal to be measured). That means the comparator is generating a large number of spurious pulses...
>>> I need to filter the two signals, clearly, and I'm pretty sure a basic R/C is enough (besides which that's all I have parts for), but have no idea what values to use. I need to maintain as much of the initial rising edge as possible, while eliminating as much of the 100MHz noise as I can.
>>> My first guess would be R*C = 50MHz, but I'm guessing that's subtly wrong somehow.
>>> Hopefully someone can suggest an easy rule of thumb ASAP, cause I need to get this mostly working again within about 48hrs, before finalizing a major demo... >>> _______________________________________________ >>> dorkbotpdx-blabber mailing list >>> dorkbotpdx-blab...@dorkbot.org >>> http://music.columbia.edu/mailman/listinfo/dorkbotpdx-blabber
>>> ----- >>> No virus found in this message. >>> Checked by AVG - www.avg.com >>> Version: 2012.0.1913 / Virus Database: 2114/4871 - Release Date: 03/14/12