From 06722a23d5eefdc6401f5b76aec139ac24e172d3 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Mon, 18 Sep 2023 17:42:54 +0100 Subject: [PATCH] Delete old file --- app/app.c | 87 +++++++++++++++++++++++++++++++++++++++++----- driver/bk4819.c | 90 ++++++++++++++++++++++++++++++++++++++++++------ font5x7.png | Bin 27909 -> 0 bytes 3 files changed, 158 insertions(+), 19 deletions(-) delete mode 100644 font5x7.png diff --git a/app/app.c b/app/app.c index 62c855e..66e41e4 100644 --- a/app/app.c +++ b/app/app.c @@ -464,7 +464,7 @@ void APP_StartListening(FUNCTION_Type_t Function) // RX AF level // - // REG_48 <15:12> 11 ?????? + // REG_48 <15:12> 11 ??? // // REG_48 <11:10> 0 AF Rx Gain-1 // 0 = 0dB @@ -476,10 +476,9 @@ void APP_StartListening(FUNCTION_Type_t Function) // 63 = max // 0 = mute // - // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) + // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) approx 2dB/step // 15 = max // 0 = min - // approx 2dB/step // BK4819_WriteRegister(BK4819_REG_48, #if 0 @@ -496,9 +495,44 @@ void APP_StartListening(FUNCTION_Type_t Function) BK4819_WriteRegister(0x4B, BK4819_ReadRegister(0x4B) & ~(1u << 5)); // enable RX ALC - // help improve AM RX distorted audio by reducing the PGA gain (still bad with stronger signals + // help improve AM RX distorted audio by reducing the PGA gain (still very bad with stronge signals) // - // I think the proper solution is to set the RX AGC to limit the front end/I.F gain + // I think a solution is to dynamically change these values as the RSSI moves up/down ? + // without a detailed datasheet on the chip it's very difficult to fix things + // + // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) + // + // <9:8> = LNA Gain Short + // 3 = 0dB + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB // // LNA_SHORT .. 0dB // LNA ........ 14dB @@ -506,6 +540,10 @@ void APP_StartListening(FUNCTION_Type_t Function) // PGA ........ -15dB // LNA SHORT LNA MIXER PGA BK4819_WriteRegister(BK4819_REG_13, (3u << 8) | (2u << 5) | (3u << 3) | (3u << 0)); + //BK4819_WriteRegister(BK4819_REG_12, 0x037B); // 000000 11 011 11 011 + //BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 + //BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 + //BK4819_WriteRegister(BK4819_REG_14, 0x0019); // 000000 00 000 11 001 gNeverUsed = 0; } @@ -514,7 +552,7 @@ void APP_StartListening(FUNCTION_Type_t Function) // RX AF level // - // REG_48 <15:12> 11 ?????? + // REG_48 <15:12> 11 ??? // // REG_48 <11:10> 0 AF Rx Gain-1 // 0 = 0dB @@ -526,10 +564,9 @@ void APP_StartListening(FUNCTION_Type_t Function) // 63 = max // 0 = mute // - // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) + // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) approx 2dB/step // 15 = max // 0 = min - // approx 2dB/step // BK4819_WriteRegister(BK4819_REG_48, (11u << 12) | // ??? @@ -539,6 +576,40 @@ void APP_StartListening(FUNCTION_Type_t Function) BK4819_WriteRegister(0x4B, BK4819_ReadRegister(0x4B) | (1u << 5)); // disable RX ALC + // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) + // + // <9:8> = LNA Gain Short + // 3 = 0dB + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB + // // LNA_SHORT .. 0dB // LNA ........ 14dB // MIXER ...... 0dB diff --git a/driver/bk4819.c b/driver/bk4819.c index 00d2bee..9e2e83f 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -59,7 +59,7 @@ void BK4819_Init(void) // RX AF level // - // REG_48 <15:12> 11 ?????? + // REG_48 <15:12> 11 ??? // // REG_48 <11:10> 0 AF Rx Gain-1 // 0 = 0dB @@ -71,10 +71,9 @@ void BK4819_Init(void) // 63 = max // 0 = mute // - // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) + // REG_48 <3:0> 15 AF DAC Gain (after Gain-1 and Gain-2) approx 2dB/step // 15 = max // 0 = min - // approx 2dB/step // BK4819_WriteRegister(BK4819_REG_48, // 0xB3A8); // 1011 00 111010 1000 (11u << 12) | // ??? @@ -216,17 +215,51 @@ void BK4819_SetAGC(uint8_t Value) { if (Value == 0) { + // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) + // + // <9:8> = LNA Gain Short + // 3 = 0dB + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB + // // LNA_SHORT .. 0dB // LNA ........ 14dB // MIXER ...... 0dB // PGA ........ -3dB // BK4819_WriteRegister(BK4819_REG_13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); // 000000 11 101 11 110 + BK4819_WriteRegister(BK4819_REG_12, 0x037B); // 000000 11 011 11 011 + BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 + BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 + BK4819_WriteRegister(BK4819_REG_14, 0x0019); // 000000 00 000 11 001 - BK4819_WriteRegister(BK4819_REG_12, 0x037B); - BK4819_WriteRegister(BK4819_REG_11, 0x027B); - BK4819_WriteRegister(BK4819_REG_10, 0x007A); - BK4819_WriteRegister(BK4819_REG_14, 0x0019); BK4819_WriteRegister(BK4819_REG_49, 0x2A38); BK4819_WriteRegister(BK4819_REG_7B, 0x8420); } @@ -235,19 +268,54 @@ void BK4819_SetAGC(uint8_t Value) { unsigned int i; + // REG_10 <15:0> 0x0038 Rx AGC Gain Table[0]. (Index Max->Min is 3,2,1,0,-1) + // + // <9:8> = LNA Gain Short + // 3 = 0dB + // 2 = -11dB + // 1 = -16dB + // 0 = -19dB + // + // <7:5> = LNA Gain + // 7 = 0dB + // 6 = -2dB + // 5 = -4dB + // 4 = -6dB + // 3 = -9dB + // 2 = -14dB + // 1 = -19dB + // 0 = -24dB + // + // <4:3> = MIXER Gain + // 3 = 0dB + // 2 = -3dB + // 1 = -6dB + // 0 = -8dB + // + // <2:0> = PGA Gain + // 7 = 0dB + // 6 = -3dB + // 5 = -6dB + // 4 = -9dB + // 3 = -15dB + // 2 = -21dB + // 1 = -27dB + // 0 = -33dB + // // LNA_SHORT .. 0dB // LNA ........ 14dB // MIXER ...... 0dB // PGA ........ -3dB // BK4819_WriteRegister(BK4819_REG_13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); // 000000 11 101 11 110 + BK4819_WriteRegister(BK4819_REG_12, 0x037C); // 000000 11 011 11 100 + BK4819_WriteRegister(BK4819_REG_11, 0x027B); // 000000 10 011 11 011 + BK4819_WriteRegister(BK4819_REG_10, 0x007A); // 000000 00 011 11 010 + BK4819_WriteRegister(BK4819_REG_14, 0x0018); // 000000 00 000 11 000 - BK4819_WriteRegister(BK4819_REG_12, 0x037C); - BK4819_WriteRegister(BK4819_REG_11, 0x027B); - BK4819_WriteRegister(BK4819_REG_10, 0x007A); - BK4819_WriteRegister(BK4819_REG_14, 0x0018); BK4819_WriteRegister(BK4819_REG_49, 0x2A38); BK4819_WriteRegister(BK4819_REG_7B, 0x318C); + BK4819_WriteRegister(BK4819_REG_7C, 0x595E); BK4819_WriteRegister(BK4819_REG_20, 0x8DEF); diff --git a/font5x7.png b/font5x7.png deleted file mode 100644 index 8bb10c0d2cf4c75dd1a918ec33406da3231e3627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27909 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 Y+Ojw4@twz-3=9kmp00i_>zopr05(_BQ~&?~