Maker Pro
Maker Pro

Scope attenuators 1,2,5, why bother?

J

Jan Panteltje

ity.

This sounds like a good idea, from the cost viewpoint; a cascade
of three AGC type amplifiers (Gilbert cells) will give
logarithmic gain programmed by a voltage source (8 bit DAC?).
You can use a phantom input channel to feed a calibration
source, to get past the thermal drift, and a sample/hold
circuit to hold the gain constant during an accumulate/calibrate
cycle.

Yes, the idea of insetin ga calibration pulse for example after a trace
and adjusting the amps occurred to me.
Sophisticated.
But for human interface reasons, you want a human-set screen
range that DOESN'T change until the human changes it.

I agree, I never had the intention of 'auto range', sorry
if I was misunderstood that way.
Although the auto-ranging idea _is_ interesting, it would
probably work confusing.
It's
OK to have the internals do some gain-riding with the signal,
but I'd get dizzy watching the screen readjust all the scale values
in realtime.
Agreed.

That little grid overlay on the oscilloscope screen is a GREAT
simplification for lots of uses. I'm not happy thinking I have
to digitize with a cursor instead of just reading it off (no hands!).

Well, the grid can be drawn on the graphics screen, what the size of
a division is, is open for debate.. often I use fine gain or position
to set the signal so it reaches a grid line, as reference.
In such a case the absolute calibration is not important (but for example
a -3dB line could be).
 
R

Rich Grise

Like with all things that is what engineers have become used to. Change
it and you'll hear complaints. After all a foot still has 12 inches,
most currencies go 10-20-50-100, there are 12 months in a year and so
on. Remember when they wanted to change a full circle from 360 to 400
degrees? Nobody bit.

There was never any need: 360 degrees == 400 grads. ;-)

Cheers!
Rich
 
J

Joerg

Jan said:
Yes, the idea of insetin ga calibration pulse for example after a trace
and adjusting the amps occurred to me.
Sophisticated.


I agree, I never had the intention of 'auto range', sorry
if I was misunderstood that way.
Although the auto-ranging idea _is_ interesting, it would
probably work confusing.


Well, the grid can be drawn on the graphics screen, what the size of
a division is, is open for debate.. often I use fine gain or position
to set the signal so it reaches a grid line, as reference.
In such a case the absolute calibration is not important (but for example
a -3dB line could be).

Hey, this is mutating into a serious case of feature creep ;-)

Some days you'll be celebrating your 95th birthday and it still ain't
done. Oh, by the way, any chance to integrate a spectrum analyzer?
 
J

Jan Panteltje

Hey, this is mutating into a serious case of feature creep ;-)

Some days you'll be celebrating your 95th birthday and it still ain't
done. Oh, by the way, any chance to integrate a spectrum analyzer?

95?
dunno if I will be around, and dunno if the world will be around ...
Maybe all is radiactive by then.

As to the spectrum analyser, well, if it was a 'PC scope' it is easy in software
(you have a simple one here) http://panteltje.com/panteltje/xpequ/xpequ.gif

The issue is that in the PIC case I will have to program in ASM (PIC ASM at that),
and the code space is now full :)
That leaves a bigger PIC, or an ARM, or all that + FPGA or FPGA with
processor core.
It is not a hurry project, there is one being done before this,
good, that allows me to work out the hardware in detail.
 
J

Joerg

Jan said:
95?
dunno if I will be around, and dunno if the world will be around ...
Maybe all is radiactive by then.

As to the spectrum analyser, well, if it was a 'PC scope' it is easy in software
(you have a simple one here) http://panteltje.com/panteltje/xpequ/xpequ.gif

The issue is that in the PIC case I will have to program in ASM (PIC ASM at that),
and the code space is now full :)
That leaves a bigger PIC, or an ARM, or all that + FPGA or FPGA with
processor core.
It is not a hurry project, there is one being done before this,
good, that allows me to work out the hardware in detail.


But I don't need it to 16kHz, I need it to 1GHz ...
 
J

Joel Koltner

Jan Panteltje said:
As to the spectrum analyser, well, if it was a 'PC scope' it is easy in
software
(you have a simple one here) http://panteltje.com/panteltje/xpequ/xpequ.gif

I've yet to see any cheap 'PC scopes' that anywhere *near* the dynamic range
of a decent 20-year-old analog spectrum analyzer. Granted, not every problem
needs 100+dB dynamic range, but it sure is nice when you have it. :)

We have one of those spendy Agilent EXA spectrum analyzers with something like
120dB dynamic range with "reasonably small" bandwidths... it's really quite
impressive. The best ADC-based spec an we have is a Tek RSA series unit that
only gets you ~70dB dynamic range, in many typical usage cases... although of
case the fact that it's looking at the entire IF bandwidth at once is pretty
darned cool and lets it do many things a traditional spec an never can.
 
J

Jan Panteltje

But I don't need it to 16kHz, I need it to 1GHz ...

Well, it is going a bit of topic, but anyways,
'heterodyne' no?

The limitation is really this:
with 16k samples / second the max bandwidth you can unravel would
be about 8 kHz.

So we simply mix down your 1GHz with a dual gate MOSFET, a varicap tuned VCO,
to say a few kHz (old TV tuner with some modifications).
IIRC that was an old amateur radio project, spectrum analyser made from TV tuner.

And the mixing saves you a 1G samples / sec ADC, MOSFET costs 50 cents or less.

What doya sink?
 
J

Joerg

Jan said:
Well, it is going a bit of topic, but anyways,
'heterodyne' no?

The limitation is really this:
with 16k samples / second the max bandwidth you can unravel would
be about 8 kHz.

So we simply mix down your 1GHz with a dual gate MOSFET, a varicap tuned VCO,
to say a few kHz (old TV tuner with some modifications).
IIRC that was an old amateur radio project, spectrum analyser made from TV tuner.

I've seen those but TV tuners are IMHO the pits. You'd really need
triple-conversion and much better linearity.

And the mixing saves you a 1G samples / sec ADC, MOSFET costs 50 cents or less.

What doya sink?

Methinks it could be done with some BF998, synthesizer chip and some
filters if it has to be cheap. Something like TV-audio carrier filter ->
455kHz -> 10kHz.
 
J

Joerg

Joel said:
I've yet to see any cheap 'PC scopes' that anywhere *near* the dynamic range
of a decent 20-year-old analog spectrum analyzer. Granted, not every problem
needs 100+dB dynamic range, but it sure is nice when you have it. :)

We have one of those spendy Agilent EXA spectrum analyzers with something like
impressive. The best ADC-based spec an we have is a Tek RSA series unit that
only gets you ~70dB dynamic range, in many typical usage cases... although of
case the fact that it's looking at the entire IF bandwidth at once is pretty
darned cool and lets it do many things a traditional spec an never can.

I've used a R&S portable lately. Nice, but expensive and it did fall off
the cliff a few times since this EMI work had to happen right next to a
busy runway.

The ones that come closest are from Aaronia but they don't make one
that's suitable for pre-compliance work. Then there is a nice
Thurlby-Thandar unit (Newark has it) but it's PDA based and to me that
has a taste of yesteryear.
 
T

Terry Given

Jan said:
Yes, the idea of insetin ga calibration pulse for example after a trace
and adjusting the amps occurred to me.
Sophisticated.




I agree, I never had the intention of 'auto range', sorry
if I was misunderstood that way.
Although the auto-ranging idea _is_ interesting, it would
probably work confusing.

I have used software that does this, and it is way beyond confusing,
more like tantrum-inducing!
Well, the grid can be drawn on the graphics screen, what the size of
a division is, is open for debate.. often I use fine gain or position
to set the signal so it reaches a grid line, as reference.
In such a case the absolute calibration is not important (but for example
a -3dB line could be).

Cheers
Terry
 
R

redbelly

So, while waiting for parts to arrive, I have been diddling sketches on an A4 piece
of paper, on how to design the the minimal cost attenuator, for the PIC scope I am planning.

Now I peaked at one scope I have here, and it has an 11 position switch
10mv, 20 mV, 50 mV, 100 mV, 200mV, 500mV, 11V, 2V, 5V, 10V, 20V

Now that sucks in a way, as counting to 5 is very difficult,
as we all think binary these days ;-)

Think of the 5, 50, etc. as 1/2 (times 10, 100, etc.). Now even you
binary buffs can be happy. :)

Mark
 
K

krw

[email protected]>, sci.electronics.design,
[email protected] says...
Think of the 5, 50, etc. as 1/2 (times 10, 100, etc.). Now even you
binary buffs can be happy. :)

Yep, but forget binary. 2, 5 (because it's half of 10), and 10 are
easy to multiply without using a calculator, something kids likely
can't get "their head around".
 
T

Tim Williams

krw said:
Yep, but forget binary. 2, 5 (because it's half of 10), and 10 are
easy to multiply without using a calculator, something kids likely
can't get "their head around".

Aww come on, 0.00101 * 1.01 = 0.0011001. What could be easier? ;-)

Tim
 
K

krw

sci.electronics.design said:
Aww come on, 0.00101 * 1.01 = 0.0011001. What could be easier? ;-)
Grrr! I still can't find a binary calculator that knows what a
binary point is or where to put one.
 
D

David L. Jones

You could make the attenuator steps user programmable through some setup
menu.

BTW, why torture yourself with a PIC, when you can get a cheap LPCxxxx
ARM that can be programmed in C ?

The PIC can be programmed in C quite easily too, didn't you know?
Only masochists write entire programs in assembler these days.

Dave.
 
R

redbelly

[email protected]>, sci.electronics.design,
[email protected] says...



Yep, but forget binary. 2, 5 (because it's half of 10), and 10 are
easy to multiply without using a calculator, something kids likely
can't get "their head around".

You'll get no argument from me. And multiplying & dividing by 3 is
not that much harder. Most multiplications (in the head) then become
some combination of operations with 2, 3 and 10. It might take a few
steps but definitely doable.

Mark
 
R

Rich Webb

krw said:
Grrr! I still can't find a binary calculator that knows what a
binary point is or where to put one.

EasyCalc for PalmOS handles arguments and results with a radix
point for bin, octal, and hex. One small infelicity is that to
enter a radix point while in "base" mode you need to switch
to the standard keypad and then back.

It's GPL, available at http://easycalc.sourceforge.net
 
T

Tim Williams

--
Deep Fryer: A very philosophical monk.
Website @ http://webpages.charter.net/dawill/tmoranwms
krw said:
Grrr! I still can't find a binary calculator that knows what a
binary point is or where to put one.

On a similar subject, I wanted to know what numbers look like in weird
bases like base 5 or base pi, so I wrote this:

-=-=-

DECLARE FUNCTION Character$ (Value%)

CONST Pi# = 3.141592653589793#
CONST e# = 2.718281828459045#

' Obtain inputs
INPUT "Enter number to convert: ", Number#
BadBase:
INPUT "Enter base to convert from decimal to (enter Pi or e for the
constants, or sqr to enter a root): ", BaseString$
BaseString$ = UCASE$(BaseString$)
IF BaseString$ = "PI" THEN
BaseNumber# = Pi#
ELSEIF BaseString$ = "E" THEN
BaseNumber# = e#
ELSEIF BaseString$ = "SQR" THEN
INPUT "Enter number to take the square root of: ", Root#
BaseNumber# = SQR(ABS(Root#)) 'Neener, no imaginary base for you.
ELSE
BaseNumber# = VAL(BaseString$)
END IF
IF BaseNumber# <= 1 THEN PRINT "Base must be greater than 1.": GOTO BadBase
IF BaseNumber# >= 62 THEN PRINT "Base must be lesser than or equal to 62.":
GOTO BadBase

' Find the largest power in the input
LargestPower% = FIX(LOG(Number#) / LOG(BaseNumber#))
IF Number# < 1 THEN LargestPower% = LargestPower% - 1

' Double precision is only 16 digits, so it makes sense to carry this
' to only as many decimals, plus room for an exponent.
DIM Result AS STRING * 30
FOR i% = 0 TO 15
' Pare down the input iteratively, counting the multiple each time
' and appending (or insert) it to the output string.
TestPower# = BaseNumber# ^ (LargestPower% - i%)
j% = 0
WHILE Number# - TestPower# >= 0
Number# = Number# - TestPower#
j% = j% + 1
WEND
IF i% = 0 THEN
' Set the decimal point in scientific notation.
MID$(Result, i% + 1, 2) = Character$(j%) + "."
ELSE
MID$(Result, i% + 2, 1) = Character$(j%)
END IF
NEXT
IF Decimal = 0 THEN MID$(Result, i% + 1) = "E" +
LTRIM$(RTRIM$(STR$(LargestPower%)))
PRINT Result

' Returns an ASCII character corresponding to Value.
' 0 through 9: as usual.
' 10 through 35: capital letters (the first five, having values 10, 11,
' 12, 13, 14 and 15 come through as A, B, C, D, E and F for hexadecimal;
' the rest of the alphabet follows similarly).
' 36 through 61: running out of choices, so going with lower case
letters.
' I don't know of any standard numerals for values this large.
FUNCTION Character$ (Value%)
SELECT CASE Value%
CASE 0 TO 9
Character$ = LTRIM$(RTRIM$(STR$(Value%)))
CASE 10 TO 35
' Capital letters, starting at index 65 (10 + 55)
Character$ = CHR$(Value% + 55)
CASE 36 TO 61
' Lowercase letters, starting at index 97 (36 + 61)
Character$ = CHR$(Value% + 61)
CASE ELSE
' Should never come up, but just in case.
Character$ = CHR$(32)
END SELECT
END FUNCTION

-=-=-

Probably quite slow (precision exponents? eww...), but it's not much and
probably completes in a fraction of a milisecond, so who cares.

Come to think of it, the real datatypes are binary, so you could also print
the first 48 (IIRC) bits of the DOUBLE to get its representation in binary,
plus whatever exponent in the following word.

Tim
 
K

krw

EasyCalc for PalmOS handles arguments and results with a radix
point for bin, octal, and hex. One small infelicity is that to
enter a radix point while in "base" mode you need to switch
to the standard keypad and then back.

It's GPL, available at http://easycalc.sourceforge.net
Thanks. Hmm, looks nice but it's algebraic. Ouch. Were it RPN
I'd buy something Palm to go with it. As is, I'll have to think
hard. My other option was to learn how to write an Excel function.
The drawback there is that I don't have an Excel license (that
still works, anyway) and OO Calc is too different.
 
Top