master
erikkaashoek 5 years ago
parent 4dfbcca1ed
commit 77da3dd626

@ -225,9 +225,7 @@ uint32_t calc_min_sweep_time_us(void) // Estimate minimum sweep time in
void set_refer_output(int v) void set_refer_output(int v)
{ {
setting.refer = v; setting.refer = v;
#ifdef __SI4432__
set_calibration_freq(setting.refer); set_calibration_freq(setting.refer);
#endif
// dirty = true; // dirty = true;
} }
@ -1070,7 +1068,7 @@ void setupSA(void)
#ifdef __SI4432__ #ifdef __SI4432__
SI4432_Init(); SI4432_Init();
#endif #endif
for (int i = 0; i < sizeof(old_freq)/sizeof(unsigned long) ; i++) { for (unsigned int i = 0; i < sizeof(old_freq)/sizeof(unsigned long) ; i++) {
old_freq[i] = 0; old_freq[i] = 0;
real_old_freq[i] = 0; real_old_freq[i] = 0;
} }
@ -1327,8 +1325,8 @@ void update_rbw(void) // calculate the actual_rbw and the vbwSteps (#
if (setting.spur_removal && actual_rbw_x10 > 3000) if (setting.spur_removal && actual_rbw_x10 > 3000)
actual_rbw_x10 = 2500; // if spur suppression reduce max rbw to fit within BPF actual_rbw_x10 = 2500; // if spur suppression reduce max rbw to fit within BPF
SI4432_Sel = MODE_SELECT(setting.mode); SI4432_Sel = MODE_SELECT(setting.mode);
actual_rbw_x10 = set_rbw(actual_rbw_x10); // see what rbw the SI4432 can realize
#endif #endif
actual_rbw_x10 = set_rbw(actual_rbw_x10); // see what rbw the SI4432 can realize
if (setting.frequency_step > 0 && MODE_INPUT(setting.mode)) { // When doing frequency scanning in input mode if (setting.frequency_step > 0 && MODE_INPUT(setting.mode)) { // When doing frequency scanning in input mode
vbwSteps = ((int)(2 * (setting.vbw_x10 + (actual_rbw_x10/2)) / actual_rbw_x10)); // calculate # steps in between each frequency step due to rbw being less than frequency step vbwSteps = ((int)(2 * (setting.vbw_x10 + (actual_rbw_x10/2)) / actual_rbw_x10)); // calculate # steps in between each frequency step due to rbw being less than frequency step
if (setting.step_delay_mode==SD_PRECISE) // if in Precise scanning if (setting.step_delay_mode==SD_PRECISE) // if in Precise scanning
@ -1482,36 +1480,6 @@ static const int spur_table[] = // Frequencies t
40960000, 40960000,
41600000, 41600000,
49650000, 49650000,
#ifdef IF_AT_4339
780000, // 433.9MHz table
830000,
880000,
949000,
1390000,
1468000,
1830000,
1900000,
2770000,
2840000,
2880000,
4710000,
4780000,
4800000,
4880000,
6510000,
6750000,
6790000,
6860000,
7340000,
8100000,
8200000,
8880000,
// 9970000, 10MHz!!!!!!
10870000,
11420000,
14880000,
16820000,
#endif
}; };
int binary_search(int f) int binary_search(int f)
@ -1779,9 +1747,7 @@ modulation_again:
local_IF = setting.frequency_IF; local_IF = setting.frequency_IF;
} }
if (setting.mode == M_LOW && tracking) { // VERY SPECIAL CASE!!!!! Measure BPF if (setting.mode == M_LOW && tracking) { // VERY SPECIAL CASE!!!!! Measure BPF
#ifdef __SI4432__
set_freq (SI4432_RX , local_IF + lf - reffer_freq[setting.refer]); // Offset so fundamental of reffer is visible set_freq (SI4432_RX , local_IF + lf - reffer_freq[setting.refer]); // Offset so fundamental of reffer is visible
#endif
} else if (MODE_LOW(setting.mode)) { } else if (MODE_LOW(setting.mode)) {
if (setting.mode == M_LOW && !in_selftest && avoid_spur(lf)) { // check if alternate IF is needed to avoid spur. if (setting.mode == M_LOW && !in_selftest && avoid_spur(lf)) { // check if alternate IF is needed to avoid spur.
local_IF = spur_alternate_IF; local_IF = spur_alternate_IF;
@ -3659,7 +3625,7 @@ void self_test(int test)
#endif #endif
setting.step_delay = setting.step_delay * 5 / 4; setting.step_delay = setting.step_delay * 5 / 4;
setting.offset_delay = setting.step_delay / 2; setting.offset_delay = setting.step_delay / 2;
setting.rbw_x10 = force_RBW(j); setting.rbw_x10 = force_rbw(j);
shell_printf("RBW = %f, ",setting.rbw_x10/10.0); shell_printf("RBW = %f, ",setting.rbw_x10/10.0);
#if 0 #if 0

@ -22,6 +22,8 @@
#define __SI4432_H__ #define __SI4432_H__
extern int SI4432_step_delay;
extern int SI4432_offset_delay;
#ifdef __SI4432__ #ifdef __SI4432__
// //
@ -108,8 +110,7 @@
extern volatile int SI4432_Sel; // currently selected SI4432 extern volatile int SI4432_Sel; // currently selected SI4432
extern int SI4432_step_delay;
extern int SI4432_offset_delay;
extern int SI4432_frequency_changed; extern int SI4432_frequency_changed;
extern int SI4432_offset_changed; extern int SI4432_offset_changed;
@ -147,15 +148,15 @@ int SI4432_is_fast_mode(void);
bool PE4302_Write_Byte(unsigned char DATA ); bool PE4302_Write_Byte(unsigned char DATA );
void PE4302_init(void); void PE4302_init(void);
#ifdef __ULTRA_SA__ #ifdef __ADF4351__
extern int ADF4351_LE[]; extern int ADF4351_LE[];
extern int debug; extern int debug;
void ADF4351_Setup(void); void ADF4351_Setup(void);
void ADF4351_WriteRegister32(int channel, const uint32_t value); void ADF4351_WriteRegister32(int channel, const uint32_t value);
void ADF4351_set_frequency(int channel, uint32_t freq, int drive_strength); uint32_t ADF4351_set_frequency(int channel, uint32_t freq, int drive_strength);
void ADF4351_prep_frequency(int channel, uint32_t freq, int drive_strength); uint32_t ADF4351_prep_frequency(int channel, uint32_t freq, int drive_strength);
//int ADF4351_set_frequency_with_offset(uint32_t freq, int offset, uint8_t drive_strength); //int ADF4351_set_frequency_with_offset(uint32_t freq, int offset, uint8_t drive_strength);
void ADF4351_Set(int channel); void ADF4351_Set(int channel);
void ADF4351_enable_output(void); void ADF4351_enable_output(void);

Loading…
Cancel
Save

Powered by TurnKey Linux.