Recent Posts

Pages: [1] 2 3 4 5 6 ... 10 Next
1
However, in general, I can say that typical opamps used for low-frequency applications, which are the common use cases for wien oscillators, are for example LT1632, LT1013, LT1001"

But you didn't say anything about what frequency you are interested in, at all. It could be 1 Hz, 10 Hz, 100 Hz, 1 kHz, 10 kHz, 100 kHz, 1 MHz, 10 MHz, ...

You see the problem? Apparently that is still a secret.

Also you did not way what amplitude you might be interested in? 1 mV, 10 mV, 100 mV, 1 V, ... ?

And the drive current also matters. An oscillator might perform perfectly until you put a load on it, and then it might stop working.
2
it should works with mono with no issue. Just add "mono" before command and provide proper name of serial port.
It fails:

Code: [Select]
$ mono PSG9080_ARB.exe /dev/ttyUSB2 -write 1 wave01.txt
Model: PSG9060
S/N:   2120000599

Unhandled Exception:
System.FormatException: Input string was not in a correct format.
  at System.Number.ThrowOverflowOrFormatException (System.Boolean overflow, System.String overflowResourceKey) [0x00020] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at System.Number.ParseInt32 (System.ReadOnlySpan`1[T] value, System.Globalization.NumberStyles styles, System.Globalization.NumberFormatInfo info) [0x0001c] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at System.Int32.Parse (System.String s) [0x00019] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at PSG9080_ARB.Program.<Ping>b__1 (System.String arg) [0x00000] in <7b815a05ddf649df8e86d22be6a0dad7>:0
  at System.Linq.Utilities+<CombineSelectors>c__AnonStorey1`3[TSource,TMiddle,TResult].<>m__0 (TSource x) [0x00012] in <d22af090bceb4be792f53595cf074724>:0
  at System.Linq.Enumerable+SelectArrayIterator`2[TSource,TResult].ToArray () [0x00015] in <d22af090bceb4be792f53595cf074724>:0
  at System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x00021] in <d22af090bceb4be792f53595cf074724>:0
  at PSG9080_ARB.Program.Ping (PSG9080_ARB.PSG9080 psg) [0x00097] in <7b815a05ddf649df8e86d22be6a0dad7>:0
  at PSG9080_ARB.Program.Main (System.String[] args) [0x000c3] in <7b815a05ddf649df8e86d22be6a0dad7>:0

It opens the port successfully, then makes a bunch of ioctl calls:

Code: [Select]
openat(AT_FDCWD, "/dev/ttyUSB2", O_RDWR|O_NOCTTY|O_NONBLOCK) = 3
ioctl(3, TCGETS, {c_iflag=IGNBRK, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|, c_cflag=B115200|CS8|CREAD|HUPCL|CLOCAL, c_lflag=, ...}) = 0
ioctl(3, TCGETS, {c_iflag=IGNBRK, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|, c_cflag=B115200|CS8|CREAD|HUPCL|CLOCAL, c_lflag=, ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {c_iflag=IGNBRK, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|, c_cflag=B115200|CS8|CREAD|HUPCL|CLOCAL, c_lflag=, ...}) = 0
ioctl(3, TCGETS, {c_iflag=IGNBRK, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|, c_cflag=B115200|CS8|CREAD|HUPCL|CLOCAL, c_lflag=, ...}) = 0
ioctl(3, TIOCMGET, [TIOCM_DTR|TIOCM_RTS]) = 0
ioctl(3, TIOCMSET, [TIOCM_RTS])         = 0
ioctl(3, TIOCMGET, [TIOCM_RTS])         = 0
ioctl(3, TIOCMSET, [0])                 = 0


Then it writes a command and reads some info back, byte by byte (I'm omitting the poll() calls for readability):

Code: [Select]
write(3, ":r00=90.\r\n", 10)            = 10
read(3, ":", 1)                         = 1
read(3, "r", 1)                         = 1
read(3, "0", 1)                         = 1
read(3, "0", 1)                         = 1
read(3, "=", 1)                         = 1
read(3, "6", 1)                         = 1
read(3, "0", 1)                         = 1
read(3, ".", 1)                         = 1
read(3, "\r", 1)                        = 1
read(3, "\n", 1)                        = 1
.... more bytes skipped


Eventually it finishes reading everything, prints the decoded model and serial number and closes the port file descriptor, then immediately throws the exception:

Code: [Select]
...
read(3, ":", 1)                         = 1
read(3, "r", 1)                         = 1
read(3, "9", 1)                         = 1
read(3, "0", 1)                         = 1
read(3, "=", 1)                         = 1
read(3, "0", 1)                         = 1
read(3, ".", 1)                         = 1
read(3, "\r", 1)                        = 1
read(3, "\n", 1)                        = 1
...
write(1, "Model: PSG9060\n", 15Model: PSG9060
)        = 15
write(1, "S/N:   2120000599\n", 18S/N:   2120000599
)     = 18
close(3)                                = 0

write(2, "\nUnhandled Exception:\nSystem.For"..., 1296
Unhandled Exception:
System.FormatException: Input string was not in a correct format.
  at System.Number.ThrowOverflowOrFormatException (System.Boolean overflow, System.String overflowResourceKey) [0x00020] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
...


It never tries to open the wave01.txt file and the error stays the same even if I give it an invalid file name. Control never reaches there.

I believe it doesn't like something in the generator's output and fails after/during parsing it.


Here's what I'm getting from the signal generator in response to the ":r00=90." command when I talk to the port directly:

Code: [Select]
:r00=60.
:r01=2120000599.
:r02=28.
:r03=31999.
:r04=2086.
:r05=1036.
:r06=90.
:r07=1714.
:r08=1724.
:r09=1723.
:r10=2874.
:r11=2051.
:r12=1053.
:r13=81.
:r14=1726.
:r15=1734.
:r16=1732.
:r17=2868.
:r18=1850.
:r19=0.
:r20=1,0.
:r21=1.
:r22=0.
:r23=100000,0.
:r24=1000000,0.
:r25=3300.
:r26=5000.
:r27=1165.
:r28=1000.
:r29=1.
:r30=500.
:r31=0.
:r32=0,0,0,0.
:r33=0.
:r34=0.
:r35=0.
:r36=0.
:r37=100.
:r38=0.
:r39=0.
:r40=100000.
:r41=1000000.
:r42=100.
:r43=0.
:r44=0.
:r45=1000,0.
:r46=10000,0.
:r47=100.
:r48=500.
:r49=5.
:r50=0.
:r51=0.
:r52=0.
:r53=12.
:r54=0.
:r55=0,0,0,0,0.
:r56=15.
:r57=0.
:r58=0.
:r59=0.
:r60=0.
:r61=0.
:r62=0.
:r63=0.
:r64=0.
:r65=0.
:r66=0.
:r67=0.
:r68=0.
:r69=0.
:r70=0.
:r71=0.
:r72=0.
:r73=0.
:r74=0.
:r75=0.
:r76=0.
:r77=0.
:r78=0.
:r79=0.
:r80=0.
:r81=0.
:r82=0.
:r83=0.
:r84=0.
:r85=0.
:r86=0.
:r87=0.
:r88=0.
:r89=0.
:r90=0.


Hope this helps. Maybe you can use this output to fix/add support for the JDS2800.
3
Repair / Re: Keithley 2700 schematic diagrams
« Last post by SanderMTI on Today at 06:49:35 pm »
Gentlemen,

I too was looking for schematics for a 2700 for the purpose of adding a trigger output which I can use to trigger my other meters.
I also have a 2000, so now I have them for that model.
Thank you.

On the subject of remote reading/ control:
I use a Prologix USB-GPIB adapter with  EZGPIB and the Datalogger program I wrote for it
No drivers or complicated stuff needed to talk to GPIB and RS232 meters from the same software, output is a .CSV file.
PM me if interested, I'll send you a copy.

Sander

4
For angles that need to wrap, I'd suggest, instead of degrees, use 65536/360 deg (~ 0.005deg) as your base unit. (Or 2^32/360 if you need more resolution, or 256/360 if that suffices!). This way, wrap around always Just Works implicitly - and efficiently, in CPU registers directly (either with zero cost, or in worst case, requiring a single instruction to mask out bits):

uint16_t angle = ...;
uint16_t angle_plus_90deg = angle + 16384; // implicit correct wrapping guaranteed by C standard
...

You can further just choose to cast into signed type (int16_t) to interpret the angle between -180 .. +180 deg.

it even has a name, https://en.wikipedia.org/wiki/Binary_angular_measurement

5
Hello XVR, I saw in the datasheet tacle attached  that  its 4A is continues 25A when pulsed  .
What are the pulse limitation  for this N MOSFET because 25A is very high?

https://www.mouser.com/datasheet/2/308/1/NDT3055L_D-2317585.pdf
Thanks.
6
Quote
Wait, so the PY32 support of openOCD is built into the executable? I didn't know that... I thought that if you download the official Linux version and add the *.cfg files to it from the gitee archive it'll work.

That's right. You need the configs, but they just specify which functions to use. The functions themselves are in the binary.
7
Hi Dave, my 1204X-HD has microphonic inputs.
2149891-0
8
Projects, Designs, and Technical Stuff / Re: Opamps - Die pictures
« Last post by David Hess on Today at 06:44:16 pm »
It's probably same thing as with MCP6024: two dual dice can be installed together to realize a quad. The top die gets its V+ in bottom left and V- in bottom right. The bottom die is rotated 180° so its supply connections are swapped.

When I designed my super low noise DC differential amplifier, I deliberately used the LTC1151 dual because separate chopper stabilized amplifiers would run at slightly different frequencies creating the potential for beat frequencies.  Two separate dies are unlikely for this reason unless the clocks can be synchronized.  Some of the older single chopper-stabilized parts have a clock pin which can be used for synchronization to avoid this problem.

They describe it as "chopper stabilized" in the datasheet. If you think about it, the part S1, gm1, gm2, S2 is a chopper amplifier: S1 chops the differential input voltage into a square wave, the linear transistors amplify the square wave, and S2 demodulates it back into DC by sampling the peaks. To avoid differential subtraction of peaks and valleys at this point, gm3 works as a DC servo of sorts and ensures that the valleys are fixed near some internal "ground" potential.

The output of the chopper feeds gm4 and gm5, which provide additional gain. And the whole chopper is bypassed at frequencies near the chopping frequency and above in order to reduce aliasing artifacts and achieve GBW much higher than the chopping frequency.

Of course the "auto zero" explanation about gm3 canceling gm1 offset voltage and a bunch of sample-and-hold circuits making it all work is valid too. I'm not sure what the difference between "chopper stabilized" and "auto zero" is supposed to be, and if there is any real difference at all. Maybe it's only marketing talk.

I have read some articles and it seems that (today) it is common sense that "Auto Zero" is used for sampling circuits which meassure the offset and subtract it from the amplified signal. "Chopper" is used for for circuits that modulate and demodulate the signal and so loose the offset on the way. But the naming is mixed up a lot...  :-\
You are right, the sampling circuit is somehow a modulation too but in my view it´s a lot more a sampling thing.

"Stabilized" (chopper or auto-zero) means that there is a high frequency path parallel (at least that is what the articles said I have read).

I gave up trying to figure out the difference between auto-zero and chopper-stabilized.  Descriptions from different manufacturers use different terms and contradict each other.

I think Linear Technology gave the best description for their chopper-stabilized parts.  The zeroing amplifier measures and corrects its own offset, and then measures and corrects the offset of the main amplifier.  One of the claimed features of their early parts is that they could be used in inverting or non-inverting mode, which I suspect was in response to true chopper amplifiers which could only be used in inverting mode.

9
   Where were the cables made?   Undersizing of wire and cables made in China has been widely reported on this and other sites.   A lot of the wire is also reported to be made some kind of junk alloy that isn't solderable.  I've learned to not trust the ratings of anything made in China.

I dont know, and the vendor wont tell me of course.

Only 2 of them were amazon and ebay (not chinese - and seemingls reputable ones), but the other had their own websites and did not have bad ratings. I think they are not aware of it either. One of them got quite furious, as he strongly insisted it was 6mm2 even though i told him two measurement methods showed otherwise (This one sold photovoltaik stuff).

Still my question is unanswered:
Have you ever checked on the cross section?
10
Test Equipment / Re: Siglent SSA 3021X... Ooops
« Last post by Joel_l on Today at 06:30:55 pm »
Mine is a little different than that, I have 4 more diodes where the signal enters the first switch.

So I think I found two things going on, one really muddied the other. Looks like my attenuator is bad and is causing the high SWR on my TX. This does not explain the initial high SWR with my antenna analyzer, I did not use my attenuator with that.

I went back and looked with my signal generator again. I fed a -20dBm signal in and went through the SA attenuator settings. The reading never changed from -20dBm only the noise floor moved up and down, the SA always measured -20dBm.

Those switches are not very expensive. I think I will just replace those. I hope the programable attenuator at the end is OK, not as easy to find.
Pages: [1] 2 3 4 5 6 ... 10 Next