Re: [Flexradio] Frequency stability and calibration
At 05:29 PM 11/22/2005, [EMAIL PROTECTED] wrote: Hello Flexers, I did a freq cal four days ago and have checked it everyday since. Here is what I see on my SDR, -1Hz to +2Hz. Also a comment about the Rubidium, Cesium and Crystal oscillators. Oscillators are characterized by short term(phase noise) and long term(drift) freq stability. The phase noise it what concerns us most when it comes to receiving. We want it low enough so that it doesn't swamp weak signals. Ideally it should be 10db below the noise floor of the receiver so as to not reduce sensitivity and hence dynamic range. It is the 'Q' of the resonant component(s) that determine the phase noise. The quartz crystal is still the leader when it comes phase noise. Rubidium and Cesium are superior in time keeping (long term stability), but have awful phase noise. These are the 'real' atomic clocks. The navy is the largest user of these. No GPS under water! Regarding GPS, its timing is based on the Cesium clocks. There ARE actually sources with better close in phase noise than a quartz crystal, just in case you see one at a hamfest or surplus place (or, you're wealthy enough). A hydrogen maser, for instance (that's what we use at work, JPL, when we're concerned about such things.. but then we have an infrastructure to distribute the maser signal around, and a budget for the support staff). A more portable high Q resonator is a sapphire resonator (which is used in some high performance phase noise test sets). Another one is a superconducting cavity resonator (which isn't as impractical as it might seem, with high temperature superconductors(liquid nitrogen temperature). As far as long term stable sources go, there's also things like Mercury Ion traps, which I believe can provide Cs quality long term, but also are high Q so they're good phase noise. However, as John says.. there's lots of really good quality 10 MHz crystal oscillators out there fairly cheap.
Re: [Flexradio] A repeat of an earlier proposal for RF stabilization
At 08:12 PM 11/22/2005, Robert McGwier wrote: We do not want to damage the phase characteristics the 200 Mhz oscillator provides but we want more accuracy and we are willing to pay a few bucks to get it. 1) Pick off the 200 Mhz oscillator, buffer it, whatever and bring it outside the box. 2) Hook into RF oscillator input port on error reporting box. 3) In the error reporting box, we divide the 200 Mhz oscillator by a decent number. 4) This divided signal will be used as the CPU clock for the PIC. Pick the largest number that will allow the PIC to function. 5) The counter pin on the PIC is hooked to your GPS tamed reference, let's say it is 5 or 10 Mhz. 6) The counter does a large counting job on the 10 Mhz reference and you do some small coding magic inside that keeps things added up and behaving. 7) If the 200 Mhz clock were dead on accurate, you should be able to compute exactly how many ticks of the 10 Mhz reference you should see in an interval. You need several intervals to cut down on the quantization error.. 8) The 200 Mhz clock error will cause the tamed, accurate 10 Mhz reference to seem to be different from 10 Mhz in these counts. This error DIRECTLY translates to the error in the 200 Mhz clock and can be reported to the PowerSDR through the USB , Ethernet, or a serial port. This will not take care of the soundcard error but that is also easily calculated by listening to WWV. Or, by dividing that stable 10 MHz down to something your sound card can see directly. That way you don't have that ionospheric path... And, you've already got the PIC there to do the dividing... I and others have shown that (for example) the Delta 44 clock is stable to a very tiny number of parts per million. Its frequency can be off, but it is very stable. These two ideas put together will make your frequency read out very accurate. Both Jim Lux and I have commented on this before. Tom Clark and Rick Hambly have implemented this procedure for frequency locking in applications they have worked on. It works. I think this can be done for under $100 in the U.S. if you are homebrewing.
Re: [Flexradio] Impulse Wave file
C:\sysftp ftp.flex-radio-friend.net Unknown host ftp.flex-radio-friend.net. ftp bye C:\sysftp flex-radio-friend.net Unknown host flex-radio-friend.net. ftp bye What am I doing wrong? I would like to see these. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/22/2005 21:22) We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz
Re: [Flexradio] Impulse Wave file
Richard, Try ftp.flex-radio.friends.net 73, -- Edson, n1vtn richard allen wrote: C:\sysftp ftp.flex-radio-friend.net Unknown host ftp.flex-radio-friend.net. ftp bye C:\sysftp flex-radio-friend.net Unknown host flex-radio-friend.net. ftp bye What am I doing wrong? I would like to see these. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/22/2005 21:22) We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz
Re: [Flexradio] IQ correction, future developments
Jim Just thought I'd lighten it up a bit (smile). Thanks for your contributions to the knowledge base and How To. Happy Thanksgiving all! Eric2 -Original Message- From: Jim Lux [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 1:13 AM To: ecellison; 'Mark Amos'; '[EMAIL PROTECTED] Biz' Subject: Re: [Flexradio] IQ correction, future developments At 07:35 PM 11/22/2005, ecellison wrote: Mark Just remember you should always include some almost abosolute statement in your messages so that Jim Lux can catch you! (smile) You bet... What are amateurs for if not to push the envelope when someone says something like nobody will ever communicate across the ocean with wavelengths shorter than 200m Neat stuff! Eric2
Re: [Flexradio] Impulse Wave file
Richard et al. Go to HTTP://Flex-Radio-Friends.net/ Click on uploads section and enter userename and password there. If you are using Firfox you will need an add in (forgot which one) Eric2 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of richard allen Sent: Wednesday, November 23, 2005 4:03 AM To: Robert McGwier Cc: FlexRadio@flex-radio.biz Subject: Re: [Flexradio] Impulse Wave file C:\sysftp ftp.flex-radio-friend.net Unknown host ftp.flex-radio-friend.net. ftp bye C:\sysftp flex-radio-friend.net Unknown host flex-radio-friend.net. ftp bye What am I doing wrong? I would like to see these. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/22/2005 21:22) We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz
Re: [Flexradio] Impulse Wave file
Edson This should work too. Eric -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Edson Pereira Sent: Wednesday, November 23, 2005 4:27 AM To: FlexRadio@flex-radio.biz Subject: Re: [Flexradio] Impulse Wave file Richard, Try ftp.flex-radio.friends.net 73, -- Edson, n1vtn richard allen wrote: C:\sysftp ftp.flex-radio-friend.net Unknown host ftp.flex-radio-friend.net. ftp bye C:\sysftp flex-radio-friend.net Unknown host flex-radio-friend.net. ftp bye What am I doing wrong? I would like to see these. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/22/2005 21:22) We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz
Re: [Flexradio] frequency calibration etc
Hi Eric - To your earlier post regarding implementing within an FPGA the circuitry Alberto pointed to. Yes, this is easily done. In fact, I'd think you could improve upon the design, too. For example, in the schematic you really don't want the 43K resistor across the 470 uF cap - it, in series with the 15k resistor, will continually discharge the cap, meaning that the VCO control voltage (and thus frequency) will continually vary as the cap discharges and the phase-comparator pumps it back up to regain phase-lock. Ideally, if you're in lock, you would like the control voltage to be an unvarying DC level. Anyway - you could certainly implement all the digital circuitry as well as a '4046-style phase comparator within the fpga and drive an external loop filter, similar to shown in the schematic. Or...you could even attempt loop filtering within the fpga and generate the VCO control voltage a number of ways - drive a dac, for example (similar to Shera's design - which I use here to drive an HP 106B, by the way). But no matter which route is followed, much attention needs to be paid to ground power routing, layout, etc, to ensure that minimal noise is added to the VCO control voltage from external sources. - Jeff, WA6AHL
Re: [Flexradio] Impulse Wave file
Neither of us can type any more ftp ftp.flex-radio.friends.net richard allen wrote: C:\sysftp ftp.flex-radio-friend.net Unknown host ftp.flex-radio-friend.net. ftp bye C:\sysftp flex-radio-friend.net Unknown host flex-radio-friend.net. ftp bye What am I doing wrong? I would like to see these. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/22/2005 21:22) We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] frequency calibration etc
At 05:14 AM 11/23/2005, Jeff Anderson wrote: Hi Eric - To your earlier post regarding implementing within an FPGA the circuitry Alberto pointed to. Yes, this is easily done. In fact, I'd think you could improve upon the design, too. For example, in the schematic you really don't want the 43K resistor across the 470 uF cap - it, in series with the 15k resistor, will continually discharge the cap, meaning that the VCO control voltage (and thus frequency) will continually vary as the cap discharges and the phase-comparator pumps it back up to regain phase-lock. Ideally, if you're in lock, you would like the control voltage to be an unvarying DC level. Turning the first order loop into a second order loop. A first order loop will always have some small phase error, but it will be reasonably constant (frequency dependent, possibly). Anyway - you could certainly implement all the digital circuitry as well as a '4046-style phase comparator within the fpga and drive an external loop filter, similar to shown in the schematic. Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] Or...you could even attempt loop filtering within the fpga and generate the VCO control voltage a number of ways - drive a dac, for example (similar to Shera's design - which I use here to drive an HP 106B, by the way). But no matter which route is followed, much attention needs to be paid to ground power routing, layout, etc, to ensure that minimal noise is added to the VCO control voltage from external sources. Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance from the oscillator, which can be highly isolated from the outside world. - Jeff, WA6AHL Jim, W6RMK
Re: [Flexradio] Impulse Wave file
Like I said, I can no longer type. ftp (or ncftp or http)ftp.flex-radio-friends.net Philip M. Lanese wrote: Bob WS_FTP reports: Finding Host ftp.flex-radio.friends.net ... Address lookup of ftp.flex-radio.friends.net failed. It may be misspelled, or your computer may not be connected to the network or Internet. Phil, K3IB - Original Message - From: Robert McGwier [EMAIL PROTECTED] To: richard allen [EMAIL PROTECTED] Cc: FlexRadio@flex-radio.biz Sent: Wednesday, November 23, 2005 9:25 AM Subject: Re: [Flexradio] Impulse Wave file Neither of us can type any more ftp ftp.flex-radio.friends.net -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] frequency calibration etc
Somewhere, on one of the partitions on one of the drives visible to one of the OSs on one of my computers, I have a complete NCO written in VHDL pretty much ready for dropping into an FPGA (you do the grunge work of assigning ports, etc.). IF I remember correctly (guaranty does not cover memory), an Altera AE found it for me. If anyone wants to try it contact me directly and I will look for it. Phil, K3IB - Original Message - From: Jim Lux [EMAIL PROTECTED] To: Jeff Anderson [EMAIL PROTECTED]; [EMAIL PROTECTED] Biz flexradio@flex-radio.biz Sent: Wednesday, November 23, 2005 10:10 AM Subject: Re: [Flexradio] frequency calibration etc Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern]
Re: [Flexradio] frequency calibration etc
Hi Jim,Jim Lux [EMAIL PROTECTED] wrote: Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] [WA6AHL] :I likeyour idea. But let me see if I understand it...inan app such as, say,a general-purpose way of generating a stable frequency using the Jupiter 1pps as reference, are you saying that the NCO (with an external, stable, oscillator as its clock source) would, in essence,be the digital version of the preiously mentioned VCO? Phase comparison between the NCO's output and the reference1ppsis done within the FPGA and the error used to "steer" the NCO and proved an output that's locked to the ref? Is one ofthe tradeoffs low phase-noise vs. frequency-step "quantization" of the NCO? (E.g. the NCO mightnever be *exactly* on frequency). In an application specific to the SDR1K, per Bob's example, youdon't need the NCO. Instead, feed the error sig back to the SDR1K and let s/w handle frequency correction... Or...you could even attempt loopfiltering within the fpga and generate the VCO control voltage a number ofways - drive a dac, for example (similar to Shera's design - which I usehere to drive an HP 106B, by the way). But no matter which route isfollowed, much attention needs to be paid to ground power routing, layout,etc,to ensure that minimal noise is added to the VCO control voltage fromexternal sources.Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance from the oscillator, which can be highly isolated from the outside world. [WA6AHL] Agreed. Of course, depending upon how sensitive to noise your application is, good layout bypassing techniques still apply even for theNCO technique. Given finite slew-rates of digital signals, ground bounce or supply sag can increase switching-threshold uncertainty, resulting in jitter in the digital domain.Jim Lux [EMAIL PROTECTED] wrote: At 05:14 AM 11/23/2005, Jeff Anderson wrote:Hi Eric -To your earlier post regarding implementing within an FPGA the circuitryAlberto pointed to. Yes, this is easily done. In fact, I'd think you couldimprove upon the design, too. For example, in the schematic you reallydon't want the 43K resistor across the 470 uF cap - it, in series with the15k resistor, will continually discharge the cap, meaning that the VCOcontrol voltage (and thus frequency) will continually vary as the capdischarges and the phase-comparator pumps it back up to regain phase-lock.Ideally, if you're in lock, you would like the control voltage to be anunvarying DC level.Turning the first order loop into a second order loop. A first order loop will always have some small phase error, but it will be reasonably constant (frequency dependent, possibly).Anyway - you could certainly implement all the digital circuitry as well asa '4046-style phase comparator within the fpga and drive an external loopfilter, similar to shown in the schematic.Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] Or...you could even attempt loopfiltering within the fpga and generate the VCO control voltage a number ofways - drive a dac, for example (similar to Shera's design - which I usehere to drive an HP 106B, by the way). But no matter which route isfollowed, much attention needs to be paid to ground power routing, layout,etc,to ensure that minimal noise is added to the VCO control voltage fromexternal sources.Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance from the oscillator, which can be highly isolated from the outside world.- Jeff, WA6AHLJim, W6RMK
Re: [Flexradio] frequency calibration etc
Actually, I would be much more interested in the shell script you use to search all of the machines running different OS's to find the file ;-). I don't know what an AE is unless it means application engineer but be careful about IP ;-) intellectual property issues with these cores. With that taken care of, send it over. I always like looking at how others do their cordic arithmetic in these cores. Bob Philip M. Lanese wrote: Somewhere, on one of the partitions on one of the drives visible to one of the OSs on one of my computers, I have a complete NCO written in VHDL pretty much ready for dropping into an FPGA (you do the grunge work of assigning ports, etc.). IF I remember correctly (guaranty does not cover memory), an Altera AE found it for me. If anyone wants to try it contact me directly and I will look for it. Phil, K3IB - Original Message - From: Jim Lux [EMAIL PROTECTED] To: Jeff Anderson [EMAIL PROTECTED]; [EMAIL PROTECTED] Biz flexradio@flex-radio.biz Sent: Wednesday, November 23, 2005 10:10 AM Subject: Re: [Flexradio] frequency calibration etc Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] frequency calibration etc
I like your idea of keeping the existing low phase noise Oscillator and measure the drift and correct in the software. The whole thing could be quite cheap yet give you good results. Like you mentioned using a small CPU running off a GPS calibrated clock to measure the Oscillator output, multiple readings and average it out. This entails a minimum change to the radio, the software changes would be very small, adding an offset to the frequency of the DDS, a little bit of code to read the calibration offset from the measuring CPU. Basically a Huff and Puff using software to do the actual correction. At 11:04 AM 11/23/2005, you wrote: Hi Jim, Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance from the oscillator, which can be highly isolated from the outside world. - Jeff, WA6AHL Jim, W6RMK ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz Cecil Bayona KD5NWA www.qrpradio.com I fail to see why doing the same thing over and over and getting the same results every time is insanity: I've almost proved it isn't; only a few more tests now and I'm sure results will differ this time ...
Re: [Flexradio] frequency calibration etc
At 09:04 AM 11/23/2005, Jeff Anderson wrote: Hi Jim, Jim Lux [EMAIL PROTECTED] wrote: Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] [WA6AHL] : I like your idea. But let me see if I understand it...in an app such as, say, a general-purpose way of generating a stable frequency using the Jupiter 1pps as reference, are you saying that the NCO (with an external, stable, oscillator as its clock source) would, in essence, be the digital version of the preiously mentioned VCO? Phase comparison between the NCO's output and the reference 1pps is done within the FPGA and the error used to steer the NCO and proved an output that's locked to the ref? Phase comparison between the external clock and the 1pps is used to steer the NCO, but yes, the NCO replaces the VCO. Is one of the tradeoffs low phase-noise vs. frequency-step quantization of the NCO? (E.g. the NCO might never be *exactly* on frequency). Sure.. And there's also the issue of NCO spurs.. Nothing comes for free. In the space application, the nice thing is that it makes it easy to generate one frequency that is coherently locked to another reference. Here's the typical scenario. The deep space network sends a carrier at, say, 7160.000771 MHz to the spacecraft where it is used as a reference to lock an oscillator on the spacecraft. That oscillator is then used to synthesize a return carrier at, say, 8412.283950 MHz, which the ground receives. The ratio between frequencies is something like 880/749, called the turnaround ratio. The ground receiver tracking loop bandwidth might be one Hz or so (hey, we're talking about a 10 Watt transmitter from Pluto or something... you need all the help you can get). If the transponder on the spacecraft is good enough, you can do useful radio science by measuring the changes in the phase of the received signal. For instance, you can do things like measure the density of a planet or moon's atmosphere. Or, because measuring fractions of a cycle in phase is like measuring displacements on the order of centimeters, you can do orbit determination for things a long, long ways away. Historically, all this tracking and synthesizing was done in conventional analog PLL kinds of ways, with a VCXO and chains of multipliers. Naturally, because good, quiet VCXOs have small tuning ranges, you'd have to decide on your frequencies a long time in advance, and get a crystal ground for that, etc. Now, however, you could use a very stable and quiet XO, and track out the difference of the uplink signal against the XO entirely with a digital loop, and synthesize the coherent downlink also with a digital oscillator. The frequency of the underlying XO isn't as important, so you can use the same XO for lots of different missions (or, even, change the channel assignment late in the game). A very quiet XO is useful too, because sometimes, you're not doing coherent turnaround, but just generating the downlink from the internal oscillator. You'd like that downlink signal to be very quiet (so that you can do ranging, for instance, or because you're sending data at 8 bits/second). You'd also like the ability to control the frequency of that downlink without having to physically change the crystal frequency, and an NCO can do that. http://tmo.jpl.nasa.gov/progress_report/42-156/156C.pdf talks a bit about this kind of stuff. In an application specific to the SDR1K, per Bob's example, you don't need the NCO. Instead, feed the error sig back to the SDR1K and let s/w handle frequency correction... Exactly.. James Lux, P.E. Spacecraft Radio Frequency Subsystems Group Flight Communications Systems Section Jet Propulsion Laboratory, Mail Stop 161-213 4800 Oak Grove Drive Pasadena CA 91109 tel: (818)354-2075 fax: (818)393-6875
Re: [Flexradio] frequency calibration etc
Folks I have a stupid question which I should be able to look up. Can an FPGA pin actually accept a 10 mhz or 200 mhz signal so that the LEs could be configured to divide it down? I really do like Bobs example and suggestion. Have 1 10 mhz tcvcxo interfaced to the GPS and stabilized. Divide the 200 mhz signal down to say 10 meg compare the reference sig to the LO and tell the software to correct for variance in the 200 mhz LO. Am I understanding this correctly. (forget whether it is a PIC or FPGA or discrete hardware). I need a block diag to follow all this (smile). Its fun tho! Eric From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Jeff Anderson Sent: Wednesday, November 23, 2005 12:04 PM To: Jim Lux; [EMAIL PROTECTED] Biz Subject: Re: [Flexradio] frequency calibration etc Hi Jim, Jim Lux [EMAIL PROTECTED] wrote: Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] [WA6AHL] :I likeyour idea. But let me see if I understand it...inan app such as, say,a general-purpose way of generating a stable frequency using the Jupiter 1pps as reference, are you saying that the NCO (with an external, stable, oscillator as its clock source) would, in essence,be the digital version of the preiously mentioned VCO? Phase comparison between the NCO's output and the reference1ppsis done within the FPGA and the error used to steer the NCO and proved an output that's locked to the ref? Is one ofthe tradeoffs low phase-noise vs. frequency-step quantization of the NCO? (E.g. the NCO mightnever be *exactly* on frequency). In an application specific to the SDR1K, per Bob's example, youdon't need the NCO. Instead, feed the error sig back to the SDR1K and let s/w handle frequency correction... Or...you could even attempt loop filtering within the fpga and generate the VCO control voltage a number of ways - drive a dac, for example (similar to Shera's design - which I use here to drive an HP 106B, by the way). But no matter which route is followed, much attention needs to be paid to ground power routing, layout, etc, to ensure that minimal noise is added to the VCO control voltage from external sources. Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance from the oscillator, which can be highly isolated from the outside world. [WA6AHL] Agreed. Of course, depending upon how sensitive to noise your application is, good layout bypassing techniques still apply even for theNCO technique. Given finite slew-rates of digital signals, ground bounce or supply sag can increase switching-threshold uncertainty, resulting in jitter in the digital domain. Jim Lux [EMAIL PROTECTED] wrote: At 05:14 AM 11/23/2005, Jeff Anderson wrote: Hi Eric - To your earlier post regarding implementing within an FPGA the circuitry Alberto pointed to. Yes, this is easily done. In fact, I'd think you could improve upon the design, too. For example, in the schematic you really don't want the 43K resistor across the 470 uF cap - it, in series with the 15k resistor, will continually discharge the cap, meaning that the VCO control voltage (and thus frequency) will continually vary as the cap discharges and the phase-comparator pumps it back up to regain phase-lock. Ideally, if you're in lock, you would like the control voltage to be an unvarying DC level. Turning the first order loop into a second order loop. A first order loop will always have some small phase error, but it will be reasonably constant (frequency dependent, possibly). Anyway - you could certainly implement all the digital circuitry as well as a '4046-style phase comparator within the fpga and drive an external loop filter, similar to shown in the schematic. Or, use a fixed oscillator, and run an NCO in the FPGA to create an offset frequency, which you then mix with the fixed oscillator to create your locked output. [This is what we are doing in an experimental deep space transponder.. where phase noise is of obssessive concern] Or...you could even attempt loop filtering within the fpga and generate the VCO control voltage a number of ways - drive a dac, for example (similar to Shera's design - which I use here to drive an HP 106B, by the way). But no matter which route is followed, much attention needs to be paid to ground power routing, layout, etc, to ensure that minimal noise is added to the VCO control voltage from external sources. Which is precisly why I like the idea of measuring the offset and compensating in other ways, rather than steering the oscillator itself. Then, you can work on getting the best possible performance
Re: [Flexradio] frequency calibration etc
Can an FPGA pin actually accept a 10 mhz or 200 mhz signal so that the LE’s could be configured to divide it down? 10 MHz is no problem. 200 MHz! Many FPGAs can handle this frequency, some go faster, many can't go quite this fast. 73, Lyle KK7P
Re: [Flexradio] frequency calibration etc
Lyle Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. Eric2 -Original Message- From: Lyle Johnson [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 5:11 PM To: ecellison Cc: 'Jeff Anderson'; 'Jim Lux'; '[EMAIL PROTECTED] Biz' Subject: Re: [Flexradio] frequency calibration etc Can an FPGA pin actually accept a 10 mhz or 200 mhz signal so that the LE's could be configured to divide it down? 10 MHz is no problem. 200 MHz! Many FPGAs can handle this frequency, some go faster, many can't go quite this fast. 73, Lyle KK7P
Re: [Flexradio] frequency calibration etc
Hello Eric! Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. The EP1C3T100 used in the Xylo board you mentioned earlier is good to 275/320/405 MHz depending on the speed grade of the part. That may be based on an internal PLL rather than an externally applied clock to a pin, I haven't dug that deeply into the data sheet. But the internal logic should have no problem at 200 MHz with careful design. 73, Lyle KK7P
Re: [Flexradio] frequency calibration etc
At 01:56 PM 11/23/2005, you wrote: Folks I have a stupid question which I should be able to look up. Can an FPGA pin actually accept a 10 mhz or 200 mhz signal so that the LEs could be configured to divide it down? Yes.. depends on the FPGA, though, what the maximum clock rate is. Jim 'rmk
Re: [Flexradio] frequency calibration etc
At 02:15 PM 11/23/2005, ecellison wrote: Lyle Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. Eric2 Even better, if you don't want to give up the resolution (dividing by 10 does that) is divide by 10 and run that in one pin. Divide by 11 and run that in another pin. Now you can actually get the full resolution. Jim, 'rmk
Re: [Flexradio] frequency calibration etc
Jim Could we just not divide at all using the 1 pps gate and just use the variance of the last 2 or three digits, and make the assumption that it was accurate 200,000,xxx? I wouldn't think we would want to make any correction in software more frequently than one second. Or perhaps we could store a running average of the last three digits in an accumulator for the comparison against the 'rock'. Eric2 -Original Message- From: Jim Lux [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 5:44 PM To: ecellison Cc: '[EMAIL PROTECTED] Biz' Subject: RE: [Flexradio] frequency calibration etc At 02:15 PM 11/23/2005, ecellison wrote: Lyle Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. Eric2 Even better, if you don't want to give up the resolution (dividing by 10 does that) is divide by 10 and run that in one pin. Divide by 11 and run that in another pin. Now you can actually get the full resolution. Jim, 'rmk
[Flexradio] GPL C program for windows
Folks I could probably search, but is there a C or Visual C compiler for Windows in GPL? Like the SharpDevelop program is for C#? Got my Xylo board up and running and would like to compile some of the samples to get a feel. I would rather not tackle the MS VS products at this point! The SDR is killin the budget this year! Thanks Eric2
Re: [Flexradio] frequency calibration etc
Relatively prime numbers are your friend. Jim Lux wrote: At 02:15 PM 11/23/2005, ecellison wrote: Lyle Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. Eric2 Even better, if you don't want to give up the resolution (dividing by 10 does that) is divide by 10 and run that in one pin. Divide by 11 and run that in another pin. Now you can actually get the full resolution. Jim, 'rmk ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] frequency calibration etc
At 03:52 PM 11/23/2005, ecellison wrote: Jim Could we just not divide at all using the 1 pps gate and just use the variance of the last 2 or three digits, and make the assumption that it was accurate 200,000,xxx? I wouldn't think we would want to make any correction in software more frequently than one second. Or perhaps we could store a running average of the last three digits in an accumulator for the comparison against the 'rock'. Sure.. but the LSBs (which are the ones of interest) are the ones that have to count the fastest, so you still need to have something running at 200 MHz. Jim..
Re: [Flexradio] frequency calibration etc
At 04:09 PM 11/23/2005, Robert McGwier wrote: Relatively prime numbers are your friend. Indeed, but I was thinking that one might be able to adopt an off the shelf dual modulus counter, which typically differ by one count. Actually, there's all kinds of other strategies, too.. you can use the 200 MHz to clock a variety of counters, and pull out various lower rate clocks. Or, a fast counter that has a latch. Ultimately, I guess the real limit is in the setup/hold times in response to the 1pps (if that's what you're using) Jim Lux wrote: At 02:15 PM 11/23/2005, ecellison wrote: Lyle Thanks. Well not too difficult to divide the 200 by 10 externally and perhaps provide buffering for the 200 mhz sig coming out of the SDR. Eric2 Even better, if you don't want to give up the resolution (dividing by 10 does that) is divide by 10 and run that in one pin. Divide by 11 and run that in another pin. Now you can actually get the full resolution. Jim, 'rmk ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged! James Lux, P.E. Spacecraft Radio Frequency Subsystems Group Flight Communications Systems Section Jet Propulsion Laboratory, Mail Stop 161-213 4800 Oak Grove Drive Pasadena CA 91109 tel: (818)354-2075 fax: (818)393-6875
Re: [Flexradio] FW: Impulse Wave file
In our military system tests we acquire 10-20 impulses and sum them in the frequency domain. If the ripple is actually in the system then it will stay in. This was what the generals all wanted. In our seismic stuff, where the geophysicists seem to think it is needed to find oil, we require the 1 dB flatness in the frequency domain plateau of a single impulse. Another possible problem is that the data before and after the impulse must be un-modified by another impulse coming along for at least the time to get thru the last fir filter stage in the sigma- delta converters. This takes 29 samples in our seismic converters. At that point the response should have dropped to zero, of course, but any analog stuff may still be banging about. I usually play it safe and isolate a single impulse in 1024 samples. I did not measured the time between the individual pulses in your data. Impulse respone image is at http://rcallen.com/iqimp.png in case anyone else wants to see it. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/23/2005 18:21) There is enough there to tell me that we should have done the block equalizer a long time ago. I did not know about the ripple and the delay elements they imply. Bob richard allen wrote: One more time. -Original Message- From: richard allen [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 7:36 AM To: 'Robert McGwier' Cc: [EMAIL PROTECTED] Subject: RE: [Flexradio] Impulse Wave file Looks pretty flat. Seismic stuff is spec'ed at 1 db flatness. Analysis of a single of your impulses. I guess you'll need to sum a bunch. Richard -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert McGwier Sent: Tuesday, November 22, 2005 9:23 PM To: [EMAIL PROTECTED] Biz Subject: [Flexradio] Impulse Wave file We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] FW: Impulse Wave file
There should have been 2048 samples between. If there is not, I made a mistake and will do the file again. We definitely need the equalizer. Bob richard allen wrote: In our military system tests we acquire 10-20 impulses and sum them in the frequency domain. If the ripple is actually in the system then it will stay in. This was what the generals all wanted. In our seismic stuff, where the geophysicists seem to think it is needed to find oil, we require the 1 dB flatness in the frequency domain plateau of a single impulse. Another possible problem is that the data before and after the impulse must be un-modified by another impulse coming along for at least the time to get thru the last fir filter stage in the sigma- delta converters. This takes 29 samples in our seismic converters. At that point the response should have dropped to zero, of course, but any analog stuff may still be banging about. I usually play it safe and isolate a single impulse in 1024 samples. I did not measured the time between the individual pulses in your data. Impulse respone image is at http://rcallen.com/iqimp.png in case anyone else wants to see it. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/23/2005 18:21) There is enough there to tell me that we should have done the block equalizer a long time ago. I did not know about the ripple and the delay elements they imply. Bob richard allen wrote: One more time. -Original Message- From: richard allen [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 7:36 AM To: 'Robert McGwier' Cc: [EMAIL PROTECTED] Subject: RE: [Flexradio] Impulse Wave file Looks pretty flat. Seismic stuff is spec'ed at 1 db flatness. Analysis of a single of your impulses. I guess you'll need to sum a bunch. Richard -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert McGwier Sent: Tuesday, November 22, 2005 9:23 PM To: [EMAIL PROTECTED] Biz Subject: [Flexradio] Impulse Wave file We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
[Flexradio] TCVCXO hearts
Folks Would this part be suitable for our rock? Newark has them single quantity for about 16 bux. http://www.cmac.com/mt/news/cfpt-125.html Thanks Happy Turkey! Eric2
Re: [Flexradio] FW: Impulse Wave file
Looks like there is about 50 ms between them. see http://rcallen.com/iqimps.png The sine wave at the end is at 48000/2048 Hz period 42.666 ms Richard Robert McGwier [EMAIL PROTECTED] wrote: (11/23/2005 20:29) There should have been 2048 samples between. If there is not, I made a mistake and will do the file again. We definitely need the equalizer. Bob richard allen wrote: In our military system tests we acquire 10-20 impulses and sum them in the frequency domain. If the ripple is actually in the system then it will stay in. This was what the generals all wanted. In our seismic stuff, where the geophysicists seem to think it is needed to find oil, we require the 1 dB flatness in the frequency domain plateau of a single impulse. Another possible problem is that the data before and after the impulse must be un-modified by another impulse coming along for at least the time to get thru the last fir filter stage in the sigma- delta converters. This takes 29 samples in our seismic converters. At that point the response should have dropped to zero, of course, but any analog stuff may still be banging about. I usually play it safe and isolate a single impulse in 1024 samples. I did not measured the time between the individual pulses in your data. Impulse respone image is at http://rcallen.com/iqimp.png in case anyone else wants to see it. Richard W5SXD Robert McGwier [EMAIL PROTECTED] wrote: (11/23/2005 18:21) There is enough there to tell me that we should have done the block equalizer a long time ago. I did not know about the ripple and the delay elements they imply. Bob richard allen wrote: One more time. -Original Message- From: richard allen [mailto:[EMAIL PROTECTED] Sent: Wednesday, November 23, 2005 7:36 AM To: 'Robert McGwier' Cc: [EMAIL PROTECTED] Subject: RE: [Flexradio] Impulse Wave file Looks pretty flat. Seismic stuff is spec'ed at 1 db flatness. Analysis of a single of your impulses. I guess you'll need to sum a bunch. Richard -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert McGwier Sent: Tuesday, November 22, 2005 9:23 PM To: [EMAIL PROTECTED] Biz Subject: [Flexradio] Impulse Wave file We have an impulse generator on the RFE. And we have (currently hidden) code to generate a train of pulses. I generated several ten long pulse trains with the RFE impulse generator and made a wave file. The large pop at the end of the file is me disengaging the impulse relay. ftp.flex-radio-friend.net u: Friends p: Flex4U cd upload/N4HY get IQ_impulses.wav Bob -- Laziness is the number one inspiration for ingenuity. Guilty as charged! -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] GPL C program for windows
see http://gcc.gnu.org They invented GPL :) Richard W5SXD ecellison [EMAIL PROTECTED] wrote: (11/23/2005 18:09) Folks I could probably search, but is there a C or Visual C compiler for Windows in GPL? Like the SharpDevelop program is for C#? Got my Xylo board up and running and would like to compile some of the samples to get a feel. I would rather not tackle the MS VS products at this point! The SDR is killin' the budget this year! Thanks Eric2
Re: [Flexradio] FW: Impulse Wave file
Yep: private void btnImpulse_Click(object sender, System.EventArgs e) { for(int i=0; i(int)udImpulseNum.Value; i++) { console.hw.Impulse(); Thread.Sleep(45); } } Nothing special or fancy. Fire, wait, fire, wait. richard allen wrote: Looks like there is about 50 ms between them. see http://rcallen.com/iqimps.png The sine wave at the end is at 48000/2048 Hz period 42.666 ms Richard -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] FW: Impulse Wave file
Another thing about the impulse generator in my system at work. The impulse starts 1/3 of the way between sample intervals, and lasts 1/3 sample interval. This guarantees that all of the energy falls between two sampling points. The sample rate is typically 500 or 1000 Hz. However , since the impulse is routed thru the front end low -cuts and preamps which have a certain amount of delay, it is unclear to me what the importance of the centering is. It does of course produce results that are reproducable from one day to the next and may be the result of a bit of specsmanship :) Are you planning on having this generator complete to the point of producing a short .wav file for outside analysis? Richard Robert McGwier [EMAIL PROTECTED] wrote: (11/23/2005 22:31) Yep: private void btnImpulse_Click(object sender, System.EventArgs e) { for(int i=0; i(int)udImpulseNum.Value; i++) { console.hw.Impulse(); Thread.Sleep(45); } } Nothing special or fancy. Fire, wait, fire, wait. richard allen wrote: Looks like there is about 50 ms between them. see http://rcallen.com/iqimps.png The sine wave at the end is at 48000/2048 Hz period 42.666 ms Richard -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] GPL C program for windows
Eric, My earlier reply was probably not too useful. I've not used any free C for windoze but there is one that runs under dos called djgpp. see http://www.delorie.com/djgpp/ http://clio.rice.edu/djgpp/win2k/main.htm talks about a late version that will evidently rununder2000 and xp. Others here that are currently using one will hopefully reply. Richard W5SXD ecellison [EMAIL PROTECTED] wrote: (11/23/2005 18:09) Folks I could probably search, but is there a C or Visual C compiler for Windows in GPL? Like the SharpDevelop program is for C#? Got my Xylo board up and running and would like to compile some of the samples to get a feel. I would rather not tackle the MS VS products at this point! The SDR is killin' the budget this year! Thanks Eric2
Re: [Flexradio] GPL C program for windows
Actually, your reply was very useful. http://www.cygwin.com and http://www.mingw.org both allow the use of Linux, gcc, X, emacs, xemacs, etc. tools on windows. YOU CAN develop fully fleshed out GUI, etc. programs that run on Windows using these environments. Bob richard allen wrote: Eric, My earlier reply was probably not too useful. I've not used any free C for windoze but there is one that runs under dos called djgpp. see http://www.delorie.com/djgpp/ http://clio.rice.edu/djgpp/win2k/main.htm talks about a late version that will evidently rununder2000 and xp. Others here that are currently using one will hopefully reply. Richard W5SXD ecellison [EMAIL PROTECTED] wrote: (11/23/2005 18:09) Folks I could probably search, but is there a C or Visual C compiler for Windows in GPL? Like the SharpDevelop program is for C#? Got my Xylo board up and running and would like to compile some of the samples to get a feel. I would rather not tackle the MS VS products at this point! The SDR is killin' the budget this year! Thanks Eric2 ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged!
Re: [Flexradio] GPL C program for windows
There is also Eclipse; see in particular the CDT. http://www.eclipse.org/ http://www.eclipse.org/cdt/ 73, Dave, AA6YQ -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert McGwier Sent: Thursday, November 24, 2005 0:49 AM To: richard allen Cc: FlexRadio@flex-radio.biz Subject: Re: [Flexradio] GPL C program for windows Actually, your reply was very useful. http://www.cygwin.com and http://www.mingw.org both allow the use of Linux, gcc, X, emacs, xemacs, etc. tools on windows. YOU CAN develop fully fleshed out GUI, etc. programs that run on Windows using these environments. Bob richard allen wrote: Eric, My earlier reply was probably not too useful. I've not used any free C for windoze but there is one that runs under dos called djgpp. see http://www.delorie.com/djgpp/ http://clio.rice.edu/djgpp/win2k/main.htm talks about a late version that will evidently rununder2000 and xp. Others here that are currently using one will hopefully reply. Richard W5SXD ecellison [EMAIL PROTECTED] wrote: (11/23/2005 18:09) Folks I could probably search, but is there a C or Visual C compiler for Windows in GPL? Like the SharpDevelop program is for C#? Got my Xylo board up and running and would like to compile some of the samples to get a feel. I would rather not tackle the MS VS products at this point! The SDR is killin' the budget this year! Thanks Eric2 ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz -- Laziness is the number one inspiration for ingenuity. Guilty as charged! ___ FlexRadio mailing list FlexRadio@flex-radio.biz http://mail.flex-radio.biz/mailman/listinfo/flexradio_flex-radio.biz