Skip to content

Commit

Permalink
Better solutiom of prev fixes (reload si5351 settings on sweep begin)
Browse files Browse the repository at this point in the history
  • Loading branch information
DiSlord committed Mar 15, 2020
1 parent 23c765b commit 597c2c2
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
9 changes: 1 addition & 8 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -804,18 +804,11 @@ bool sweep(bool break_on_operation)
// blink LED while scanning
palClearPad(GPIOC, GPIOC_LED);
// Power stabilization after LED off, also align timings on i == 0

// !!!!! Don`t understand why si5351 non stable on band 2 then change from band 3
// It fixed if set before one band 1 frequency
// Possibly problem in gain, call only si5351_set_frequency_with_offset not work
// Also it allow align sweep timings
set_frequency(50000000);
DSP_START(1);DSP_WAIT_READY;
for (i = 0; i < sweep_points; i++) { // 5300
if (frequencies[i] == 0) break;
delay = set_frequency(frequencies[i]); // 700
tlv320aic3204_select(0); // 60 CH0:REFLECT, reset and begin measure
DSP_START(delay); // 1900
DSP_START(delay+((i==0)?1:0)); // 1900
//================================================
// Place some code thats need execute while delay
//================================================
Expand Down
7 changes: 5 additions & 2 deletions si5351.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,13 +380,16 @@ si5351_set_frequency_with_offset(uint32_t freq, uint8_t drive_strength){
int delay = DELAY_NORMAL;
if (freq == current_freq)
return delay;
else if (current_freq > freq) // Reset band on sweep begin (if set range 150-600, fix error then 600 MHz band 2 or 3 go back)
current_band = 0;
current_freq = freq;
uint32_t ofreq = freq + current_offset;
uint32_t mul = 1, omul = 1;
uint32_t rdiv = SI5351_R_DIV_1;
uint32_t fdiv;
// Fix possible uncorrect input
// Fix possible incorrect input
drive_strength&=SI5351_CLK_DRIVE_STRENGTH_MASK;
current_freq = freq;

if (freq >= config.harmonic_freq_threshold * 7U) {
mul = 9;
omul = 11;
Expand Down

0 comments on commit 597c2c2

Please sign in to comment.