From e2e030aed4434056f6b37b20bd36bb5363f4c4ef Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 3 Nov 2023 18:41:54 +0000 Subject: [PATCH] fix tx tones --- Makefile | 2 +- am_fix.c | 771 ++++++++++++++++++++++---------------------- am_fix.h | 18 +- app/app.c | 12 +- app/main.c | 24 +- audio.c | 2 +- driver/bk4819.c | 57 ++-- driver/bk4819.h | 2 +- firmware.bin | Bin 61056 -> 61068 bytes firmware.packed.bin | Bin 61074 -> 61086 bytes freq_ignore.c | 2 +- functions.c | 2 +- misc.c | 4 +- misc.h | 6 +- ui/main.c | 26 +- ui/main.h | 2 +- 16 files changed, 470 insertions(+), 460 deletions(-) diff --git a/Makefile b/Makefile index b9fd339..acd7ab9 100644 --- a/Makefile +++ b/Makefile @@ -57,7 +57,7 @@ ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 ENABLE_CONTRAST := 0 ENABLE_BOOT_BEEPS := 0 ENABLE_DTMF_CALL_FLASH_LIGHT := 1 -ENABLE_FLASH_LIGHT_SOS_TONE := 0 +ENABLE_FLASH_LIGHT_SOS_TONE := 1 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 1 ENABLE_FREQ_SEARCH_TIMEOUT := 0 diff --git a/am_fix.c b/am_fix.c index 3969bda..6b68196 100644 --- a/am_fix.c +++ b/am_fix.c @@ -28,436 +28,441 @@ #include "functions.h" #include "misc.h" -#ifdef ENABLE_AM_FIX +//#define SET_RSSI_COMP - typedef struct - { - uint16_t reg_val; - int8_t gain_dB; - } __attribute__((packed)) t_gain_table; +typedef struct +{ + uint16_t reg_val; + int8_t gain_dB; +} __attribute__((packed)) t_gain_table; - // REG_10 AGC gain table - // - // <15:10> ??? - // - // <9:8> = LNA Gain Short - // 3 = 0dB < original value - // 2 = -24dB // was -11 - // 1 = -30dB // was -16 - // 0 = -33dB // was -19 - // - // <7:5> = LNA Gain - // 7 = 0dB - // 6 = -2dB - // 5 = -4dB < original value - // 4 = -6dB - // 3 = -9dB - // 2 = -14dB - // 1 = -19dB - // 0 = -24dB - // - // <4:3> = MIXER Gain - // 3 = 0dB < original value - // 2 = -3dB - // 1 = -6dB - // 0 = -8dB - // - // <2:0> = PGA Gain - // 7 = 0dB - // 6 = -3dB < original value - // 5 = -6dB - // 4 = -9dB - // 3 = -15dB - // 2 = -21dB - // 1 = -27dB - // 0 = -33dB +// REG_10 AGC gain table +// +// <15:10> ??? +// +// <9:8> = LNA Gain Short +// 3 = 0dB < original value +// 2 = -24dB // was -11 +// 1 = -30dB // was -16 +// 0 = -33dB // was -19 +// +// <7:5> = LNA Gain +// 7 = 0dB +// 6 = -2dB +// 5 = -4dB < original value +// 4 = -6dB +// 3 = -9dB +// 2 = -14dB +// 1 = -19dB +// 0 = -24dB +// +// <4:3> = MIXER Gain +// 3 = 0dB < original value +// 2 = -3dB +// 1 = -6dB +// 0 = -8dB +// +// <2:0> = PGA Gain +// 7 = 0dB +// 6 = -3dB < original value +// 5 = -6dB +// 4 = -9dB +// 3 = -15dB +// 2 = -21dB +// 1 = -27dB +// 0 = -33dB - // front end register dB values - // - // these values need to be accurate for the code to properly/reliably switch - // between table entries when adjusting the front end registers. - // - // these 4 tables need a measuring/calibration update - // - // - // QUESTION: why do I have to surround the negative numbers in brackets ??? - // if I don't add the brackets, reading the table returns unexpected/different values !!! - // - // +// front end register dB values +// +// these values need to be accurate for the code to properly/reliably switch +// between table entries when adjusting the front end registers. +// +// these 4 tables need a measuring/calibration update +// +// +// QUESTION: why do I have to surround the negative numbers in brackets ??? +// if I don't add the brackets, reading the table returns unexpected/different values !!! +// +// //// static const int16_t lnas_dB[] = { -19, -16, -11, 0}; // was (but wrong) // static const int16_t lnas_dB[] = { (-33), (-30), (-24), 0}; // corrected'ish // static const int16_t lna_dB[] = { (-24), (-19), (-14), ( -9), (-6), (-4), (-2), 0}; // static const int16_t mixer_dB[] = { ( -8), ( -6), ( -3), 0}; // static const int16_t pga_dB[] = { (-33), (-27), (-21), (-15), (-9), (-6), (-3), 0}; - // lookup table is hugely easier than writing code to do the same - // - static const t_gain_table gain_table[] = - { - {0x03BE, -7}, // 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original +// lookup table is hugely easier than writing code to do the same +// +static const t_gain_table gain_table[] = +{ + {0x03BE, -7}, // 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original #ifdef ENABLE_AM_FIX_TEST1 - // test table that lets me manually set the lna-short register - // to measure it's actual dB change using an RF signal generator + // test table that lets me manually set the lna-short register + // to measure it's actual dB change using an RF signal generator - {0x005E, -50}, // 1 .. 0 2 3 6 .. -33dB -14dB 0dB -3dB .. -50dB - {0x015E, -47}, // 2 .. 1 2 3 6 .. -30dB -14dB 0dB -3dB .. -47dB - {0x025E, -41}, // 3 .. 2 2 3 6 .. -24dB -14dB 0dB -3dB .. -41dB - {0x035E, -17} // 4 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB original - }; + {0x005E, -50}, // 1 .. 0 2 3 6 .. -33dB -14dB 0dB -3dB .. -50dB + {0x015E, -47}, // 2 .. 1 2 3 6 .. -30dB -14dB 0dB -3dB .. -47dB + {0x025E, -41}, // 3 .. 2 2 3 6 .. -24dB -14dB 0dB -3dB .. -41dB + {0x035E, -17} // 4 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB original +}; - static const unsigned int original_index = 1; +static const unsigned int original_index = 1; #else - {0x0000, -98}, // 1 .. 0 0 0 0 .. -33dB -24dB -8dB -33dB .. -98dB - {0x0008, -96}, // 2 .. 0 0 1 0 .. -33dB -24dB -6dB -33dB .. -96dB - {0x0100, -95}, // 3 .. 1 0 0 0 .. -30dB -24dB -8dB -33dB .. -95dB - {0x0020, -93}, // 4 .. 0 1 0 0 .. -33dB -19dB -8dB -33dB .. -93dB - {0x0001, -92}, // 5 .. 0 0 0 1 .. -33dB -24dB -8dB -27dB .. -92dB - {0x0028, -91}, // 6 .. 0 1 1 0 .. -33dB -19dB -6dB -33dB .. -91dB - {0x0009, -90}, // 7 .. 0 0 1 1 .. -33dB -24dB -6dB -27dB .. -90dB - {0x0101, -89}, // 8 .. 1 0 0 1 .. -30dB -24dB -8dB -27dB .. -89dB - {0x0030, -88}, // 9 .. 0 1 2 0 .. -33dB -19dB -3dB -33dB .. -88dB - {0x0118, -87}, // 10 .. 1 0 3 0 .. -30dB -24dB 0dB -33dB .. -87dB - {0x0002, -86}, // 11 .. 0 0 0 2 .. -33dB -24dB -8dB -21dB .. -86dB - {0x0130, -85}, // 12 .. 1 1 2 0 .. -30dB -19dB -3dB -33dB .. -85dB - {0x0019, -84}, // 13 .. 0 0 3 1 .. -33dB -24dB 0dB -27dB .. -84dB - {0x0060, -83}, // 14 .. 0 3 0 0 .. -33dB -9dB -8dB -33dB .. -83dB - {0x0138, -82}, // 15 .. 1 1 3 0 .. -30dB -19dB 0dB -33dB .. -82dB - {0x0119, -81}, // 16 .. 1 0 3 1 .. -30dB -24dB 0dB -27dB .. -81dB - {0x0058, -80}, // 17 .. 0 2 3 0 .. -33dB -14dB 0dB -33dB .. -80dB - {0x0141, -79}, // 18 .. 1 2 0 1 .. -30dB -14dB -8dB -27dB .. -79dB - {0x0070, -78}, // 19 .. 0 3 2 0 .. -33dB -9dB -3dB -33dB .. -78dB - {0x0180, -77}, // 20 .. 1 4 0 0 .. -30dB -6dB -8dB -33dB .. -77dB - {0x0139, -76}, // 21 .. 1 1 3 1 .. -30dB -19dB 0dB -27dB .. -76dB - {0x0013, -75}, // 22 .. 0 0 2 3 .. -33dB -24dB -3dB -15dB .. -75dB - {0x0161, -74}, // 23 .. 1 3 0 1 .. -30dB -9dB -8dB -27dB .. -74dB - {0x01C0, -73}, // 24 .. 1 6 0 0 .. -30dB -2dB -8dB -33dB .. -73dB - {0x00E8, -72}, // 25 .. 0 7 1 0 .. -33dB 0dB -6dB -33dB .. -72dB - {0x00D0, -71}, // 26 .. 0 6 2 0 .. -33dB -2dB -3dB -33dB .. -71dB - {0x0239, -70}, // 27 .. 2 1 3 1 .. -24dB -19dB 0dB -27dB .. -70dB - {0x006A, -69}, // 28 .. 0 3 1 2 .. -33dB -9dB -6dB -21dB .. -69dB - {0x0006, -68}, // 29 .. 0 0 0 6 .. -33dB -24dB -8dB -3dB .. -68dB - {0x00B1, -67}, // 30 .. 0 5 2 1 .. -33dB -4dB -3dB -27dB .. -67dB - {0x000E, -66}, // 31 .. 0 0 1 6 .. -33dB -24dB -6dB -3dB .. -66dB - {0x015A, -65}, // 32 .. 1 2 3 2 .. -30dB -14dB 0dB -21dB .. -65dB - {0x022B, -64}, // 33 .. 2 1 1 3 .. -24dB -19dB -6dB -15dB .. -64dB - {0x01F8, -63}, // 34 .. 1 7 3 0 .. -30dB 0dB 0dB -33dB .. -63dB - {0x0163, -62}, // 35 .. 1 3 0 3 .. -30dB -9dB -8dB -15dB .. -62dB - {0x0035, -61}, // 36 .. 0 1 2 5 .. -33dB -19dB -3dB -6dB .. -61dB - {0x0214, -60}, // 37 .. 2 0 2 4 .. -24dB -24dB -3dB -9dB .. -60dB - {0x01D9, -59}, // 38 .. 1 6 3 1 .. -30dB -2dB 0dB -27dB .. -59dB - {0x0145, -58}, // 39 .. 1 2 0 5 .. -30dB -14dB -8dB -6dB .. -58dB - {0x02A2, -57}, // 40 .. 2 5 0 2 .. -24dB -4dB -8dB -21dB .. -57dB - {0x02D1, -56}, // 41 .. 2 6 2 1 .. -24dB -2dB -3dB -27dB .. -56dB - {0x00B3, -55}, // 42 .. 0 5 2 3 .. -33dB -4dB -3dB -15dB .. -55dB - {0x0216, -54}, // 43 .. 2 0 2 6 .. -24dB -24dB -3dB -3dB .. -54dB - {0x0066, -53}, // 44 .. 0 3 0 6 .. -33dB -9dB -8dB -3dB .. -53dB - {0x00C4, -52}, // 45 .. 0 6 0 4 .. -33dB -2dB -8dB -9dB .. -52dB - {0x006E, -51}, // 46 .. 0 3 1 6 .. -33dB -9dB -6dB -3dB .. -51dB - {0x015D, -50}, // 47 .. 1 2 3 5 .. -30dB -14dB 0dB -6dB .. -50dB - {0x00AD, -49}, // 48 .. 0 5 1 5 .. -33dB -4dB -6dB -6dB .. -49dB - {0x007D, -48}, // 49 .. 0 3 3 5 .. -33dB -9dB 0dB -6dB .. -48dB - {0x00D4, -47}, // 50 .. 0 6 2 4 .. -33dB -2dB -3dB -9dB .. -47dB - {0x01B4, -46}, // 51 .. 1 5 2 4 .. -30dB -4dB -3dB -9dB .. -46dB - {0x030B, -45}, // 52 .. 3 0 1 3 .. 0dB -24dB -6dB -15dB .. -45dB - {0x00CE, -44}, // 53 .. 0 6 1 6 .. -33dB -2dB -6dB -3dB .. -44dB - {0x01B5, -43}, // 54 .. 1 5 2 5 .. -30dB -4dB -3dB -6dB .. -43dB - {0x0097, -42}, // 55 .. 0 4 2 7 .. -33dB -6dB -3dB 0dB .. -42dB - {0x0257, -41}, // 56 .. 2 2 2 7 .. -24dB -14dB -3dB 0dB .. -41dB - {0x02B4, -40}, // 57 .. 2 5 2 4 .. -24dB -4dB -3dB -9dB .. -40dB - {0x027D, -39}, // 58 .. 2 3 3 5 .. -24dB -9dB 0dB -6dB .. -39dB - {0x01DD, -38}, // 59 .. 1 6 3 5 .. -30dB -2dB 0dB -6dB .. -38dB - {0x02AE, -37}, // 60 .. 2 5 1 6 .. -24dB -4dB -6dB -3dB .. -37dB - {0x0379, -36}, // 61 .. 3 3 3 1 .. 0dB -9dB 0dB -27dB .. -36dB - {0x035A, -35}, // 62 .. 3 2 3 2 .. 0dB -14dB 0dB -21dB .. -35dB - {0x02B6, -34}, // 63 .. 2 5 2 6 .. -24dB -4dB -3dB -3dB .. -34dB - {0x030E, -33}, // 64 .. 3 0 1 6 .. 0dB -24dB -6dB -3dB .. -33dB - {0x0307, -32}, // 65 .. 3 0 0 7 .. 0dB -24dB -8dB 0dB .. -32dB - {0x02BE, -31}, // 66 .. 2 5 3 6 .. -24dB -4dB 0dB -3dB .. -31dB - {0x037A, -30}, // 67 .. 3 3 3 2 .. 0dB -9dB 0dB -21dB .. -30dB - {0x02DE, -29}, // 68 .. 2 6 3 6 .. -24dB -2dB 0dB -3dB .. -29dB - {0x0345, -28}, // 69 .. 3 2 0 5 .. 0dB -14dB -8dB -6dB .. -28dB - {0x03A3, -27}, // 70 .. 3 5 0 3 .. 0dB -4dB -8dB -15dB .. -27dB - {0x0364, -26}, // 71 .. 3 3 0 4 .. 0dB -9dB -8dB -9dB .. -26dB - {0x032F, -25}, // 72 .. 3 1 1 7 .. 0dB -19dB -6dB 0dB .. -25dB - {0x0393, -24}, // 73 .. 3 4 2 3 .. 0dB -6dB -3dB -15dB .. -24dB - {0x0384, -23}, // 74 .. 3 4 0 4 .. 0dB -6dB -8dB -9dB .. -23dB - {0x0347, -22}, // 75 .. 3 2 0 7 .. 0dB -14dB -8dB 0dB .. -22dB - {0x03EB, -21}, // 76 .. 3 7 1 3 .. 0dB 0dB -6dB -15dB .. -21dB - {0x03D3, -20}, // 77 .. 3 6 2 3 .. 0dB -2dB -3dB -15dB .. -20dB - {0x03BB, -19}, // 78 .. 3 5 3 3 .. 0dB -4dB 0dB -15dB .. -19dB - {0x037C, -18}, // 79 .. 3 3 3 4 .. 0dB -9dB 0dB -9dB .. -18dB - {0x03CC, -17}, // 80 .. 3 6 1 4 .. 0dB -2dB -6dB -9dB .. -17dB - {0x03C5, -16}, // 81 .. 3 6 0 5 .. 0dB -2dB -8dB -6dB .. -16dB - {0x03EC, -15}, // 82 .. 3 7 1 4 .. 0dB 0dB -6dB -9dB .. -15dB - {0x035F, -14}, // 83 .. 3 2 3 7 .. 0dB -14dB 0dB 0dB .. -14dB - {0x03BC, -13}, // 84 .. 3 5 3 4 .. 0dB -4dB 0dB -9dB .. -13dB - {0x038F, -12}, // 85 .. 3 4 1 7 .. 0dB -6dB -6dB 0dB .. -12dB - {0x03E6, -11}, // 86 .. 3 7 0 6 .. 0dB 0dB -8dB -3dB .. -11dB - {0x03AF, -10}, // 87 .. 3 5 1 7 .. 0dB -4dB -6dB 0dB .. -10dB - {0x03F5, -9}, // 88 .. 3 7 2 5 .. 0dB 0dB -3dB -6dB .. -9dB - {0x03D6, -8}, // 89 .. 3 6 2 6 .. 0dB -2dB -3dB -3dB .. -8dB - {0x03BE, -7}, // 90 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original - {0x03F6, -6}, // 91 .. 3 7 2 6 .. 0dB 0dB -3dB -3dB .. -6dB - {0x03DE, -5}, // 92 .. 3 6 3 6 .. 0dB -2dB 0dB -3dB .. -5dB - {0x03BF, -4}, // 93 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB - {0x03F7, -3}, // 94 .. 3 7 2 7 .. 0dB 0dB -3dB 0dB .. -3dB - {0x03DF, -2}, // 95 .. 3 6 3 7 .. 0dB -2dB 0dB 0dB .. -2dB - {0x03FF, 0}, // 96 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB - }; + {0x0000, -98}, // 1 .. 0 0 0 0 .. -33dB -24dB -8dB -33dB .. -98dB + {0x0008, -96}, // 2 .. 0 0 1 0 .. -33dB -24dB -6dB -33dB .. -96dB + {0x0100, -95}, // 3 .. 1 0 0 0 .. -30dB -24dB -8dB -33dB .. -95dB + {0x0020, -93}, // 4 .. 0 1 0 0 .. -33dB -19dB -8dB -33dB .. -93dB + {0x0001, -92}, // 5 .. 0 0 0 1 .. -33dB -24dB -8dB -27dB .. -92dB + {0x0028, -91}, // 6 .. 0 1 1 0 .. -33dB -19dB -6dB -33dB .. -91dB + {0x0009, -90}, // 7 .. 0 0 1 1 .. -33dB -24dB -6dB -27dB .. -90dB + {0x0101, -89}, // 8 .. 1 0 0 1 .. -30dB -24dB -8dB -27dB .. -89dB + {0x0030, -88}, // 9 .. 0 1 2 0 .. -33dB -19dB -3dB -33dB .. -88dB + {0x0118, -87}, // 10 .. 1 0 3 0 .. -30dB -24dB 0dB -33dB .. -87dB + {0x0002, -86}, // 11 .. 0 0 0 2 .. -33dB -24dB -8dB -21dB .. -86dB + {0x0130, -85}, // 12 .. 1 1 2 0 .. -30dB -19dB -3dB -33dB .. -85dB + {0x0019, -84}, // 13 .. 0 0 3 1 .. -33dB -24dB 0dB -27dB .. -84dB + {0x0060, -83}, // 14 .. 0 3 0 0 .. -33dB -9dB -8dB -33dB .. -83dB + {0x0138, -82}, // 15 .. 1 1 3 0 .. -30dB -19dB 0dB -33dB .. -82dB + {0x0119, -81}, // 16 .. 1 0 3 1 .. -30dB -24dB 0dB -27dB .. -81dB + {0x0058, -80}, // 17 .. 0 2 3 0 .. -33dB -14dB 0dB -33dB .. -80dB + {0x0141, -79}, // 18 .. 1 2 0 1 .. -30dB -14dB -8dB -27dB .. -79dB + {0x0070, -78}, // 19 .. 0 3 2 0 .. -33dB -9dB -3dB -33dB .. -78dB + {0x0180, -77}, // 20 .. 1 4 0 0 .. -30dB -6dB -8dB -33dB .. -77dB + {0x0139, -76}, // 21 .. 1 1 3 1 .. -30dB -19dB 0dB -27dB .. -76dB + {0x0013, -75}, // 22 .. 0 0 2 3 .. -33dB -24dB -3dB -15dB .. -75dB + {0x0161, -74}, // 23 .. 1 3 0 1 .. -30dB -9dB -8dB -27dB .. -74dB + {0x01C0, -73}, // 24 .. 1 6 0 0 .. -30dB -2dB -8dB -33dB .. -73dB + {0x00E8, -72}, // 25 .. 0 7 1 0 .. -33dB 0dB -6dB -33dB .. -72dB + {0x00D0, -71}, // 26 .. 0 6 2 0 .. -33dB -2dB -3dB -33dB .. -71dB + {0x0239, -70}, // 27 .. 2 1 3 1 .. -24dB -19dB 0dB -27dB .. -70dB + {0x006A, -69}, // 28 .. 0 3 1 2 .. -33dB -9dB -6dB -21dB .. -69dB + {0x0006, -68}, // 29 .. 0 0 0 6 .. -33dB -24dB -8dB -3dB .. -68dB + {0x00B1, -67}, // 30 .. 0 5 2 1 .. -33dB -4dB -3dB -27dB .. -67dB + {0x000E, -66}, // 31 .. 0 0 1 6 .. -33dB -24dB -6dB -3dB .. -66dB + {0x015A, -65}, // 32 .. 1 2 3 2 .. -30dB -14dB 0dB -21dB .. -65dB + {0x022B, -64}, // 33 .. 2 1 1 3 .. -24dB -19dB -6dB -15dB .. -64dB + {0x01F8, -63}, // 34 .. 1 7 3 0 .. -30dB 0dB 0dB -33dB .. -63dB + {0x0163, -62}, // 35 .. 1 3 0 3 .. -30dB -9dB -8dB -15dB .. -62dB + {0x0035, -61}, // 36 .. 0 1 2 5 .. -33dB -19dB -3dB -6dB .. -61dB + {0x0214, -60}, // 37 .. 2 0 2 4 .. -24dB -24dB -3dB -9dB .. -60dB + {0x01D9, -59}, // 38 .. 1 6 3 1 .. -30dB -2dB 0dB -27dB .. -59dB + {0x0145, -58}, // 39 .. 1 2 0 5 .. -30dB -14dB -8dB -6dB .. -58dB + {0x02A2, -57}, // 40 .. 2 5 0 2 .. -24dB -4dB -8dB -21dB .. -57dB + {0x02D1, -56}, // 41 .. 2 6 2 1 .. -24dB -2dB -3dB -27dB .. -56dB + {0x00B3, -55}, // 42 .. 0 5 2 3 .. -33dB -4dB -3dB -15dB .. -55dB + {0x0216, -54}, // 43 .. 2 0 2 6 .. -24dB -24dB -3dB -3dB .. -54dB + {0x0066, -53}, // 44 .. 0 3 0 6 .. -33dB -9dB -8dB -3dB .. -53dB + {0x00C4, -52}, // 45 .. 0 6 0 4 .. -33dB -2dB -8dB -9dB .. -52dB + {0x006E, -51}, // 46 .. 0 3 1 6 .. -33dB -9dB -6dB -3dB .. -51dB + {0x015D, -50}, // 47 .. 1 2 3 5 .. -30dB -14dB 0dB -6dB .. -50dB + {0x00AD, -49}, // 48 .. 0 5 1 5 .. -33dB -4dB -6dB -6dB .. -49dB + {0x007D, -48}, // 49 .. 0 3 3 5 .. -33dB -9dB 0dB -6dB .. -48dB + {0x00D4, -47}, // 50 .. 0 6 2 4 .. -33dB -2dB -3dB -9dB .. -47dB + {0x01B4, -46}, // 51 .. 1 5 2 4 .. -30dB -4dB -3dB -9dB .. -46dB + {0x030B, -45}, // 52 .. 3 0 1 3 .. 0dB -24dB -6dB -15dB .. -45dB + {0x00CE, -44}, // 53 .. 0 6 1 6 .. -33dB -2dB -6dB -3dB .. -44dB + {0x01B5, -43}, // 54 .. 1 5 2 5 .. -30dB -4dB -3dB -6dB .. -43dB + {0x0097, -42}, // 55 .. 0 4 2 7 .. -33dB -6dB -3dB 0dB .. -42dB + {0x0257, -41}, // 56 .. 2 2 2 7 .. -24dB -14dB -3dB 0dB .. -41dB + {0x02B4, -40}, // 57 .. 2 5 2 4 .. -24dB -4dB -3dB -9dB .. -40dB + {0x027D, -39}, // 58 .. 2 3 3 5 .. -24dB -9dB 0dB -6dB .. -39dB + {0x01DD, -38}, // 59 .. 1 6 3 5 .. -30dB -2dB 0dB -6dB .. -38dB + {0x02AE, -37}, // 60 .. 2 5 1 6 .. -24dB -4dB -6dB -3dB .. -37dB + {0x0379, -36}, // 61 .. 3 3 3 1 .. 0dB -9dB 0dB -27dB .. -36dB + {0x035A, -35}, // 62 .. 3 2 3 2 .. 0dB -14dB 0dB -21dB .. -35dB + {0x02B6, -34}, // 63 .. 2 5 2 6 .. -24dB -4dB -3dB -3dB .. -34dB + {0x030E, -33}, // 64 .. 3 0 1 6 .. 0dB -24dB -6dB -3dB .. -33dB + {0x0307, -32}, // 65 .. 3 0 0 7 .. 0dB -24dB -8dB 0dB .. -32dB + {0x02BE, -31}, // 66 .. 2 5 3 6 .. -24dB -4dB 0dB -3dB .. -31dB + {0x037A, -30}, // 67 .. 3 3 3 2 .. 0dB -9dB 0dB -21dB .. -30dB + {0x02DE, -29}, // 68 .. 2 6 3 6 .. -24dB -2dB 0dB -3dB .. -29dB + {0x0345, -28}, // 69 .. 3 2 0 5 .. 0dB -14dB -8dB -6dB .. -28dB + {0x03A3, -27}, // 70 .. 3 5 0 3 .. 0dB -4dB -8dB -15dB .. -27dB + {0x0364, -26}, // 71 .. 3 3 0 4 .. 0dB -9dB -8dB -9dB .. -26dB + {0x032F, -25}, // 72 .. 3 1 1 7 .. 0dB -19dB -6dB 0dB .. -25dB + {0x0393, -24}, // 73 .. 3 4 2 3 .. 0dB -6dB -3dB -15dB .. -24dB + {0x0384, -23}, // 74 .. 3 4 0 4 .. 0dB -6dB -8dB -9dB .. -23dB + {0x0347, -22}, // 75 .. 3 2 0 7 .. 0dB -14dB -8dB 0dB .. -22dB + {0x03EB, -21}, // 76 .. 3 7 1 3 .. 0dB 0dB -6dB -15dB .. -21dB + {0x03D3, -20}, // 77 .. 3 6 2 3 .. 0dB -2dB -3dB -15dB .. -20dB + {0x03BB, -19}, // 78 .. 3 5 3 3 .. 0dB -4dB 0dB -15dB .. -19dB + {0x037C, -18}, // 79 .. 3 3 3 4 .. 0dB -9dB 0dB -9dB .. -18dB + {0x03CC, -17}, // 80 .. 3 6 1 4 .. 0dB -2dB -6dB -9dB .. -17dB + {0x03C5, -16}, // 81 .. 3 6 0 5 .. 0dB -2dB -8dB -6dB .. -16dB + {0x03EC, -15}, // 82 .. 3 7 1 4 .. 0dB 0dB -6dB -9dB .. -15dB + {0x035F, -14}, // 83 .. 3 2 3 7 .. 0dB -14dB 0dB 0dB .. -14dB + {0x03BC, -13}, // 84 .. 3 5 3 4 .. 0dB -4dB 0dB -9dB .. -13dB + {0x038F, -12}, // 85 .. 3 4 1 7 .. 0dB -6dB -6dB 0dB .. -12dB + {0x03E6, -11}, // 86 .. 3 7 0 6 .. 0dB 0dB -8dB -3dB .. -11dB + {0x03AF, -10}, // 87 .. 3 5 1 7 .. 0dB -4dB -6dB 0dB .. -10dB + {0x03F5, -9}, // 88 .. 3 7 2 5 .. 0dB 0dB -3dB -6dB .. -9dB + {0x03D6, -8}, // 89 .. 3 6 2 6 .. 0dB -2dB -3dB -3dB .. -8dB + {0x03BE, -7}, // 90 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original + {0x03F6, -6}, // 91 .. 3 7 2 6 .. 0dB 0dB -3dB -3dB .. -6dB + {0x03DE, -5}, // 92 .. 3 6 3 6 .. 0dB -2dB 0dB -3dB .. -5dB + {0x03BF, -4}, // 93 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB + {0x03F7, -3}, // 94 .. 3 7 2 7 .. 0dB 0dB -3dB 0dB .. -3dB + {0x03DF, -2}, // 95 .. 3 6 3 7 .. 0dB -2dB 0dB 0dB .. -2dB + {0x03FF, 0}, // 96 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB +}; - static const unsigned int original_index = 90; +static const unsigned int original_index = 90; #endif +#ifdef ENABLE_AM_FIX_SHOW_DATA + // display update rate + static const unsigned int display_update_rate = 250 / 10; // max 250ms display update rate + unsigned int display_update_tick = 0; +#endif + +#ifdef ENABLE_AM_FIX_TEST1 + // user manually sets the table index .. used to calibrate the desired dB gain table + unsigned int gain_table_index[2] = {1 + g_eeprom.config.setting.am_fix_test1, 1 + g_eeprom.config.setting.am_fix_test1}; +#else + unsigned int gain_table_index[2] = {original_index, original_index}; +#endif + +// used simply to detect a changed gain setting +unsigned int gain_table_index_prev[2] = {0, 0}; + +// to help reduce gain hunting, peak hold count down tick +unsigned int hold_counter[2] = {0, 0}; + +// holds the previous RSSI level .. we do an average of old + new RSSI reading +int16_t prev_rssi[2] = {0, 0}; + +// used to correct the RSSI readings after our RF gain adjustments +int16_t rssi_gain_diff[2] = {0, 0}; + +#ifndef ENABLE_AM_FIX_TEST1 + // -89 dBm, any higher and the AM demodulator starts to saturate/clip/distort + const int16_t desired_rssi = (-89 + 160) * 2; +#endif + +void AM_fix_init(void) +{ // called at boot-up + unsigned int vfo; + for (vfo = 0; vfo < 2; vfo++) + { + #ifdef ENABLE_AM_FIX_TEST1 + gain_table_index[vfo] = 1 + g_eeprom.config.setting.am_fix_test1; + #else + gain_table_index[vfo] = original_index; // re-start with original QS setting + #endif + //AM_fix_reset(vfo); + } +} + +void AM_fix_reset(const int vfo) +{ // reset the AM fixer upper + + if (vfo < 0 || vfo >= 2) + return; + #ifdef ENABLE_AM_FIX_SHOW_DATA - // display update rate - static const unsigned int display_update_rate = 250 / 10; // max 250ms display update rate - unsigned int display_update_tick = 0; + display_update_tick = 0; #endif + prev_rssi[vfo] = 0; + hold_counter[vfo] = 0; + rssi_gain_diff[vfo] = 0; + gain_table_index_prev[vfo] = 0; #ifdef ENABLE_AM_FIX_TEST1 - // user manually sets the table index .. used to calibrate the desired dB gain table - unsigned int gain_table_index[2] = {1 + g_eeprom.config.setting.am_fix_test1, 1 + g_eeprom.config.setting.am_fix_test1}; + //gain_table_index[vfo] = 1 + g_eeprom.config.setting.am_fix_test1; #else - unsigned int gain_table_index[2] = {original_index, original_index}; + //gain_table_index[vfo] = original_index; // re-start with original QS setting #endif +} - // used simply to detect a changed gain setting - unsigned int gain_table_index_prev[2] = {0, 0}; +// adjust the RX gain to try and prevent the AM demodulator from +// saturating (distorted AM audio) +// +// we're actually doing the BK4819's job for it here, but as the chip +// won't/don't do it for itself, we're left to bodging it ourself by +// playing with the RF front end gain setting +// +void AM_fix_10ms(const int vfo) +{ + int16_t diff_dB; + int16_t rssi; - // to help reduce gain hunting, peak hold count down tick - unsigned int hold_counter[2] = {0, 0}; - - // holds the previous RSSI level .. we do an average of old + new RSSI reading - int16_t prev_rssi[2] = {0, 0}; - - // used to correct the RSSI readings after our RF gain adjustments - int16_t rssi_gain_diff[2] = {0, 0}; - - #ifndef ENABLE_AM_FIX_TEST1 - // -89 dBm, any higher and the AM demodulator starts to saturate/clip/distort - const int16_t desired_rssi = (-89 + 160) * 2; - #endif - - void AM_fix_init(void) - { // called at boot-up - unsigned int vfo; - for (vfo = 0; vfo < 2; vfo++) - { - #ifdef ENABLE_AM_FIX_TEST1 - gain_table_index[vfo] = 1 + g_eeprom.config.setting.am_fix_test1; - #else - gain_table_index[vfo] = original_index; // re-start with original QS setting + switch (g_current_function) + { + case FUNCTION_TRANSMIT: + case FUNCTION_PANADAPTER: + case FUNCTION_POWER_SAVE: + #ifdef ENABLE_AM_FIX_SHOW_DATA + display_update_tick = display_update_rate; // queue up a display update as soon as we switch to RX mode #endif -// AM_fix_reset(vfo); - } - } - - void AM_fix_reset(const int vfo) - { // reset the AM fixer upper - - if (vfo < 0 || vfo >= 2) return; - #ifdef ENABLE_AM_FIX_SHOW_DATA - display_update_tick = 0; - #endif - - prev_rssi[vfo] = 0; - hold_counter[vfo] = 0; - rssi_gain_diff[vfo] = 0; - gain_table_index_prev[vfo] = 0; - #ifdef ENABLE_AM_FIX_TEST1 -// gain_table_index[vfo] = 1 + g_eeprom.config.setting.am_fix_test1; - #else -// gain_table_index[vfo] = original_index; // re-start with original QS setting - #endif + // only adjust stuff if we're in one of these modes + case FUNCTION_FOREGROUND: + case FUNCTION_NEW_RECEIVE: + case FUNCTION_RECEIVE: + break; } - // adjust the RX gain to try and prevent the AM demodulator from - // saturating (distorted AM audio) - // - // we're actually doing the BK4819's job for it here, but as the chip - // won't/don't do it for itself, we're left to bodging it ourself by - // playing with the RF front end gain setting - // - void AM_fix_10ms(const int vfo) + #ifdef ENABLE_AM_FIX_SHOW_DATA + if (display_update_tick > 0) + { + if (++display_update_tick >= display_update_rate) + { // trigger a display update + display_update_tick = 0; + g_update_display = true; + } + } + #endif + + { // sample the current RSSI level + // average it with the previous rssi (a teeny bit of noise/spike immunity) + const int16_t new_rssi = BK4819_GetRSSI(); + rssi = (prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; + prev_rssi[vfo] = new_rssi; + } + + // save the corrected RSSI level + #ifdef ENABLE_AM_FIX_SHOW_DATA { - int16_t diff_dB; - int16_t rssi; + const int16_t new_rssi = rssi - rssi_gain_diff[vfo]; + const uint16_t new_glitch = BK4819_GetGlitchIndicator(); + const uint16_t new_noise = BK4819_GetExNoiceIndicator(); - switch (g_current_function) + if (g_current_rssi[vfo] != new_rssi) { - case FUNCTION_TRANSMIT: - case FUNCTION_PANADAPTER: - case FUNCTION_POWER_SAVE: - #ifdef ENABLE_AM_FIX_SHOW_DATA - display_update_tick = display_update_rate; // queue up a display update as soon as we switch to RX mode - #endif - return; + g_current_rssi[vfo] = new_rssi; + g_current_glitch[vfo] = new_glitch; + g_current_noise[vfo] = new_noise; - // only adjust stuff if we're in one of these modes - case FUNCTION_FOREGROUND: - case FUNCTION_NEW_RECEIVE: - case FUNCTION_RECEIVE: - break; - } - - #ifdef ENABLE_AM_FIX_SHOW_DATA - if (display_update_tick > 0) - { - if (++display_update_tick >= display_update_rate) - { // trigger a display update - display_update_tick = 0; - g_update_display = true; - } - } - #endif - - { // sample the current RSSI level - // average it with the previous rssi (a teeny bit of noise/spike immunity) - const int16_t new_rssi = BK4819_GetRSSI(); - rssi = (prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; - prev_rssi[vfo] = new_rssi; - } - - // save the corrected RSSI level - #ifdef ENABLE_AM_FIX_SHOW_DATA - { - const int16_t new_rssi = rssi - rssi_gain_diff[vfo]; - if (g_current_rssi[vfo] != new_rssi) - { - g_current_rssi[vfo] = new_rssi; - - if (display_update_tick == 0) - { // trigger a display update - display_update_tick = 1; - g_update_display = true; - } - } - } - #else - g_current_rssi[vfo] = rssi - rssi_gain_diff[vfo]; - #endif - -#ifdef ENABLE_AM_FIX_TEST1 - // user is manually adjusting a gain register - don't do anything automatically - - { - int i = 1 + (int)g_eeprom.config.setting.am_fix_test1; - i = (i < 1) ? 1 : (i > ((int)ARRAY_SIZE(gain_table) - 1) ? ARRAY_SIZE(gain_table) - 1 : i; - - if (gain_table_index[vfo] == i) - return; // no change - - gain_table_index[vfo] = i; - } - -#else - // automatically adjust the RF RX gain - - // update the gain hold counter - if (hold_counter[vfo] > 0) - hold_counter[vfo]--; - - // dB difference between actual and desired RSSI level - diff_dB = (rssi - desired_rssi) / 2; - - if (diff_dB > 0) - { // decrease gain - - unsigned int index = gain_table_index[vfo]; // current position we're at - - if (diff_dB >= 10) - { // jump immediately to a new gain setting - // this greatly speeds up initial gain reduction (but reduces noise/spike immunity) - - const int16_t desired_gain_dB = (int16_t)gain_table[index].gain_dB - diff_dB + 8; // get no closer than 8dB (bit of noise/spike immunity) - - // scan the table to see what index to jump straight too - while (index > 1) - if (gain_table[--index].gain_dB <= desired_gain_dB) - break; - - //index = (gain_table_index[vfo] + index) / 2; // easy does it - } - else - { // incrementally reduce the gain .. taking it slow improves noise/spike immunity - -// if (index >= (1 + 3) && diff_dB >= 3) -// index -= 3; // faster gain reduction -// else - if (index > 1) - index--; // slow step-by-step gain reduction - } - - index = (index < 1) ? 1 : (index > (ARRAY_SIZE(gain_table) - 1)) ? ARRAY_SIZE(gain_table) - 1 : index; - - if (gain_table_index[vfo] != index) - { - gain_table_index[vfo] = index; // save new gain setting to use - hold_counter[vfo] = 30; // 300ms hold - } - } - - if (diff_dB >= -6) // 6dB hysterisis (help reduce gain hunting) - hold_counter[vfo] = 30; // 300ms hold - - if (hold_counter[vfo] == 0) - { // hold has been released, we're free to increase gain - const unsigned int index = gain_table_index[vfo] + 1; // move up to next gain index - gain_table_index[vfo] = (index < ARRAY_SIZE(gain_table)) ? index : ARRAY_SIZE(gain_table) - 1; // limit the gain level we use - } - -#endif - - { // apply the new settings to the front end registers - - const unsigned int index = gain_table_index[vfo]; - - // remember the new gain table index - gain_table_index_prev[vfo] = index; - - // set the RF front end gains - BK4819_WriteRegister(0x13, gain_table[index].reg_val); - - // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we make - - // RF gain difference from original QS setting - rssi_gain_diff[vfo] = ((int16_t)gain_table[index].gain_dB - gain_table[original_index].gain_dB) * 2; - } - - // save the corrected RSSI level - g_current_rssi[vfo] = rssi - rssi_gain_diff[vfo]; - - #ifdef ENABLE_AM_FIX_SHOW_DATA if (display_update_tick == 0) - { + { // trigger a display update display_update_tick = 1; g_update_display = true; } + } + } + #else + g_current_rssi[vfo] = rssi - rssi_gain_diff[vfo]; + #endif + +#ifdef ENABLE_AM_FIX_TEST1 + // user is manually adjusting a gain register - don't do anything automatically + + { + int i = 1 + (int)g_eeprom.config.setting.am_fix_test1; + i = (i < 1) ? 1 : (i > ((int)ARRAY_SIZE(gain_table) - 1) ? ARRAY_SIZE(gain_table) - 1 : i; + + if (gain_table_index[vfo] == i) + return; // no change + + gain_table_index[vfo] = i; + } + +#else + // automatically adjust the RF RX gain + + // update the gain hold counter + if (hold_counter[vfo] > 0) + hold_counter[vfo]--; + + // dB difference between actual and desired RSSI level + diff_dB = (rssi - desired_rssi) / 2; + + if (diff_dB > 0) + { // decrease gain + + unsigned int index = gain_table_index[vfo]; // current position we're at + + if (diff_dB >= 10) + { // jump immediately to a new gain setting + // this greatly speeds up initial gain reduction (but reduces noise/spike immunity) + + const int16_t desired_gain_dB = (int16_t)gain_table[index].gain_dB - diff_dB + 8; // get no closer than 8dB (bit of noise/spike immunity) + + // scan the table to see what index to jump straight too + while (index > 1) + if (gain_table[--index].gain_dB <= desired_gain_dB) + break; + + //index = (gain_table_index[vfo] + index) / 2; // easy does it + } + else + { // incrementally reduce the gain .. taking it slow improves noise/spike immunity + + //if (index >= (1 + 3) && diff_dB >= 3) + // index -= 3; // faster gain reduction + //else + if (index > 1) + index--; // slow step-by-step gain reduction + } + + index = (index < 1) ? 1 : (index > (ARRAY_SIZE(gain_table) - 1)) ? ARRAY_SIZE(gain_table) - 1 : index; + + if (gain_table_index[vfo] != index) + { + gain_table_index[vfo] = index; // save new gain setting to use + hold_counter[vfo] = 30; // 300ms hold + } + } + + if (diff_dB >= -6) // 6dB hysterisis (help reduce gain hunting) + hold_counter[vfo] = 30; // 300ms hold + + if (hold_counter[vfo] == 0) + { // hold has been released, we're free to increase gain + const unsigned int index = gain_table_index[vfo] + 1; // move up to next gain index + gain_table_index[vfo] = (index < ARRAY_SIZE(gain_table)) ? index : ARRAY_SIZE(gain_table) - 1; // limit the gain level we use + } + +#endif + + { // apply the new settings to the front end registers + + const unsigned int index = gain_table_index[vfo]; + + // remember the new gain table index + gain_table_index_prev[vfo] = index; + + // set the RF front end gains + BK4819_WriteRegister(0x13, gain_table[index].reg_val); + + // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we make + + #ifdef SET_RSSI_COMP + // RF gain difference from original QS setting + rssi_gain_diff[vfo] = ((int16_t)gain_table[index].gain_dB - gain_table[original_index].gain_dB) * 2; #endif } + // save the corrected RSSI level + g_current_rssi[vfo] = rssi - rssi_gain_diff[vfo]; + #ifdef ENABLE_AM_FIX_SHOW_DATA - - void AM_fix_print_data(const int vfo, char *s) + if (display_update_tick == 0) { - if (g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE) - return; - - if (s != NULL && vfo >= 0 && vfo < (int)ARRAY_SIZE(gain_table_index)) - { - const unsigned int index = gain_table_index[vfo]; -// sprintf(s, "%2u.%u %4ddB %3u", index, ARRAY_SIZE(gain_table) - 1, gain_table[index].gain_dB, prev_rssi[vfo]); - sprintf(s, "%2u %4ddB %3u", index, gain_table[index].gain_dB, prev_rssi[vfo]); - display_update_tick = 0; - } + display_update_tick = 1; + g_update_display = true; } - #endif +} + +#ifdef ENABLE_AM_FIX_SHOW_DATA + + void AM_fix_print_data(const int vfo, char *s) + { + if (g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE) + return; + + if (s != NULL && vfo >= 0 && vfo < (int)ARRAY_SIZE(gain_table_index)) + { + const unsigned int index = gain_table_index[vfo]; +// sprintf(s, "%2u.%u %4ddB %3u", index, ARRAY_SIZE(gain_table) - 1, gain_table[index].gain_dB, prev_rssi[vfo]); + sprintf(s, "%2u %4ddB %3u", index, gain_table[index].gain_dB, prev_rssi[vfo]); + display_update_tick = 0; + } + } #endif diff --git a/am_fix.h b/am_fix.h index 3c94d17..9aabb7d 100644 --- a/am_fix.h +++ b/am_fix.h @@ -16,20 +16,18 @@ */ #ifndef AM_FIXH +#define AM_FIXH #include #include -#ifdef ENABLE_AM_FIX - extern int16_t rssi_gain_diff[2]; +extern int16_t rssi_gain_diff[2]; - void AM_fix_init(void); - void AM_fix_reset(const int vfo); - void AM_fix_10ms(const int vfo); - #ifdef ENABLE_AM_FIX_SHOW_DATA - void AM_fix_print_data(const int vfo, char *s); - #endif +void AM_fix_init(void); +void AM_fix_reset(const int vfo); +void AM_fix_10ms(const int vfo); +#ifdef ENABLE_AM_FIX_SHOW_DATA + void AM_fix_print_data(const int vfo, char *s); +#endif #endif - -#endif diff --git a/app/app.c b/app/app.c index b8ae3e3..0c786ff 100644 --- a/app/app.c +++ b/app/app.c @@ -82,7 +82,9 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const static void APP_update_rssi(const int vfo) { - int16_t rssi = BK4819_GetRSSI(); + int16_t rssi = BK4819_GetRSSI(); + uint8_t glitch = BK4819_GetGlitchIndicator(); + uint8_t noise = BK4819_GetExNoiceIndicator(); #ifdef ENABLE_AM_FIX // add RF gain adjust compensation @@ -93,9 +95,11 @@ static void APP_update_rssi(const int vfo) if (g_current_rssi[vfo] == rssi) return; // no change - g_current_rssi[vfo] = rssi; + g_current_rssi[vfo] = rssi; + g_current_glitch[vfo] = glitch; + g_current_noise[vfo] = noise; - UI_update_rssi(rssi, vfo); + UI_update_rssi(rssi, glitch, noise, vfo); } static void APP_check_for_new_receive(void) @@ -1560,7 +1564,7 @@ void APP_process_flash_light_10ms(void) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); #ifdef ENABLE_FLASH_LIGHT_SOS_TONE if (!g_squelch_open && !g_monitor_enabled && !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER)) - BK4819_StartTone1(880, 50); + BK4819_StartTone1(880, 50, g_current_function == FUNCTION_TRANSMIT); #endif } } diff --git a/app/main.c b/app/main.c index 6286f9f..98fcf04 100644 --- a/app/main.c +++ b/app/main.c @@ -819,17 +819,19 @@ void MAIN_Key_STAR(bool key_pressed, bool key_held) if (g_scan_state_dir != SCAN_STATE_DIR_OFF) { // RF scanning - if (scanning_paused()) - { - FI_add_freq_ignored(g_rx_vfo->freq_config_rx.frequency); - - // immediately continue the scan - g_scan_pause_tick_10ms = 0; - g_scan_pause_time_mode = false; - g_squelch_open = false; - g_rx_reception_mode = RX_MODE_NONE; - FUNCTION_Select(FUNCTION_FOREGROUND); - } + #ifdef ENABLE_SCAN_IGNORE_LIST + if (scanning_paused()) + { + FI_add_freq_ignored(g_rx_vfo->freq_config_rx.frequency); + + // immediately continue the scan + g_scan_pause_tick_10ms = 0; + g_scan_pause_time_mode = false; + g_squelch_open = false; + g_rx_reception_mode = RX_MODE_NONE; + FUNCTION_Select(FUNCTION_FOREGROUND); + } + #endif return; } diff --git a/audio.c b/audio.c index 0213f17..151562f 100644 --- a/audio.c +++ b/audio.c @@ -173,7 +173,7 @@ void AUDIO_PlayBeep(beep_type_t Beep) } // BK4819_PlayTone(ToneFrequency, true); - BK4819_StartTone1(ToneFrequency, 96); + BK4819_StartTone1(ToneFrequency, 96, false); SYSTEM_DelayMs(2); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); diff --git a/driver/bk4819.c b/driver/bk4819.c index 46e3963..e57350d 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -881,7 +881,7 @@ void BK4819_EnableDTMF(void) (15u << BK4819_REG_24_SHIFT_MAX_SYMBOLS)); // 0 ~ 15 } -void BK4819_StartTone1(const uint16_t frequency, const unsigned int level) +void BK4819_StartTone1(const uint16_t frequency, const unsigned int level, const bool tx) { GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); SYSTEM_DelayMs(2); @@ -895,32 +895,37 @@ void BK4819_StartTone1(const uint16_t frequency, const unsigned int level) BK4819_WriteRegister(0x70, BK4819_REG_70_ENABLE_TONE1 | ((level & 0x7f) << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); BK4819_WriteRegister(0x30, 0); -#if 1 - BK4819_WriteRegister(0x30, - BK4819_REG_30_ENABLE_AF_DAC | - BK4819_REG_30_ENABLE_DISC_MODE | - BK4819_REG_30_ENABLE_TX_DSP); -#else - BK4819_WriteRegister(0x30, - BK4819_REG_30_ENABLE_VCO_CALIB | - BK4819_REG_30_ENABLE_UNKNOWN | -// BK4819_REG_30_ENABLE_RX_LINK | - BK4819_REG_30_ENABLE_AF_DAC | // - BK4819_REG_30_ENABLE_DISC_MODE | // - BK4819_REG_30_ENABLE_PLL_VCO | - BK4819_REG_30_ENABLE_PA_GAIN | -// BK4819_REG_30_ENABLE_MIC_ADC | - BK4819_REG_30_ENABLE_TX_DSP | // -// BK4819_REG_30_ENABLE_RX_DSP | - 0); -#endif + + if (!tx) + { + BK4819_WriteRegister(0x30, + BK4819_REG_30_ENABLE_AF_DAC | + BK4819_REG_30_ENABLE_DISC_MODE | + BK4819_REG_30_ENABLE_TX_DSP); + } + else + { + BK4819_WriteRegister(0x30, + BK4819_REG_30_ENABLE_VCO_CALIB | + BK4819_REG_30_ENABLE_UNKNOWN | +// BK4819_REG_30_ENABLE_RX_LINK | + BK4819_REG_30_ENABLE_AF_DAC | // + BK4819_REG_30_ENABLE_DISC_MODE | // + BK4819_REG_30_ENABLE_PLL_VCO | + BK4819_REG_30_ENABLE_PA_GAIN | +// BK4819_REG_30_ENABLE_MIC_ADC | + BK4819_REG_30_ENABLE_TX_DSP | // +// BK4819_REG_30_ENABLE_RX_DSP | + 0); + } BK4819_WriteRegister(0x71, scale_freq(frequency)); BK4819_ExitTxMute(); SYSTEM_DelayMs(2); - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); + if (!tx) + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); } void BK4819_StopTones(const bool tx) @@ -978,7 +983,7 @@ void BK4819_StopTones(const bool tx) void BK4819_PlayTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level) { const uint16_t prev_af = BK4819_ReadRegister(0x47); - BK4819_StartTone1(tone_Hz, level); + BK4819_StartTone1(tone_Hz, level, g_current_function == FUNCTION_TRANSMIT); SYSTEM_DelayMs(delay - 2); BK4819_StopTones(g_current_function == FUNCTION_TRANSMIT); BK4819_WriteRegister(0x47, prev_af); @@ -996,9 +1001,9 @@ void BK4819_PlayRoger(void) #endif const uint16_t prev_af = BK4819_ReadRegister(0x47); - BK4819_StartTone1(tone1_Hz, 96); + BK4819_StartTone1(tone1_Hz, 96, true); SYSTEM_DelayMs(80 - 2); - BK4819_StartTone1(tone2_Hz, 96); + BK4819_StartTone1(tone2_Hz, 96, true); SYSTEM_DelayMs(80); BK4819_StopTones(true); BK4819_WriteRegister(0x47, prev_af); @@ -1553,12 +1558,12 @@ uint16_t BK4819_GetRSSI(void) return BK4819_ReadRegister(0x67) & 0x01FF; } -uint8_t BK4819_GetGlitchIndicator(void) +uint8_t BK4819_GetGlitchIndicator(void) { return BK4819_ReadRegister(0x63) & 0x00FF; } -uint8_t BK4819_GetExNoiceIndicator(void) +uint8_t BK4819_GetExNoiceIndicator(void) { return BK4819_ReadRegister(0x65) & 0x007F; } diff --git a/driver/bk4819.h b/driver/bk4819.h index 0a46064..1482fa7 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -103,7 +103,7 @@ void BK4819_SetCompander(const unsigned int mode); void BK4819_DisableVox(void); void BK4819_DisableDTMF(void); void BK4819_EnableDTMF(void); -void BK4819_StartTone1(const uint16_t frequency, const unsigned int level); +void BK4819_StartTone1(const uint16_t frequency, const unsigned int level, const bool tx); void BK4819_StopTones(const bool tx); void BK4819_PlayTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level); void BK4819_EnterTxMute(void); diff --git a/firmware.bin b/firmware.bin index 3d6ff2b676f618bb622e6fe53b62b98995d7b8f7..c208b790ccfd600a1b7a9a4cf63a546697435efe 100644 GIT binary patch delta 35837 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 #+h;K#pD9+9Wio%0?-R2ZP9fBCSHZxZ*ngx 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 VdK1SM;roa<_7CkY&ctzu|35-04^IF9 diff --git a/firmware.packed.bin b/firmware.packed.bin index 3f20e809647c933cef06e5bbd5d21ce146cf0419..985f2d8958493f7130d70b8afe007af044f58237 100644 GIT binary patch delta 47874 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 delta 47862 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 diff --git a/freq_ignore.c b/freq_ignore.c index d870ac2..4374020 100644 --- a/freq_ignore.c +++ b/freq_ignore.c @@ -6,7 +6,7 @@ #include "misc.h" // a list of frequencies to ignore/skip when scanning -uint32_t ignore_frequencies[256]; +uint32_t ignore_frequencies[64]; int ignore_frequencies_count = 0; void FI_clear_freq_ignored(void) diff --git a/functions.c b/functions.c index 12f9450..0dbb6e3 100644 --- a/functions.c +++ b/functions.c @@ -220,7 +220,7 @@ void FUNCTION_Select(function_type_t Function) GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); SYSTEM_DelayMs(2); - BK4819_StartTone1(500, 28); + BK4819_StartTone1(500, 28, g_current_function == FUNCTION_TRANSMIT); SYSTEM_DelayMs(2); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); diff --git a/misc.c b/misc.c index 8abbae4..5b51805 100644 --- a/misc.c +++ b/misc.c @@ -234,7 +234,9 @@ volatile bool g_flag_tail_tone_elimination_complete; volatile uint16_t g_boot_tick_10ms = 4000 / 10; // 4 seconds -int16_t g_current_rssi[2] = {0, 0}; // now one per VFO +int16_t g_current_rssi[2] = {0, 0}; +uint16_t g_current_glitch[2] = {0, 0}; +uint16_t g_current_noise[2] = {0, 0}; uint8_t g_mic_sensitivity_tuning; diff --git a/misc.h b/misc.h index ec2ee92..ab2a2f5 100644 --- a/misc.h +++ b/misc.h @@ -321,7 +321,11 @@ extern volatile bool g_next_time_slice_40ms; extern volatile bool g_schedule_noaa; #endif extern volatile bool g_flag_tail_tone_elimination_complete; -extern int16_t g_current_rssi[2]; // now one per VFO + +extern int16_t g_current_rssi[2]; +extern uint16_t g_current_glitch[2]; +extern uint16_t g_current_noise[2]; + extern volatile uint16_t g_boot_tick_10ms; extern uint8_t g_mic_sensitivity_tuning; diff --git a/ui/main.c b/ui/main.c index 06200c7..a7de9e0 100644 --- a/ui/main.c +++ b/ui/main.c @@ -55,27 +55,13 @@ void draw_bar(uint8_t *line, const int len, const int max_width) for (i = 0; i < max_width; i += 2) line[i] = (i <= len) ? 0x7f : 0x41; #else - // segmented bar for (i = 0; i < max_width; i += 4) - { for (int k = i - 4; k < i && k < len; k++) - { if (k >= 0) // line[k] = (k < (i - 1)) ? 0x7f : 0x00; if (k < (i - 1)) line[k] = 0x7f; -// line[k] = 0x3e; - } - } - - #if 0 - // top/bottom lines - for (i = 0; i < len; i += 2) - line[i] |= 0x41; - for (i &= ~3u ; i < max_width; i += 4) - line[i] = 0x41; - #endif #endif } @@ -179,10 +165,14 @@ void UI_drawBars(uint8_t *p, const unsigned int level) #endif #ifdef ENABLE_RX_SIGNAL_BAR - bool UI_DisplayRSSIBar(const int16_t rssi, const bool now) + bool UI_DisplayRSSIBar(const int16_t rssi, const int16_t glitch, const int16_t noise, const bool now) { if (g_eeprom.config.setting.enable_rssi_bar) { + + (void)glitch; // TODO: + (void)noise; + // const int16_t s0_dBm = -127; // S0 .. base level const int16_t s0_dBm = -147; // S0 .. base level @@ -245,14 +235,14 @@ void UI_drawBars(uint8_t *p, const unsigned int level) } #endif -void UI_update_rssi(const int16_t rssi, const int vfo) +void UI_update_rssi(const int16_t rssi, const int16_t glitch, const int16_t noise, const int vfo) { #ifdef ENABLE_RX_SIGNAL_BAR if (g_center_line == CENTER_LINE_RSSI) { // optional larger RSSI dBm, S-point and bar level //if (g_current_function == FUNCTION_RECEIVE && g_squelch_open) if (g_current_function == FUNCTION_RECEIVE) - UI_DisplayRSSIBar(rssi, true); + UI_DisplayRSSIBar(rssi, glitch, noise, true); } #endif @@ -921,7 +911,7 @@ void UI_DisplayMain(void) if (rx && g_eeprom.config.setting.enable_rssi_bar) { g_center_line = CENTER_LINE_RSSI; - UI_DisplayRSSIBar(g_current_rssi[g_rx_vfo_num], false); + UI_DisplayRSSIBar(g_current_rssi[g_rx_vfo_num], g_current_glitch[g_rx_vfo_num], g_current_noise[g_rx_vfo_num], false); } else #endif diff --git a/ui/main.h b/ui/main.h index 4260222..09dcdb2 100644 --- a/ui/main.h +++ b/ui/main.h @@ -34,7 +34,7 @@ extern center_line_t g_center_line; #ifdef ENABLE_TX_AUDIO_BAR bool UI_DisplayAudioBar(const bool now); #endif -void UI_update_rssi(const int16_t rssi, const int vfo); +void UI_update_rssi(const int16_t rssi, const int16_t glitch, const int16_t noise, const int vfo); void UI_DisplayMain(void); #endif