HobbyPCB.com

Built by Hobbyist for Hobbyist!
It is currently Thu Sep 19, 2019 3:11 am

All times are UTC - 5 hours




Post new topic Reply to topic  [ 15 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Oct 03, 2012 1:09 pm 
Offline

Joined: Thu Aug 09, 2012 6:16 pm
Posts: 43
Hey Jim,

I got it fired up and listened to a test signal on 6M and 10M from a nearby transceiver. On ten I have 28.400 MHz showing on the dial at ~28377.99 and on six I have 50.105 showing at ~50.082.9 - did not try 12M as my helper is a Tech.


Rather than make up a solution, I thought I would ask for your input on this.

I used the MFJ269 (I know it bad, but I was following the drift) and peak the IF at 10.7MHz, the 10M LNA at ~28.500, 6M LNA at ~50.100 - I did hear the 25MHz osc at ~24.960 before I peaked the IF cap, now I don't hear it.


https://sites.google.com/site/dsp610constuction/home/firmware

"The PIC18 code hasn't changed for a while. It's got lots of program and data memory so someone with time on their hands could port an electronic keyer in there. The other issue is that it doesn't read the calibration info from the SI570 at start-up. I made hard coded adjustments for the fine frequency tuning, It might be nice to have the PIC read the cal data and make the necessary adjustments or have a setup somewhere that allows the user to fine tune the frequency."

So may I get a pointer on where to make those hard-coded changes in the firmware?


Thanks and 73

Bill
N4BKT


Top
 Profile  
 
PostPosted: Wed Oct 03, 2012 3:26 pm 
Offline

Joined: Thu Aug 09, 2012 6:16 pm
Posts: 43
Just looking at the SI570 datasheet- and the schematic, we have no level shifters on SDA and SCL - while this works to toggle lines low sending to the chip, it doesn't seem it would work for reliably reading the calibration data from the SI570.

Am I right in thinking I'll need to add level shifters to read data from the SI570?


Top
 Profile  
 
PostPosted: Wed Oct 03, 2012 9:58 pm 
Offline

Joined: Mon Jul 23, 2012 6:25 am
Posts: 1143
The PIC might could read the I2C calibration info I think it's threshold is 2V. but I say don't bother, it never changes so you don't need to develop the routines to calculate it, just do what I did. Here are the lines of code from the main.c program:

unsigned long Base_Freq[3] = {2449000, 2799000, 4999000};
unsigned long Base_SI[3] = {0xC5A58626, 0xAAB316FA, 0xB5496B5E};
unsigned long F_Step[3] = {0xD375, 0xB906, 0xB906};

Base_Freq[] is the operating frequency, used for the display.
Base_SI[] is the programming word for the SI570 that corresponds to those frequencies
F_Step[] is the SI570 increment for a 10HZ tuning step

Just change Base_SI and F_Step and get on with the project. Reading the calibration data and recalculating those values based on the data would be tedious. But if anyone want's to do it I'll put it in the baseline code.

73's
Jim WA2EUJ


Top
 Profile  
 
PostPosted: Wed Oct 03, 2012 10:51 pm 
Offline

Joined: Thu Aug 09, 2012 6:16 pm
Posts: 43
Thanks Jim,

I was sure of the BASE_SI needing changing- have not looked close enough at the code to see the F_Step needing change too- should I read at top of band, bottom of band, then add/subtract and divide the difference for the max/min counts? (I'm sure I won't be the last non-programmer to ask this).

Also I found this http://cbjohn.com/aa0zz/PPLL/Article.pdf article on the SI570 which has a novel level converter that fits the HBC budget (two off 04 cent 2N7002-like FETS) - looks like that would be worthy for the new rig design so you could hang other things on the same I2C bus.

This same idea might be worth for the PIC18 osc level converter? I have the 390R there but the osc level is lower on the collector (~2V) than on the base (~3V)- the pic works- but once or twice I found it hung up- not crashed but sort of stuck.

So can you give me just a little more detail on figuring out the calculations empirically?

Cheers.

Bill


Top
 Profile  
 
PostPosted: Thu Oct 04, 2012 8:00 am 
Offline

Joined: Mon Jul 23, 2012 6:25 am
Posts: 1143
Hi Bill,

Here is a spreadsheet that calculates the HEX values for the base and step values. The SI570 uses 38 bit math but fortunately the upper 6 bits stay the same (2) for all LO frequencies so it's hard coded in the I2C routine as are the HS_DIV and N1 values. The Step value is multiplied by 16 for better resolution, then after it's multiplied by the it's accumulated it's shifted 4 bits to the right.

The basic procedure would be set the radio to 49.99 MHz (RIT off) measure the actual LO frequency (in MHz) and then divide the result by 39.29. This will give you a very small number which will be very close to 1. Multiply the 114.20508997 in cell B! of the spreadsheet and this will give you a new Fxtal, put that in B1 and you'll have new numbers for the base and steps.

Remember that the Base is the 32 lower bits (8 hex digits) the upper bits will always be 2.

I hope this all makes sense.

73's
Jim WA2EUJ


Top
 Profile  
 
PostPosted: Thu Oct 04, 2012 8:02 am 
Offline

Joined: Mon Jul 23, 2012 6:25 am
Posts: 1143
OK it won't let me post a .xls file,

I'll put it on the WIKI on a new page called Frequency Ajdustments

Jim.


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 9:25 pm 
Offline

Joined: Thu Aug 09, 2012 6:16 pm
Posts: 43
Hey Jim,

Got the spreadsheet and can see the maths- plugged it in then programmed the chip and found it not making sense.

1. I can only tune as low as 50000.00, not 49990.00
2. the measured frequency on first iteration was 39.3223 MHZ

(39.3223/39.29) * 114.20509 = 114.299

New Base_SI[3]( 0xc559127C, 0xCAA698A7F, 0xB4FEBAE5)
New F_Step[3] (D35E, B8F2, B8F2)

and I'm +10KHz off now at 50100 vs 18 with starting value.

Any suggestion for me? Thanks, Bill


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 11:00 pm 
Offline

Joined: Mon Jul 23, 2012 6:25 am
Posts: 1143
Hi Bill,

The dial only tunes to 50.0000 but RIT will take you down below. Were you -18 now you are +10 or were you +18 now +10? Either way I'd say extrapolate an fine tune until you get it where you need to be. It seems like I had to fiddle with it a bit but once you get it it's dead on. I'm still waiting for a real C programmer to put me to shame and extract the cal data and do it right. I know you are out there!!!

73's
Jim WA2EUJ


Top
 Profile  
 
PostPosted: Fri Oct 05, 2012 11:23 pm 
Offline

Joined: Thu Aug 09, 2012 6:16 pm
Posts: 43
Thanks for the reply Jim,

I was 18kc minus with the as-published default values, now I'm plus 10. kc

Well- I'm no programmer, but I can see from the code it appears it is not possible to tune below 50000 without RIT and 49995 with the RIT slider. Ah- perhaps that is where the 10KC is from?

I suppose I could blank the PIC after letting the SI570 get warmed up, read the default 56.320 MHz actual frequency on the counter, compare to the nominal, and figure from there.


Top
 Profile  
 
PostPosted: Sat Oct 06, 2012 11:04 am 
Offline

Joined: Mon Jul 23, 2012 6:25 am
Posts: 1143
I think the math would look something like this:

You were 18 kHz low now you are 10 kHz high

You were at 114.20509 MHz then you went to 114.299

so a 93.91 kHz change in the reference changed your LO 28 kHz

So try a 60.37 kHz change in the reference (should be linear)

that is to say 114.2654607 in the spreadsheet

New Base_SI[3]( 0xC58E5FA2, 0xAA9CD181, 0xB532CD7A)
New F_Step[3] (D36E, B900, B900)

Jim.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 15 posts ]  Go to page 1, 2  Next

All times are UTC - 5 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group