From 010ee10516367769bcbe0eedf8b0082630a0c46c Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Tue, 31 Oct 2023 22:02:54 +0000 Subject: [PATCH] ctcss phase stuff + fast manual freq up/dn scanning update --- Makefile | 4 + README.md | 2 + app/app.c | 279 ++++++++++++---------- app/main.c | 40 ++-- app/main.h | 2 + app/menu.c | 12 +- app/search.c | 6 +- dcs.c | 18 +- dcs.h | 4 +- driver/bk4819.c | 559 ++++++++++++++++++-------------------------- driver/bk4819.h | 20 +- firmware.bin | Bin 60848 -> 61004 bytes firmware.packed.bin | Bin 60866 -> 61022 bytes misc.c | 4 + misc.h | 3 + radio.c | 70 +++--- radio.h | 2 +- ui/main.c | 43 ++-- ui/menu.c | 12 +- ui/search.c | 4 +- 20 files changed, 532 insertions(+), 552 deletions(-) diff --git a/Makefile b/Makefile index 69ac78d..6ad9d58 100644 --- a/Makefile +++ b/Makefile @@ -36,6 +36,7 @@ ENABLE_ALARM := 0 ENABLE_TX1750 := 0 # MDC1200 2.8 kB ENABLE_MDC1200 := 1 +ENABLE_MDC1200_SHOW_OP_ARG := 1 ENABLE_PWRON_PASSWORD := 0 ENABLE_RESET_AES_KEY := 1 ENABLE_BIG_FREQ := 0 @@ -360,6 +361,9 @@ endif ifeq ($(ENABLE_MDC1200),1) CFLAGS += -DENABLE_MDC1200 endif +ifeq ($(ENABLE_MDC1200_SHOW_OP_ARG),1) + CFLAGS += -DENABLE_MDC1200_SHOW_OP_ARG +endif ifeq ($(ENABLE_PWRON_PASSWORD),1) CFLAGS += -DENABLE_PWRON_PASSWORD endif diff --git a/README.md b/README.md index a95ae7d..5d2d013 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,8 @@ ENABLE_VOX := 0 voice operated transmission ENABLE_REDUCE_LOW_MID_TX_POWER := 1 reduce the low and mid TX power levels (high remains unchanged) ENABLE_ALARM := 0 TX alarms ENABLE_1750HZ := 0 side key 1750Hz TX tone (older style repeater access) +ENABLE_MDC1200 := 0 enable MDC1200 TX/RX + menu TX option +ENABLE_MDC1200_SHOW_OP_ARG := 1 show RX opcode and argument values when MDC1200 is RX'ed ENABLE_PWRON_PASSWORD := 0 include power-on password code ENABLE_RESET_AES_KEY := 1 '1' = reset/clear the AES key stored in the eeprom (only if it's set) ENABLE_BIG_FREQ := 0 big font frequencies (like original QS firmware) diff --git a/app/app.c b/app/app.c index 9dfe7bc..90905f3 100644 --- a/app/app.c +++ b/app/app.c @@ -92,8 +92,7 @@ static void APP_update_rssi(const int vfo) g_current_rssi[vfo] = rssi; -// if (g_squelch_open || g_monitor_enabled) - UI_update_rssi(rssi, vfo); + UI_update_rssi(rssi, vfo); } static void APP_check_for_new_receive(void) @@ -109,7 +108,7 @@ static void APP_check_for_new_receive(void) if (g_css_scan_mode != CSS_SCAN_MODE_OFF && g_rx_reception_mode == RX_MODE_NONE) { // CTCSS/DTS scanning - g_scan_pause_tick_10ms = scan_pause_code_10ms; + g_scan_pause_tick_10ms = scan_pause_code_10ms; g_scan_pause_time_mode = false; g_rx_reception_mode = RX_MODE_DETECTED; } @@ -121,7 +120,7 @@ static void APP_check_for_new_receive(void) if (g_is_noaa_mode) { g_noaa_tick_10ms = noaa_tick_3_10ms; - g_schedule_noaa = false; + g_schedule_noaa = false; } #endif @@ -150,7 +149,7 @@ static void APP_check_for_new_receive(void) g_rx_reception_mode = RX_MODE_DETECTED; done: -// if (g_current_function != FUNCTION_NEW_RECEIVE) + if (g_current_function != FUNCTION_NEW_RECEIVE) { FUNCTION_Select(FUNCTION_NEW_RECEIVE); @@ -162,11 +161,10 @@ done: //BK4819_WriteRegister(0x59, (1u << 12) | fsk_reg59); } #endif - - APP_update_rssi(g_eeprom.rx_vfo); - - g_update_rssi = true; } + APP_update_rssi(g_eeprom.rx_vfo); + g_update_rssi = true; +// } } static void APP_process_new_receive(void) @@ -194,14 +192,14 @@ static void APP_process_new_receive(void) if (IS_NOAA_CHANNEL(g_rx_vfo->channel_save) && g_noaa_tick_10ms > 0) { g_noaa_tick_10ms = 0; - flag = true; + flag = true; } #endif if (g_ctcss_lost && g_current_code_type == CODE_TYPE_CONTINUOUS_TONE) { - flag = true; g_found_ctcss = false; + flag = true; } if (g_cdcss_lost && g_cdcss_code_type == CDCSS_POSITIVE_CODE && (g_current_code_type == CODE_TYPE_DIGITAL || g_current_code_type == CODE_TYPE_REVERSE_DIGITAL)) @@ -229,7 +227,7 @@ static void APP_process_new_receive(void) if (g_rx_reception_mode == RX_MODE_DETECTED) { g_dual_watch_tick_10ms = g_eeprom.scan_hold_time_500ms * 50; - g_rx_reception_mode = RX_MODE_LISTENING; + g_rx_reception_mode = RX_MODE_LISTENING; g_update_status = true; g_update_display = true; @@ -269,7 +267,7 @@ static void APP_process_rx(void) case SCAN_RESUME_TIME: // stay only for a limited time break; case SCAN_RESUME_CARRIER: // stay untill the carrier goes away - g_scan_pause_tick_10ms = g_eeprom.scan_hold_time_500ms * 50; + g_scan_pause_tick_10ms = g_eeprom.scan_hold_time_500ms * 50; g_scan_pause_time_mode = false; break; case SCAN_RESUME_STOP: // stop scan once we find any signal @@ -321,11 +319,11 @@ static void APP_process_rx(void) switch (g_current_code_type) { case CODE_TYPE_NONE: - if (g_eeprom.squelch_level) + if (g_eeprom.squelch_level > 0) { if (g_cxcss_tail_found) { - Mode = END_OF_RX_MODE_TTE; + Mode = END_OF_RX_MODE_TTE; g_cxcss_tail_found = false; } } @@ -339,13 +337,13 @@ static void APP_process_rx(void) else if (!g_found_ctcss) { - g_found_ctcss = true; + g_found_ctcss = true; g_found_ctcss_tick_10ms = 100; // 1 sec } if (g_cxcss_tail_found) { - Mode = END_OF_RX_MODE_TTE; + Mode = END_OF_RX_MODE_TTE; g_cxcss_tail_found = false; } break; @@ -359,7 +357,7 @@ static void APP_process_rx(void) else if (!g_found_cdcss) { - g_found_cdcss = true; + g_found_cdcss = true; g_found_cdcss_tick_10ms = 100; // 1 sec } @@ -412,10 +410,9 @@ Skip: break; case END_OF_RX_MODE_TTE: - if (g_eeprom.tail_note_elimination) { - if (!g_squelch_open && !g_monitor_enabled) + if (!g_monitor_enabled) GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); g_tail_tone_elimination_tick_10ms = 20; // 200ms @@ -470,6 +467,11 @@ bool APP_start_listening(void) if (g_scan_state_dir != SCAN_STATE_DIR_OFF) { // we're RF scanning + g_rx_vfo->freq_in_channel = 0xff; + + if (IS_FREQ_CHANNEL(g_scan_next_channel)) + g_rx_vfo->freq_in_channel = BOARD_find_channel(g_rx_vfo->freq_config_rx.frequency); + switch (g_eeprom.scan_resume_mode) { case SCAN_RESUME_TIME: @@ -629,6 +631,9 @@ void APP_stop_scan(void) g_rx_vfo->freq_config_rx.frequency = g_scan_restore_frequency; + // find the first channel that contains this frequency + g_rx_vfo->freq_in_channel = BOARD_find_channel(g_rx_vfo->freq_config_rx.frequency); + RADIO_ApplyOffset(g_rx_vfo, false); RADIO_ConfigureSquelchAndOutputPower(g_rx_vfo); RADIO_setup_registers(true); @@ -670,6 +675,8 @@ static void APP_next_freq(void) g_rx_vfo->freq_config_rx.frequency = frequency; + g_rx_vfo->freq_in_channel = 0xff; + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) // UART_printf("APP_next_freq %u %u\r\n", frequency, new_band); #endif @@ -864,81 +871,111 @@ void APP_process_radio_interrupts(void) if (g_current_display_screen == DISPLAY_SEARCH) return; - while (BK4819_ReadRegister(0x0C) & (1u << 0)) - { // BK chip interrupt request + while (1) + { // BK4819 chip interrupt request - uint16_t interrupt_bits; + uint16_t int_bits; + + const uint16_t reg_c = BK4819_ReadRegister(0x0C); + if ((reg_c & 1u) == 0) + break; BK4819_WriteRegister(0x02, 0); - interrupt_bits = BK4819_ReadRegister(0x02); + int_bits = BK4819_ReadRegister(0x02); - if (interrupt_bits & BK4819_REG_02_DTMF_5TONE_FOUND) + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("reg_c int_bits %04X\r\n", reg_c, int_bits); + #endif + + if (int_bits & BK4819_REG_02_DTMF_5TONE_FOUND) { // save the RX'ed DTMF character const char c = DTMF_GetCharacter(BK4819_GetDTMF_5TONE_Code()); - if (c != 0xff) + if (c != 0xff && g_current_function != FUNCTION_TRANSMIT) { - if (g_current_function != FUNCTION_TRANSMIT) + if (g_setting_live_dtmf_decoder) { - if (g_setting_live_dtmf_decoder) - { - size_t len = strlen(g_dtmf_rx_live); - if (len >= (sizeof(g_dtmf_rx_live) - 1)) - { // make room - memmove(&g_dtmf_rx_live[0], &g_dtmf_rx_live[1], sizeof(g_dtmf_rx_live) - 1); - len--; - } - g_dtmf_rx_live[len++] = c; - g_dtmf_rx_live[len] = 0; - g_dtmf_rx_live_timeout = dtmf_rx_live_timeout_500ms; // time till we delete it - g_update_display = true; + size_t len = strlen(g_dtmf_rx_live); + if (len >= (sizeof(g_dtmf_rx_live) - 1)) + { // make room + memmove(&g_dtmf_rx_live[0], &g_dtmf_rx_live[1], sizeof(g_dtmf_rx_live) - 1); + len--; } - - #ifdef ENABLE_KILL_REVIVE - if (g_rx_vfo->dtmf_decoding_enable || g_setting_radio_disabled) - #else - if (g_rx_vfo->dtmf_decoding_enable) - #endif - { - if (g_dtmf_rx_index >= (sizeof(g_dtmf_rx) - 1)) - { // make room - memmove(&g_dtmf_rx[0], &g_dtmf_rx[1], sizeof(g_dtmf_rx) - 1); - g_dtmf_rx_index--; - } - g_dtmf_rx[g_dtmf_rx_index++] = c; - g_dtmf_rx[g_dtmf_rx_index] = 0; - g_dtmf_rx_timeout = dtmf_rx_timeout_500ms; // time till we delete it - g_dtmf_rx_pending = true; - - DTMF_HandleRequest(); + g_dtmf_rx_live[len++] = c; + g_dtmf_rx_live[len] = 0; + g_dtmf_rx_live_timeout = dtmf_rx_live_timeout_500ms; // time till we delete it + g_update_display = true; + } + + #ifdef ENABLE_KILL_REVIVE + if (g_rx_vfo->dtmf_decoding_enable || g_setting_radio_disabled) + #else + if (g_rx_vfo->dtmf_decoding_enable) + #endif + { + if (g_dtmf_rx_index >= (sizeof(g_dtmf_rx) - 1)) + { // make room + memmove(&g_dtmf_rx[0], &g_dtmf_rx[1], sizeof(g_dtmf_rx) - 1); + g_dtmf_rx_index--; } + g_dtmf_rx[g_dtmf_rx_index++] = c; + g_dtmf_rx[g_dtmf_rx_index] = 0; + g_dtmf_rx_timeout = dtmf_rx_timeout_500ms; // time till we delete it + g_dtmf_rx_pending = true; + + DTMF_HandleRequest(); } } } - if (interrupt_bits & BK4819_REG_02_CxCSS_TAIL) - g_cxcss_tail_found = true; + if (int_bits & BK4819_REG_02_CxCSS_TAIL) + { + g_cxcss_tail_found = true; + g_ctcss_tail_phase_shift_rx = (reg_c >> 12) & 3u; - if (interrupt_bits & BK4819_REG_02_CDCSS_LOST) + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("cxcss tail %u\r\n", g_ctcss_tail_phase_shift_rx); + #endif + } + + if (int_bits & BK4819_REG_02_CDCSS_LOST) { g_cdcss_lost = true; g_cdcss_code_type = BK4819_get_CDCSS_code_type(); + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("cdcss lost %u\r\n", g_cdcss_code_type); + #endif } - if (interrupt_bits & BK4819_REG_02_CDCSS_FOUND) + if (int_bits & BK4819_REG_02_CDCSS_FOUND) + { g_cdcss_lost = false; - if (interrupt_bits & BK4819_REG_02_CTCSS_LOST) + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_SendText("cdcss found\r\n"); + #endif + } + + if (int_bits & BK4819_REG_02_CTCSS_LOST) + { g_ctcss_lost = true; - if (interrupt_bits & BK4819_REG_02_CTCSS_FOUND) + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_SendText("cdcss lost\r\n"); + #endif + } + + if (int_bits & BK4819_REG_02_CTCSS_FOUND) + { g_ctcss_lost = false; - #ifdef ENABLE_MDC1200 - MDC1200_process_rx(interrupt_bits); - #endif + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_SendText("ctcss found\r\n"); + #endif + } #ifdef ENABLE_VOX - if (interrupt_bits & BK4819_REG_02_VOX_LOST) + if (int_bits & BK4819_REG_02_VOX_LOST) { g_vox_lost = true; g_vox_pause_tick_10ms = 10; @@ -960,14 +997,14 @@ void APP_process_radio_interrupts(void) } } - if (interrupt_bits & BK4819_REG_02_VOX_FOUND) + if (int_bits & BK4819_REG_02_VOX_FOUND) { g_vox_lost = false; g_vox_pause_tick_10ms = 0; } #endif - if (interrupt_bits & BK4819_REG_02_SQUELCH_CLOSED) + if (int_bits & BK4819_REG_02_SQUELCH_CLOSED) { g_squelch_open = false; @@ -986,7 +1023,7 @@ void APP_process_radio_interrupts(void) g_update_display = true; } - if (interrupt_bits & BK4819_REG_02_SQUELCH_OPENED) + if (int_bits & BK4819_REG_02_SQUELCH_OPENED) { g_squelch_open = true; @@ -1002,6 +1039,10 @@ void APP_process_radio_interrupts(void) g_update_display = true; } + + #ifdef ENABLE_MDC1200 + MDC1200_process_rx(int_bits); + #endif } } @@ -1016,13 +1057,13 @@ void APP_end_tx(void) //if (g_eeprom.tail_note_elimination && g_eeprom.repeater_tail_tone_elimination > 0) if (g_eeprom.tail_note_elimination) { // send the CTCSS/DCS tail tone - allows the receivers to mute the usual FM squelch tail/crash - RADIO_EnableCxCSS(); + RADIO_enable_CxCSS_tail(); } #if 1 else { // TX a short blank carrier after disabling the CTCSS/CDCSS // this gives the receivers time to mute their RX audio before we drop carrier - BK4819_ExitSubAu(); + BK4819_disable_sub_audible(); SYSTEM_DelayMs(200); } #endif @@ -1031,10 +1072,7 @@ void APP_end_tx(void) RADIO_setup_registers(false); if (g_monitor_enabled) - APP_start_listening(); - - if (g_squelch_open || g_monitor_enabled) - GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); } #ifdef ENABLE_VOX @@ -1089,16 +1127,14 @@ void APP_end_tx(void) APP_end_tx(); if (g_eeprom.repeater_tail_tone_elimination == 0) - { - //if (g_current_function != FUNCTION_FOREGROUND) - FUNCTION_Select(FUNCTION_FOREGROUND); - } + FUNCTION_Select(FUNCTION_FOREGROUND); else g_rtte_count_down = g_eeprom.repeater_tail_tone_elimination * 10; } g_update_status = true; g_update_display = true; + g_flag_end_tx = false; } return; @@ -1124,7 +1160,7 @@ void APP_end_tx(void) // called every 10ms void APP_check_keys(void) { - const bool ptt_pressed = !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT) && (g_serial_config_tick_500ms == 0) && g_setting_tx_enable; + const bool ptt_pressed = !GPIO_CheckBit(&GPIOC->DATA, GPIOC_PIN_PTT); key_code_t key; @@ -1138,43 +1174,48 @@ void APP_check_keys(void) if (ptt_pressed) { // PTT pressed - #ifdef ENABLE_KILL_REVIVE - if (!g_setting_radio_disabled) - #endif + + if (!g_ptt_is_pressed && g_serial_config_tick_500ms == 0 && g_setting_tx_enable) { - #ifdef ENABLE_AIRCOPY - if (!g_ptt_is_pressed && g_current_display_screen != DISPLAY_AIRCOPY) - #else - if (!g_ptt_is_pressed) - #endif + #ifdef ENABLE_KILL_REVIVE + if (!g_setting_radio_disabled) + #endif { - if (++g_ptt_debounce >= 3) // 30ms - { // start TX'ing - - g_boot_tick_10ms = 0; // cancel the boot-up screen - g_ptt_is_pressed = true; - g_ptt_was_released = false; - g_ptt_debounce = 0; - - APP_process_key(KEY_PTT, true, false); - - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) -// UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released); - #endif + #ifdef ENABLE_AIRCOPY + if (!g_ptt_is_pressed && g_current_display_screen != DISPLAY_AIRCOPY) + #else + if (!g_ptt_is_pressed) + #endif + { + if (++g_ptt_debounce >= 3) // 30ms debounce + { // start TX'ing + + g_boot_tick_10ms = 0; // cancel the boot-up screen + g_ptt_is_pressed = ptt_pressed; + g_ptt_was_released = false; + g_ptt_debounce = 0; + + APP_process_key(KEY_PTT, true, false); + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) +// UART_printf(" ptt key %3u %u %u\r\n", KEY_PTT, g_ptt_is_pressed, g_ptt_was_released); + #endif + } } + else + g_ptt_debounce = 0; } - else - g_ptt_debounce = 0; } } else { // PTT released - if (g_ptt_is_pressed) + + if (g_ptt_is_pressed && g_current_function == FUNCTION_TRANSMIT) { - if (++g_ptt_debounce >= 3) // 30ms + if (++g_ptt_debounce >= 3 || g_serial_config_tick_500ms > 0 || !g_setting_tx_enable) // 30ms debounce { // stop TX'ing - g_ptt_is_pressed = false; +// g_ptt_is_pressed = false; g_ptt_was_released = true; g_ptt_debounce = 0; @@ -1186,7 +1227,12 @@ void APP_check_keys(void) } } else + { g_ptt_debounce = 0; + + if (g_ptt_is_pressed && !ptt_pressed) + g_ptt_is_pressed = false; + } } // ***************** @@ -1293,17 +1339,19 @@ void APP_check_keys(void) #else APP_process_key(g_key_prev, true, g_key_held); #endif - - //g_update_status = true; - //g_update_display = true; } } else if (key == KEY_UP || key == KEY_DOWN) { // only the up and down keys are repeatable - if (++g_key_debounce_repeat >= (key_long_press_10ms + key_repeat_10ms)) + + // go much faster if the user is moving up/down freq/channel + const uint8_t repeat_10ms = (g_manual_scanning && g_monitor_enabled && g_current_display_screen == DISPLAY_MAIN) ? 1 : key_repeat_10ms; + + if (++g_key_debounce_repeat >= (key_long_press_10ms + repeat_10ms)) { // key repeat - g_key_debounce_repeat -= key_repeat_10ms; + + g_key_debounce_repeat = key_long_press_10ms; #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) // UART_printf("rept key %3u %3u, %3u %3u, %u\r\n", key, g_key_prev, g_key_debounce_press, g_key_debounce_repeat, g_key_held); @@ -1317,9 +1365,6 @@ void APP_check_keys(void) #else APP_process_key(g_key_prev, true, g_key_held); #endif - - //g_update_status = true; - //g_update_display = true; } } } @@ -1373,7 +1418,7 @@ void APP_cancel_user_input_modes(void) if (g_eeprom.alarm_mode == ALARM_MODE_TONE) { RADIO_tx_eot(); - RADIO_EnableCxCSS(); + RADIO_enable_CxCSS_tail(); } #ifdef ENABLE_VOX @@ -1652,7 +1697,7 @@ void APP_process_transmit(void) { g_alarm_state = ALARM_STATE_ALARM; - RADIO_EnableCxCSS(); + RADIO_enable_CxCSS_tail(); BK4819_SetupPowerAmplifier(0, 0); BK4819_set_GPIO_pin(BK4819_GPIO1_PIN29_PA_ENABLE, false); // PA off BK4819_Enable_AfDac_DiscMode_TxDsp(); diff --git a/app/main.c b/app/main.c index b7b05df..9a8ee3c 100644 --- a/app/main.c +++ b/app/main.c @@ -43,6 +43,8 @@ #include "ui/menu.h" #include "ui/ui.h" +bool g_manual_scanning; + bool scanning_paused(void) { if ((g_scan_state_dir != SCAN_STATE_DIR_OFF || g_eeprom.dual_watch != DUAL_WATCH_OFF) && @@ -862,15 +864,15 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t Directio if (key_pressed && !key_held) { // key just pressed - g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; + g_manual_scanning = false; } if (!key_pressed) - { - if (g_scan_state_dir == SCAN_STATE_DIR_OFF && - (Channel <= USER_CHANNEL_LAST || IS_FREQ_CHANNEL(Channel))) - { // key released + { // key released + if (g_scan_state_dir == SCAN_STATE_DIR_OFF && (Channel <= USER_CHANNEL_LAST || IS_FREQ_CHANNEL(Channel))) + { #ifdef ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS if (key_held && !monitor_was_enabled) { // re-enable the squelch @@ -894,6 +896,8 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t Directio // UART_printf("save chan %u\r\n", g_tx_vfo->channel_save); #endif } + + g_manual_scanning = false; } if (key_held || !key_pressed) @@ -985,6 +989,7 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t Directio if (key_held && key_pressed && !monitor_was_enabled) { // open the squelch if the user holds the key down + g_manual_scanning = true; g_monitor_enabled = true; GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); // APP_start_listening(); @@ -1002,18 +1007,6 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t Directio g_tx_vfo->freq_in_channel = 0xff; - #ifdef ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS - if (!key_held && key_pressed) - monitor_was_enabled = g_monitor_enabled; - - if (key_held && key_pressed && !monitor_was_enabled) - { // open the squelch if the user holds the key down - g_monitor_enabled = true; - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); -// APP_start_listening(); - } - #endif - Next = RADIO_FindNextChannel(Channel + Direction, Direction, false, 0); if (Next == 0xFF) return; @@ -1021,6 +1014,19 @@ void MAIN_Key_UP_DOWN(bool key_pressed, bool key_held, scan_state_dir_t Directio if (Channel == Next) return; + #ifdef ENABLE_SQ_OPEN_WITH_UP_DN_BUTTS + if (!key_held && key_pressed) + monitor_was_enabled = g_monitor_enabled; + + if (key_held && key_pressed && !monitor_was_enabled) + { // open the squelch if the user holds the key down + g_manual_scanning = true; + g_monitor_enabled = true; + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); +// APP_start_listening(); + } + #endif + g_eeprom.user_channel[g_eeprom.tx_vfo] = Next; g_eeprom.screen_channel[g_eeprom.tx_vfo] = Next; diff --git a/app/main.h b/app/main.h index 04ac80a..7b23a59 100644 --- a/app/main.h +++ b/app/main.h @@ -19,6 +19,8 @@ #include "driver/keyboard.h" +extern bool g_manual_scanning; + void MAIN_process_key(key_code_t Key, bool bKeyPressed, bool bKeyHeld); #endif diff --git a/app/menu.c b/app/menu.c index bc61da5..3880bba 100644 --- a/app/menu.c +++ b/app/menu.c @@ -177,13 +177,13 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_TX_CDCSS: *pMin = 0; *pMax = 208; - //*pMax = (ARRAY_SIZE(DCS_OPTIONS) * 2); + //*pMax = (ARRAY_SIZE(DCS_CODE_LIST) * 2); break; case MENU_RX_CTCSS: case MENU_TX_CTCSS: *pMin = 0; - *pMax = ARRAY_SIZE(CTCSS_OPTIONS) - 1; + *pMax = ARRAY_SIZE(CTCSS_TONE_LIST) - 1; break; case MENU_BANDWIDTH: @@ -477,7 +477,7 @@ void MENU_AcceptSetting(void) pConfig->code = Code; pConfig->code_type = CODE_TYPE_NONE; - BK4819_ExitSubAu(); + BK4819_disable_sub_audible(); } else { @@ -485,7 +485,7 @@ void MENU_AcceptSetting(void) Code = g_sub_menu_selection - 1; pConfig->code = Code; - BK4819_SetCTCSSFrequency(CTCSS_OPTIONS[Code]); + BK4819_set_CTCSS_freq(CTCSS_TONE_LIST[Code]); } g_request_save_channel = 1; @@ -910,10 +910,10 @@ void MENU_SelectNextCode(void) if (g_menu_cursor == MENU_RX_CDCSS) UpperLimit = 208; - //UpperLimit = ARRAY_SIZE(DCS_OPTIONS); + //UpperLimit = ARRAY_SIZE(DCS_CODE_LIST); else if (g_menu_cursor == MENU_RX_CTCSS) - UpperLimit = ARRAY_SIZE(CTCSS_OPTIONS) - 1; + UpperLimit = ARRAY_SIZE(CTCSS_TONE_LIST) - 1; else return; diff --git a/app/search.c b/app/search.c index f8cb7c1..365231e 100644 --- a/app/search.c +++ b/app/search.c @@ -450,7 +450,7 @@ void SEARCH_process(void) // // RF carrier found, move on to CTCSS/CDCSS search - BK4819_SetScanFrequency(g_search_frequency); + BK4819_set_scan_frequency(g_search_frequency); g_search_css_result_type = CODE_TYPE_NONE; g_search_css_result_code = 0xff; @@ -576,7 +576,7 @@ void SEARCH_process(void) if (g_search_css_state == SEARCH_CSS_STATE_OFF || g_search_css_state == SEARCH_CSS_STATE_SCANNING) { // re-start scan - BK4819_SetScanFrequency(g_search_frequency); + BK4819_set_scan_frequency(g_search_frequency); g_search_tick_10ms = search_10ms; } @@ -630,7 +630,7 @@ void SEARCH_Start(void) BK4819_set_rf_filter_path(g_search_frequency); - BK4819_SetScanFrequency(g_search_frequency); + BK4819_set_scan_frequency(g_search_frequency); } else { diff --git a/dcs.c b/dcs.c index a5fefd5..b5a4f56 100644 --- a/dcs.c +++ b/dcs.c @@ -21,7 +21,7 @@ #endif // CTCSS Hz * 10 -const uint16_t CTCSS_OPTIONS[50] = { +const uint16_t CTCSS_TONE_LIST[50] = { 670, 693, 719, 744, 770, 797, 825, 854, 885, 915, 948, 974, 1000, 1035, 1072, 1109, 1148, 1188, 1230, 1273, 1318, 1365, 1413, 1462, 1514, 1567, 1598, 1622, 1655, 1679, @@ -29,7 +29,7 @@ const uint16_t CTCSS_OPTIONS[50] = { 2035, 2065, 2107, 2181, 2257, 2291, 2336, 2418, 2503, 2541 }; -const uint16_t DCS_OPTIONS[104] = { +const uint16_t DCS_CODE_LIST[104] = { 0x0013, 0x0015, 0x0016, 0x0019, 0x001A, 0x001E, 0x0023, 0x0027, 0x0029, 0x002B, 0x002C, 0x0035, 0x0039, 0x003A, 0x003B, 0x003C, 0x004C, 0x004D, 0x004E, 0x0052, 0x0055, 0x0059, 0x005A, 0x005C, @@ -60,7 +60,7 @@ static uint32_t DCS_CalculateGolay(uint32_t CodeWord) uint32_t DCS_GetGolayCodeWord(dcs_code_type_t code_type, uint8_t Option) { - uint32_t code = DCS_CalculateGolay(DCS_OPTIONS[Option] + 0x800U); + uint32_t code = DCS_CalculateGolay(DCS_CODE_LIST[Option] + 0x800U); if (code_type == CODE_TYPE_REVERSE_DIGITAL) code ^= 0x7FFFFF; return code; @@ -76,8 +76,8 @@ uint8_t DCS_GetCdcssCode(uint32_t Code) if (((Code >> 9) & 0x7U) == 4) { unsigned int j; - for (j = 0; j < ARRAY_SIZE(DCS_OPTIONS); j++) - if (DCS_OPTIONS[j] == (Code & 0x1FF)) + for (j = 0; j < ARRAY_SIZE(DCS_CODE_LIST); j++) + if (DCS_CODE_LIST[j] == (Code & 0x1FF)) if (DCS_GetGolayCodeWord(2, j) == Code) return j; } @@ -95,13 +95,13 @@ uint8_t DCS_GetCtcssCode(int Code) { unsigned int i; uint8_t Result = 0xFF; - int Smallest = ARRAY_SIZE(CTCSS_OPTIONS); + int Smallest = ARRAY_SIZE(CTCSS_TONE_LIST); - for (i = 0; i < ARRAY_SIZE(CTCSS_OPTIONS); i++) + for (i = 0; i < ARRAY_SIZE(CTCSS_TONE_LIST); i++) { - int Delta = Code - CTCSS_OPTIONS[i]; + int Delta = Code - CTCSS_TONE_LIST[i]; if (Delta < 0) - Delta = -(Code - CTCSS_OPTIONS[i]); + Delta = -(Code - CTCSS_TONE_LIST[i]); if (Smallest > Delta) { Smallest = Delta; diff --git a/dcs.h b/dcs.h index f237f7a..8940350 100644 --- a/dcs.h +++ b/dcs.h @@ -34,8 +34,8 @@ enum { CDCSS_NEGATIVE_CODE = 2U, }; -extern const uint16_t CTCSS_OPTIONS[50]; -extern const uint16_t DCS_OPTIONS[104]; +extern const uint16_t CTCSS_TONE_LIST[50]; +extern const uint16_t DCS_CODE_LIST[104]; uint32_t DCS_GetGolayCodeWord(dcs_code_type_t code_type, uint8_t Option); uint8_t DCS_GetCdcssCode(uint32_t Code); diff --git a/driver/bk4819.c b/driver/bk4819.c index 5250139..4bb61e4 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -51,8 +51,9 @@ void BK4819_Init(void) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); - BK4819_WriteRegister(0x00, 0x8000); - BK4819_WriteRegister(0x00, 0x0000); + // reset the chip + BK4819_WriteRegister(0x00, (1u << 15)); + BK4819_WriteRegister(0x00, 0); BK4819_WriteRegister(0x37, 0x1D0F); BK4819_WriteRegister(0x36, 0x0022); @@ -92,7 +93,7 @@ void BK4819_Init(void) (58u << 4) | // AF Rx Gain-2 ( 8u << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - BK4819_sub_audible(); + BK4819_config_sub_audible(); #if 1 const uint8_t dtmf_coeffs[] = {111, 107, 103, 98, 80, 71, 58, 44, 65, 55, 37, 23, 228, 203, 181, 159}; @@ -395,172 +396,6 @@ void BK4819_set_GPIO_pin(bk4819_gpio_pin_t Pin, bool bSet) BK4819_WriteRegister(0x33, gBK4819_GpioOutState); } -void BK4819_SetCDCSSCodeWord(uint32_t CodeWord) -{ - // REG_51 - // - // <15> 0 - // 1 = Enable TxCTCSS/CDCSS - // 0 = Disable - // - // <14> 0 - // 1 = GPIO0Input for CDCSS - // 0 = Normal Mode (for BK4819 v3) - // - // <13> 0 - // 1 = Transmit negative CDCSS code - // 0 = Transmit positive CDCSS code - // - // <12> 0 CTCSS/CDCSS mode selection - // 1 = CTCSS - // 0 = CDCSS - // - // <11> 0 CDCSS 24/23bit selection - // 1 = 24bit - // 0 = 23bit - // - // <10> 0 1050HzDetectionMode - // 1 = 1050/4 Detect Enable, CTC1 should be set to 1050/4 Hz - // - // <9> 0 Auto CDCSS Bw Mode - // 1 = Disable - // 0 = Enable - // - // <8> 0 Auto CTCSS Bw Mode - // 0 = Enable - // 1 = Disable - // - // <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning - // 0 = min - // 127 = max - - // Enable CDCSS - // Transmit positive CDCSS code - // CDCSS Mode - // CDCSS 23bit - // Enable Auto CDCSS Bw Mode - // Enable Auto CTCSS Bw Mode - // CTCSS/CDCSS Tx Gain1 Tuning = 51 - // - BK4819_WriteRegister(0x51, - BK4819_REG_51_ENABLE_CxCSS | - BK4819_REG_51_GPIO6_PIN2_NORMAL | - BK4819_REG_51_TX_CDCSS_POSITIVE | - BK4819_REG_51_MODE_CDCSS | - BK4819_REG_51_CDCSS_23_BIT | - BK4819_REG_51_1050HZ_NO_DETECTION | - BK4819_REG_51_AUTO_CDCSS_BW_ENABLE | - BK4819_REG_51_AUTO_CTCSS_BW_ENABLE | - (51u << BK4819_REG_51_SHIFT_CxCSS_TX_GAIN1)); - - // REG_07 <15:0> - // - // When <13> = 0 for CTC1 - // <12:0> = CTC1 frequency control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 1 for CTC2 (Tail 55Hz Rx detection) - // <12:0> = CTC2 (should below 100Hz) frequency control word = - // 25391 / freq(Hz) for XTAL 13M/26M or - // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 2 for CDCSS 134.4Hz - // <12:0> = CDCSS baud rate frequency (134.4Hz) control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - BK4819_WriteRegister(0x07, BK4819_REG_07_MODE_CTC1 | 2775u); - - // REG_08 <15:0> <15> = 1 for CDCSS high 12bit - // <15> = 0 for CDCSS low 12bit - // <11:0> = CDCSShigh/low 12bit code - // - BK4819_WriteRegister(0x08, (0u << 15) | ((CodeWord >> 0) & 0x0FFF)); // LS 12-bits - BK4819_WriteRegister(0x08, (1u << 15) | ((CodeWord >> 12) & 0x0FFF)); // MS 12-bits -} - -void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord) -{ - // REG_51 <15> 0 1 = Enable TxCTCSS/CDCSS 0 = Disable - // REG_51 <14> 0 1 = GPIO0Input for CDCSS 0 = Normal Mode.(for BK4819v3) - // REG_51 <13> 0 1 = Transmit negative CDCSS code 0 = Transmit positive CDCSScode - // REG_51 <12> 0 CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS - // REG_51 <11> 0 CDCSS 24/23bit selection 1 = 24bit 0 = 23bit - // REG_51 <10> 0 1050HzDetectionMode 1 = 1050/4 Detect Enable, CTC1 should be set to 1050/4 Hz - // REG_51 <9> 0 Auto CDCSS Bw Mode 1 = Disable 0 = Enable. - // REG_51 <8> 0 Auto CTCSS Bw Mode 0 = Enable 1 = Disable - // REG_51 <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning 0 = min 127 = max - - uint16_t Config; - if (FreqControlWord == 2625) - { // Enables 1050Hz detection mode - // Enable TxCTCSS - // CTCSS Mode - // 1050/4 Detect Enable - // Enable Auto CDCSS Bw Mode - // Enable Auto CTCSS Bw Mode - // CTCSS/CDCSS Tx Gain1 Tuning = 74 - // - Config = 0x944A; // 1 0 0 1 0 1 0 0 0 1001010 - } - else - { // Enable TxCTCSS - // CTCSS Mode - // Enable Auto CDCSS Bw Mode - // Enable Auto CTCSS Bw Mode - // CTCSS/CDCSS Tx Gain1 Tuning = 74 - // - Config = 0x904A; // 1 0 0 1 0 0 0 0 0 1001010 - } - BK4819_WriteRegister(0x51, Config); - - // REG_07 <15:0> - // - // When <13> = 0 for CTC1 - // <12:0> = CTC1 frequency control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 1 for CTC2 (Tail RX detection) - // <12:0> = CTC2 (should below 100Hz) frequency control word = - // 25391 / freq(Hz) for XTAL 13M/26M or - // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 2 for CDCSS 134.4Hz - // <12:0> = CDCSS baud rate frequency (134.4Hz) control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - BK4819_WriteRegister(0x07, BK4819_REG_07_MODE_CTC1 | (((FreqControlWord * 206488u) + 50000u) / 100000u)); // with rounding -} - -// freq_10Hz is CTCSS Hz * 10 -void BK4819_SetTailDetection(const uint32_t freq_10Hz) -{ - // REG_07 <15:0> - // - // When <13> = 0 for CTC1 - // <12:0> = CTC1 frequency control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 1 for CTC2 (Tail RX detection) - // <12:0> = CTC2 (should below 100Hz) frequency control word = - // 25391 / freq(Hz) for XTAL 13M/26M or - // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M - // - // When <13> = 2 for CDCSS 134.4Hz - // <12:0> = CDCSS baud rate frequency (134.4Hz) control word = - // freq(Hz) * 20.64888 for XTAL 13M/26M or - // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M - // - BK4819_WriteRegister(0x07, BK4819_REG_07_MODE_CTC2 | ((253910 + (freq_10Hz / 2)) / freq_10Hz)); // with rounding - -#ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT -#endif -} - void BK4819_EnableVox(uint16_t VoxEnableThreshold, uint16_t VoxDisableThreshold) { //VOX Algorithm @@ -1251,19 +1086,8 @@ void BK4819_PrepareTransmit(void) { // BK4819_ExitBypass(); BK4819_ExitTxMute(); - BK4819_sub_audible(); -} -void BK4819_sub_audible(void) -{ - BK4819_WriteRegister(0x37, 0x1D0F); // 0001110100001111 - - #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT - BK4819_GenTail(2); // 180 deg - #else -// BK4819_GenTail(4); - BK4819_WriteRegister(0x52, (0u << 15) | (0u << 13) | (0u << 12) | (10u << 6) | (15u << 0)); // 0x028F); // 0 00 0 001010 001111 - #endif + BK4819_config_sub_audible(); BK4819_WriteRegister(0x30, 0); BK4819_WriteRegister(0x30, @@ -1280,48 +1104,6 @@ void BK4819_sub_audible(void) 0); } -void BK4819_ExitSubAu(void) -{ - // REG_51 - // - // <15> 0 - // 1 = Enable TxCTCSS/CDCSS - // 0 = Disable - // - // <14> 0 - // 1 = GPIO0Input for CDCSS - // 0 = Normal Mode (for BK4819 v3) - // - // <13> 0 - // 1 = Transmit negative CDCSS code - // 0 = Transmit positive CDCSS code - // - // <12> 0 CTCSS/CDCSS mode selection - // 1 = CTCSS - // 0 = CDCSS - // - // <11> 0 CDCSS 24/23bit selection - // 1 = 24bit - // 0 = 23bit - // - // <10> 0 1050HzDetectionMode - // 1 = 1050/4 Detect Enable, CTC1 should be set to 1050/4 Hz - // - // <9> 0 Auto CDCSS Bw Mode - // 1 = Disable - // 0 = Enable - // - // <8> 0 Auto CTCSS Bw Mode - // 0 = Enable - // 1 = Disable - // - // <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning - // 0 = min - // 127 = max - // - BK4819_WriteRegister(0x51, 0); -} - void BK4819_Conditional_RX_TurnOn(void) { if (g_rx_idle_mode) @@ -1499,44 +1281,96 @@ void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency) BK4819_ExitTxMute(); } -void BK4819_GenTail(const unsigned int tail) +void BK4819_disable_sub_audible(void) +{ + BK4819_WriteRegister(0x51, 0); +} + +void BK4819_config_sub_audible(void) +{ +// #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT +// BK4819_gen_tail(2); // 180 deg +// #else +// BK4819_gen_tail(4); + BK4819_WriteRegister(0x52, (0u << 15) | (0u << 13) | (0u << 12) | (10u << 6) | (15u << 0)); // 0x028F); // 0 00 0 001010 001111 +// #endif +} + +// freq_10Hz is CTCSS Hz * 10 +void BK4819_set_tail_detection(const uint32_t freq_10Hz) +{ + // REG_07 <15:0> + // + // <15) ??? + // + // <14:13> 0 = CTC-1, 1 = CTC-2 (tail detection), 2 = CDCSS 134.4Hz + // + // if <14:13> == 0 + // <12:0> CTC1 frequency control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + // if <14:13> == 1 + // <12:0> CTC2 (should below 100Hz) frequency control word = + // 25391 / freq(Hz) for XTAL 13M/26M or + // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M + // + // if <14:13> == 2 + // <12:0> CDCSS baud rate frequency (134.4Hz) control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT + BK4819_WriteRegister(0x07, (0u << 13) | (((freq_10Hz * 206488u) + 50000u) / 100000u)); + #else + BK4819_WriteRegister(0x07, (1u << 13) | ((253910 + (freq_10Hz / 2)) / freq_10Hz)); // with rounding + #endif +} + +void BK4819_gen_tail(const unsigned int tail) { // REG_52 // - // <15> 0 120/180/240 degree shift CTCSS or 134.4Hz Tail when CDCSS mode - // 0 = Normal - // 1 = Enable + // <15> degree shift CTCSS or 134.4Hz tail CDCSS + // 0 = normal + // 1 = enable // - // <14:13> 0 CTCSS tail mode selection (only valid when REG_52 <15> = 1) - // 00 = for 134.4Hz CTCSS Tail when CDCSS mode - // 01 = CTCSS0 120° phase shift - // 10 = CTCSS0 180° phase shift - // 11 = CTCSS0 240° phase shift + // <14:13> CTCSS tail mode selection (only valid when <15> == 1) + // 0 = for 134.4Hz CTCSS Tail when CDCSS mode + // 1 = CTCSS0 120° phase shift + // 2 = CTCSS0 180° phase shift + // 3 = CTCSS0 240° phase shift // - // <12> 0 CTCSS Detection Threshold Mode + // <12> CTCSS Detection Threshold Mode // 1 = ~0.1% - // 0 = 0.1 Hz + // 0 = 0.1Hz // // <11:6> 10 CTCSS found detect threshold 0 ~ 63 // - // <5:0> 15 CTCSS lost detect threshold 0 ~ 63 + // <5:0> 15 CTCSS lost detect threshold 0 ~ 63 uint16_t tail_phase_shift = 1; uint16_t ctcss_tail_mode_selection = 0; uint16_t ctcss_detect_threshold_mode = 0; -// uint16_t ctcss_found_threshold = 10; -// uint16_t ctcss_lost_threshold = 15; - uint16_t ctcss_found_threshold = 20; - uint16_t ctcss_lost_threshold = 30; - + #if 0 + // original QS setting + uint16_t ctcss_found_threshold = 10; + uint16_t ctcss_lost_threshold = 15; + #else + // increase it to help reduce false detections when doing CTCSS/CDCSS searching + uint16_t ctcss_found_threshold = 15; + uint16_t ctcss_lost_threshold = 23; + #endif + switch (tail) { case 0: // 134.4Hz CTCSS Tail +// ctcss_tail_mode_selection = 0; break; case 1: // 120° phase shift ctcss_tail_mode_selection = 1; break; - case 2: // 180° phase shift + case 2: // 180° phase shift 1 10 0 001010 001111 ctcss_tail_mode_selection = 2; break; case 3: // 240° phase shift @@ -1558,60 +1392,148 @@ void BK4819_GenTail(const unsigned int tail) (ctcss_lost_threshold << 0)); } -void BK4819_EnableCDCSS(void) +void BK4819_set_CDCSS_code(const uint32_t control_word) { - BK4819_GenTail(0); // CTC134 - BK4819_WriteRegister(0x51, 0x804A); + BK4819_WriteRegister(0x51, + ( 1u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + ( 0u << 14) | // GPIO input for CDCSS 0 = normal (for BK4819v3) + ( 0u << 13) | // TX CDCSS code 1 = negative 0 = positive + ( 0u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + ( 0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + ( 0u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + ( 1u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + ( 1u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + ( 0u << 7) | // ??? + (51u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 + + // REG_07 <15:0> + // + // <15) ??? + // + // <14:13> 0 = CTC-1, 1 = CTC-2 (tail detection), 2 = CDCSS 134.4Hz + // + // <14:13> == 0 + // <12:0> CTC1 frequency control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + // <14:13> == 1 + // <12:0> CTC2 (should below 100Hz) frequency control word = + // 25391 / freq(Hz) for XTAL 13M/26M or + // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M + // + // <14:13> == 2 + // <12:0> CDCSS baud rate frequency (134.4Hz) control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + BK4819_WriteRegister(0x07, (0u << 13) | 2775u); + + // REG_08 <15:0> <15> = 1 for CDCSS high 12bit + // <15> = 0 for CDCSS low 12bit + // <11:0> = CDCSShigh/low 12bit code + // + BK4819_WriteRegister(0x08, (0u << 15) | ((control_word >> 0) & 0x0FFF)); // LS 12-bits + BK4819_WriteRegister(0x08, (1u << 15) | ((control_word >> 12) & 0x0FFF)); // MS 12-bits } -void BK4819_EnableCTCSS(void) +void BK4819_set_CTCSS_freq(const uint32_t control_word) +{ + if (control_word == 0) + { // NOAA 1050Hz tone stuff + BK4819_WriteRegister(0x51, + ( 1u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + ( 0u << 14) | // GPIO input for CDCSS 0 = normal (for BK4819v3) + ( 0u << 13) | // TX CDCSS code 1 = negative 0 = positive + ( 1u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + ( 0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + ( 1u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + ( 0u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + ( 0u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + ( 0u << 7) | // ??? + (74u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 + } + else + { // normal CTCSS + BK4819_WriteRegister(0x51, + ( 1u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + ( 0u << 14) | // GPIO input for CDCSS 0 = normal (for BK4819v3) + ( 0u << 13) | // TX CDCSS code 1 = negative 0 = positive + ( 1u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + ( 0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + ( 0u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + ( 0u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + ( 0u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + ( 0u << 7) | // ??? + (74u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 + } + + // REG_07 <15:0> + // + // <15) 0 + // + // <14:13> 0 = CTC-1, 1 = CTC-2 (tail detection), 2 = CDCSS 134.4Hz + // + // if <14:13> == 0 + // <12:0> CTC1 frequency control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + // if <14:13> == 1 + // <12:0> CTC2 (should be below 100Hz) frequency control word = + // 25391 / freq(Hz) for XTAL 13M/26M or + // 25000 / freq(Hz) for XTAL 12.8M/19.2M/25.6M/38.4M + // + // if <14:13> == 2 + // <12:0> CDCSS baud rate frequency (134.4Hz) control word = + // freq(Hz) * 20.64888 for XTAL 13M/26M or + // freq(Hz) * 20.97152 for XTAL 12.8M/19.2M/25.6M/38.4M + // + #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT + BK4819_WriteRegister(0x07, (0u << 13) | (((control_word * 206488u) + 50000u) / 100000u)); + #else + BK4819_WriteRegister(0x07, (1u << 13) | ((253910 + (control_word / 2)) / control_word)); + #endif +} + +void BK4819_enable_CDCSS_tail(void) +{ + BK4819_gen_tail(0); // CTC134 + + BK4819_WriteRegister(0x51, // 0x804A); // 1 0 0 0 0 0 0 0 0 1001010 + ( 1u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + ( 0u << 14) | // GPIO0 input for CDCSS 0 = normal (for BK4819v3) + ( 0u << 13) | // TX CDCSS code 1 = negative 0 = positive + ( 0u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + ( 0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + ( 0u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + ( 0u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + ( 0u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + ( 0u << 7) | // ??? + (74u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 +} + +void BK4819_enable_CTCSS_tail(void) { #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT - //BK4819_GenTail(1); // 120° phase shift - BK4819_GenTail(2); // 180° phase shift - //BK4819_GenTail(3); // 240° phase shift + //BK4819_gen_tail(1); // 120° phase shift + BK4819_gen_tail(2); // 180° phase shift + //BK4819_gen_tail(3); // 240° phase shift #else - BK4819_GenTail(4); // 55Hz tone freq + BK4819_gen_tail(4); // 55Hz tone freq #endif - // REG_51 - // - // <15> 0 - // 1 = Enable TxCTCSS/CDCSS - // 0 = Disable - // - // <14> 0 - // 1 = GPIO0Input for CDCSS - // 0 = Normal Mode (for BK4819 v3) - // - // <13> 0 - // 1 = Transmit negative CDCSS code - // 0 = Transmit positive CDCSS code - // - // <12> 0 CTCSS/CDCSS mode selection - // 1 = CTCSS - // 0 = CDCSS - // - // <11> 0 CDCSS 24/23bit selection - // 1 = 24bit - // 0 = 23bit - // - // <10> 0 1050HzDetectionMode - // 1 = 1050/4 Detect Enable, CTC1 should be set to 1050/4 Hz - // - // <9> 0 Auto CDCSS Bw Mode - // 1 = Disable - // 0 = Enable - // - // <8> 0 Auto CTCSS Bw Mode - // 0 = Enable - // 1 = Disable - // - // <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning - // 0 = min - // 127 = max - - BK4819_WriteRegister(0x51, 0x904A); // 1 0 0 1 0 0 0 0 0 1001010 + BK4819_WriteRegister(0x51, // 0x804A); // 1 0 0 0 0 0 0 0 0 1001010 + ( 1u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + ( 0u << 14) | // GPIO0 input for CDCSS 0 = normal (for BK4819v3) + ( 0u << 13) | // TX CDCSS code 1 = negative 0 = positive + ( 1u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + ( 0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + ( 0u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + ( 0u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + ( 0u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + ( 0u << 7) | // ??? + (74u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 } uint16_t BK4819_GetRSSI(void) @@ -1763,56 +1685,21 @@ void BK4819_EnableFrequencyScan(void) ( 1u << 0)); // 1 frequency scan enable } -void BK4819_SetScanFrequency(uint32_t Frequency) +void BK4819_set_scan_frequency(uint32_t Frequency) { BK4819_set_rf_frequency(Frequency, false); - // REG_51 - // - // <15> 0 - // 1 = Enable TxCTCSS/CDCSS - // 0 = Disable - // - // <14> 0 - // 1 = GPIO-0 input for CDCSS - // 0 = Normal Mode (for BK4819 v3) - // - // <13> 0 - // 1 = Transmit negative CDCSS code - // 0 = Transmit positive CDCSS code - // - // <12> 0 CTCSS/CDCSS mode selection - // 1 = CTCSS - // 0 = CDCSS - // - // <11> 0 CDCSS 24/23bit selection - // 1 = 24bit - // 0 = 23bit - // - // <10> 0 1050Hz detection mode - // 1 = 1050/4 detect enable, CTC1 should be set to 1050/4 Hz - // - // <9> 0 Auto CDCSS Bw Mode - // 1 = Disable - // 0 = Enable - // - // <8> 0 Auto CTCSS Bw Mode - // 0 = Enable - // 1 = Disable - // - // <6:0> 0 CTCSS/CDCSS Tx Gain1 Tuning - // 0 = min - // 127 = max - // BK4819_WriteRegister(0x51, - BK4819_REG_51_DISABLE_CxCSS | - BK4819_REG_51_GPIO6_PIN2_NORMAL | - BK4819_REG_51_TX_CDCSS_POSITIVE | - BK4819_REG_51_MODE_CDCSS | - BK4819_REG_51_CDCSS_23_BIT | - BK4819_REG_51_1050HZ_NO_DETECTION | - BK4819_REG_51_AUTO_CDCSS_BW_DISABLE | - BK4819_REG_51_AUTO_CTCSS_BW_DISABLE); + (0u << 15) | // TX CTCSS/CDCSS 1 = enable 0 = disable + (0u << 14) | // GPIO input for CDCSS 0 = normal (for BK4819v3) + (0u << 13) | // TX CDCSS code 1 = negative 0 = positive + (0u << 12) | // CTCSS/CDCSS mode selection 1 = CTCSS 0 = CDCSS + (0u << 11) | // CDCSS 24/23bit selection 1 = 24bit 0 = 23bit + (0u << 10) | // 1050Hz detection mode 1 = enable, CTC1 should be set to 1050/4 Hz + (1u << 9) | // Auto CDCSS BW Mode 1 = disable 0 = enable + (1u << 8) | // Auto CTCSS BW Mode 1 = disable 0 = enable + (0u << 7) | // ??? + (0u << 0)); // CTCSS/CDCSS TX gain 1 0 ~ 127 BK4819_RX_TurnOn(); } @@ -1858,9 +1745,11 @@ void BK4819_reset_fsk(void) (1u << 3) | // 0 or 1 sync length selection (0u << 0); // 0 ~ 7 ??? - BK4819_WriteRegister(0x3F, 0); // disable interrupts + BK4819_WriteRegister(0x3F, 0); // disable interrupts + BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); // clear FIFO's - BK4819_WriteRegister(0x59, (0u << 15) | (0u << 14) | fsk_reg59); + BK4819_WriteRegister(0x59, fsk_reg59); + BK4819_WriteRegister(0x30, 0); } diff --git a/driver/bk4819.h b/driver/bk4819.h index 014be80..a5e7f6c 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -72,9 +72,9 @@ void BK4819_EnableAGC(void); void BK4819_set_GPIO_pin(bk4819_gpio_pin_t Pin, bool bSet); -void BK4819_SetCDCSSCodeWord(uint32_t CodeWord); -void BK4819_SetCTCSSFrequency(uint32_t BaudRate); -void BK4819_SetTailDetection(const uint32_t freq_10Hz); +void BK4819_set_CDCSS_code(const uint32_t control_word); +void BK4819_set_CTCSS_freq(const uint32_t control_word); +void BK4819_set_tail_detection(const uint32_t freq_10Hz); void BK4819_EnableVox(uint16_t Vox1Threshold, uint16_t Vox0Threshold); void BK4819_set_TX_deviation(const bool narrow); @@ -120,8 +120,12 @@ void BK4819_TurnsOffTones_TurnsOnRX(void); void BK4819_reset_fsk(void); void BK4819_Idle(void); void BK4819_PrepareTransmit(void); -void BK4819_sub_audible(void); -void BK4819_ExitSubAu(void); + +void BK4819_config_sub_audible(void); +void BK4819_gen_tail(const unsigned int tail); +void BK4819_enable_CDCSS_tail(void); +void BK4819_enable_CTCSS_tail(void); +void BK4819_disable_sub_audible(void); void BK4819_Conditional_RX_TurnOn(void); @@ -134,10 +138,6 @@ void BK4819_PlayDTMFString(const char *pString, bool bDelayFirst, uint16_t F void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency); -void BK4819_GenTail(const unsigned int tail); -void BK4819_EnableCDCSS(void); -void BK4819_EnableCTCSS(void); - uint16_t BK4819_GetRSSI(void); uint8_t BK4819_GetGlitchIndicator(void); uint8_t BK4819_GetExNoiceIndicator(void); @@ -148,7 +148,7 @@ bool BK4819_GetFrequencyScanResult(uint32_t *pFrequency); BK4819_CSS_scan_result_t BK4819_GetCxCSSScanResult(uint32_t *pCdcssFreq, uint16_t *pCtcssFreq); void BK4819_DisableFrequencyScan(void); void BK4819_EnableFrequencyScan(void); -void BK4819_SetScanFrequency(uint32_t Frequency); +void BK4819_set_scan_frequency(uint32_t Frequency); void BK4819_StopScan(void); diff --git a/firmware.bin b/firmware.bin index def3602a6756ba2c014b043a9e5a65a428fa0786..1d14c6a320a15f076d55607f433fbf9c6a542412 100644 GIT binary patch delta 25376 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 c!dcqWe5E_dI8$5RYP*O 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 BacBSl diff --git a/firmware.packed.bin b/firmware.packed.bin index 0a702fdfc0b142eb06936165a18dc32fd9ef1399..fd298991b1b02f45d97ebcf04ac528e9ad7d20a2 100644 GIT binary patch delta 58761 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 delta 58604 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

}EJhF`p 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.code = 0; break; case CODE_TYPE_CONTINUOUS_TONE: - p_vfo->freq_config_rx.code = (m_channel.rx_ctcss_cdcss_code < ARRAY_SIZE(CTCSS_OPTIONS)) ? m_channel.rx_ctcss_cdcss_code : 0; + p_vfo->freq_config_rx.code = (m_channel.rx_ctcss_cdcss_code < ARRAY_SIZE(CTCSS_TONE_LIST)) ? m_channel.rx_ctcss_cdcss_code : 0; break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - p_vfo->freq_config_rx.code = (m_channel.rx_ctcss_cdcss_code < ARRAY_SIZE(DCS_OPTIONS)) ? m_channel.rx_ctcss_cdcss_code : 0; + p_vfo->freq_config_rx.code = (m_channel.rx_ctcss_cdcss_code < ARRAY_SIZE(DCS_CODE_LIST)) ? m_channel.rx_ctcss_cdcss_code : 0; break; } @@ -297,11 +297,11 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur p_vfo->freq_config_tx.code = 0; break; case CODE_TYPE_CONTINUOUS_TONE: - p_vfo->freq_config_tx.code = (m_channel.tx_ctcss_cdcss_code < ARRAY_SIZE(CTCSS_OPTIONS)) ? m_channel.tx_ctcss_cdcss_code : 0; + p_vfo->freq_config_tx.code = (m_channel.tx_ctcss_cdcss_code < ARRAY_SIZE(CTCSS_TONE_LIST)) ? m_channel.tx_ctcss_cdcss_code : 0; break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - p_vfo->freq_config_tx.code = (m_channel.tx_ctcss_cdcss_code < ARRAY_SIZE(DCS_OPTIONS)) ? m_channel.tx_ctcss_cdcss_code : 0; + p_vfo->freq_config_tx.code = (m_channel.tx_ctcss_cdcss_code < ARRAY_SIZE(DCS_CODE_LIST)) ? m_channel.tx_ctcss_cdcss_code : 0; break; } @@ -741,45 +741,49 @@ void RADIO_setup_registers(bool switch_to_function_foreground) if (g_rx_vfo->am_mode == 0) { // FM uint8_t code_type = g_selected_code_type; - uint8_t Code = g_selected_code; + uint8_t code = g_selected_code; if (g_css_scan_mode == CSS_SCAN_MODE_OFF) { code_type = g_rx_vfo->p_rx->code_type; - Code = g_rx_vfo->p_rx->code; + code = g_rx_vfo->p_rx->code; } switch (code_type) { default: case CODE_TYPE_NONE: - BK4819_SetCTCSSFrequency(670); - - //#ifndef ENABLE_CTCSS_TAIL_PHASE_SHIFT - BK4819_SetTailDetection(550); // QS's 55Hz tone method - //#else - // BK4819_SetTailDetection(670); // 67Hz - //#endif + BK4819_set_CTCSS_freq(670); + BK4819_set_tail_detection(550); // QS's 55Hz tone method interrupt_mask |= BK4819_REG_3F_CxCSS_TAIL; break; case CODE_TYPE_CONTINUOUS_TONE: - BK4819_SetCTCSSFrequency(CTCSS_OPTIONS[Code]); + BK4819_set_CTCSS_freq(CTCSS_TONE_LIST[code]); - //#ifndef ENABLE_CTCSS_TAIL_PHASE_SHIFT - BK4819_SetTailDetection(550); // QS's 55Hz tone method - //#else - // BK4819_SetTailDetection(CTCSS_OPTIONS[Code]); - //#endif +// #ifdef ENABLE_CTCSS_TAIL_PHASE_SHIFT +// BK4819_set_tail_detection(CTCSS_TONE_LIST[code]); // doesn't work in RX mode +// #else +// BK4819_set_tail_detection(550); // QS's 55Hz tone method +// #endif + + interrupt_mask |= + BK4819_REG_3F_CxCSS_TAIL | + BK4819_REG_3F_CTCSS_FOUND | + BK4819_REG_3F_CTCSS_LOST; - interrupt_mask |= BK4819_REG_3F_CxCSS_TAIL | BK4819_REG_3F_CTCSS_FOUND | BK4819_REG_3F_CTCSS_LOST; break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - BK4819_SetCDCSSCodeWord(DCS_GetGolayCodeWord(code_type, Code)); - interrupt_mask |= BK4819_REG_3F_CxCSS_TAIL | BK4819_REG_3F_CDCSS_FOUND | BK4819_REG_3F_CDCSS_LOST; + BK4819_set_CDCSS_code(DCS_GetGolayCodeWord(code_type, code)); + + interrupt_mask |= + BK4819_REG_3F_CxCSS_TAIL | + BK4819_REG_3F_CDCSS_FOUND | + BK4819_REG_3F_CDCSS_LOST; + break; } @@ -792,7 +796,8 @@ void RADIO_setup_registers(bool switch_to_function_foreground) #ifdef ENABLE_NOAA else { - BK4819_SetCTCSSFrequency(2625); + BK4819_set_CTCSS_freq(0); // NOAA 1050Hz stuff + interrupt_mask |= BK4819_REG_3F_CTCSS_FOUND | BK4819_REG_3F_CTCSS_LOST; } #endif @@ -934,7 +939,7 @@ void RADIO_enableTX(const bool fsk_tx) if (fsk_tx) { - BK4819_ExitSubAu(); + BK4819_disable_sub_audible(); } else { @@ -942,16 +947,18 @@ void RADIO_enableTX(const bool fsk_tx) { default: case CODE_TYPE_NONE: - BK4819_ExitSubAu(); + BK4819_disable_sub_audible(); break; case CODE_TYPE_CONTINUOUS_TONE: - BK4819_SetCTCSSFrequency(CTCSS_OPTIONS[g_current_vfo->p_tx->code]); + BK4819_gen_tail(4); + BK4819_set_CTCSS_freq(CTCSS_TONE_LIST[g_current_vfo->p_tx->code]); break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - BK4819_SetCDCSSCodeWord(DCS_GetGolayCodeWord(g_current_vfo->p_tx->code_type, g_current_vfo->p_tx->code)); + BK4819_gen_tail(4); + BK4819_set_CDCSS_code(DCS_GetGolayCodeWord(g_current_vfo->p_tx->code_type, g_current_vfo->p_tx->code)); break; } } @@ -1094,7 +1101,7 @@ void RADIO_PrepareTX(void) g_dtmf_reply_state = DTMF_REPLY_NONE; } -void RADIO_EnableCxCSS(void) +void RADIO_enable_CxCSS_tail(void) { switch (g_current_vfo->p_tx->code_type) { @@ -1103,13 +1110,13 @@ void RADIO_EnableCxCSS(void) break; case CODE_TYPE_CONTINUOUS_TONE: - BK4819_EnableCTCSS(); + BK4819_enable_CTCSS_tail(); SYSTEM_DelayMs(200); break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - BK4819_EnableCDCSS(); + BK4819_enable_CDCSS_tail(); SYSTEM_DelayMs(200); break; } @@ -1123,7 +1130,8 @@ void RADIO_PrepareCssTX(void) SYSTEM_DelayMs(200); - RADIO_EnableCxCSS(); + RADIO_enable_CxCSS_tail(); + RADIO_setup_registers(true); } diff --git a/radio.h b/radio.h index c711ad3..9979861 100644 --- a/radio.h +++ b/radio.h @@ -157,7 +157,7 @@ void RADIO_enableTX(const bool fsk_tx); void RADIO_set_vfo_state(vfo_state_t State); void RADIO_PrepareTX(void); -void RADIO_EnableCxCSS(void); +void RADIO_enable_CxCSS_tail(void); void RADIO_PrepareCssTX(void); void RADIO_tx_eot(void); diff --git a/ui/main.c b/ui/main.c index 9d914c9..5e12f78 100644 --- a/ui/main.c +++ b/ui/main.c @@ -789,22 +789,35 @@ void UI_DisplayMain(void) } #else { - strcpy(str, " "); - - if (IS_FREQ_CHANNEL(g_eeprom.screen_channel[vfo_num])) + const bool is_freq_chan = IS_FREQ_CHANNEL(g_eeprom.screen_channel[vfo_num]); + const uint8_t freq_in_channel = g_eeprom.vfo_info[vfo_num].freq_in_channel; +// const uint8_t freq_in_channel = BOARD_find_channel(frequency); // currently way to slow + +// if (g_eeprom.vfo_info[vfo_num].compand) { - //g_eeprom.vfo_info[vfo_num].freq_in_channel = BOARD_find_channel(frequency); - if (g_eeprom.vfo_info[vfo_num].freq_in_channel <= USER_CHANNEL_LAST) + strcpy(str, " "); + + if (is_freq_chan && freq_in_channel <= USER_CHANNEL_LAST) { // the channel number that contains this VFO frequency - str[0] = 'F'; +// strcpy(str, "F"); + sprintf(str, "%03u", freq_in_channel); + } + + if (g_eeprom.vfo_info[vfo_num].compand) + strcat(str, "C"); + +// UI_PrintStringSmall(str, LCD_WIDTH - (7 * 2), 0, line + 1); + UI_PrintStringSmall(str, LCD_WIDTH - (7 * 4), 0, line + 1); + } +/* else + { + if (is_freq_chan && freq_in_channel <= USER_CHANNEL_LAST) + { // the channel number that contains this VFO frequency + sprintf(str, "%03u", freq_in_channel); + UI_PrintStringSmall(str, LCD_WIDTH - (7 * 3), 0, line + 1); } } - - if (g_eeprom.vfo_info[vfo_num].compand) - str[1] = 'C'; - - UI_PrintStringSmall(str, LCD_WIDTH - 1 - (6 * 2), 0, line + 1); - } +*/ } #endif } @@ -941,7 +954,11 @@ void UI_DisplayMain(void) if (mdc1200_rx_ready_tick_500ms > 0) { g_center_line = CENTER_LINE_MDC1200; - sprintf(str, "MDC1200 %02X %02X %04X", mdc1200_op, mdc1200_arg, mdc1200_unit_id); + #ifdef ENABLE_MDC1200_SHOW_OP_ARG + sprintf(str, "MDC1200 %02X %02X %04X", mdc1200_op, mdc1200_arg, mdc1200_unit_id); + #else + sprintf(str, "MDC1200 ID %04X", mdc1200_unit_id); + #endif #ifdef ENABLE_SMALL_BOLD UI_PrintStringSmallBold(str, 2, 0, 3); #else diff --git a/ui/menu.c b/ui/menu.c index 1db295c..2834d00 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -610,9 +610,9 @@ void UI_DisplayMenu(void) strcat(str, "OFF"); else if (g_sub_menu_selection < 105) - sprintf(str + strlen(str), "D%03oN", DCS_OPTIONS[g_sub_menu_selection - 1]); + sprintf(str + strlen(str), "D%03oN", DCS_CODE_LIST[g_sub_menu_selection - 1]); else - sprintf(str + strlen(str), "D%03oI", DCS_OPTIONS[g_sub_menu_selection - 105]); + sprintf(str + strlen(str), "D%03oI", DCS_CODE_LIST[g_sub_menu_selection - 105]); break; case MENU_RX_CTCSS: @@ -634,23 +634,23 @@ void UI_DisplayMenu(void) pConfig->code_type = CODE_TYPE_NONE; pConfig->code = Code; - BK4819_ExitSubAu(); + BK4819_disable_sub_audible(); } else { - sprintf(str + strlen(str), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10); + sprintf(str + strlen(str), "%u.%uHz", CTCSS_TONE_LIST[g_sub_menu_selection - 1] / 10, CTCSS_TONE_LIST[g_sub_menu_selection - 1] % 10); pConfig->code_type = CODE_TYPE_CONTINUOUS_TONE; Code = g_sub_menu_selection - 1; pConfig->code = Code; - BK4819_SetCTCSSFrequency(CTCSS_OPTIONS[Code]); + BK4819_set_CTCSS_freq(CTCSS_TONE_LIST[Code]); } #else if (g_sub_menu_selection == 0) strcat(str, "OFF"); else - sprintf(str + strlen(str), "%u.%uHz", CTCSS_OPTIONS[g_sub_menu_selection - 1] / 10, CTCSS_OPTIONS[g_sub_menu_selection - 1] % 10); + sprintf(str + strlen(str), "%u.%uHz", CTCSS_TONE_LIST[g_sub_menu_selection - 1] / 10, CTCSS_TONE_LIST[g_sub_menu_selection - 1] % 10); #endif break; diff --git a/ui/search.c b/ui/search.c index 00e015a..142a825 100644 --- a/ui/search.c +++ b/ui/search.c @@ -96,11 +96,11 @@ void UI_DisplaySearch(void) case CODE_TYPE_NONE: break; case CODE_TYPE_CONTINUOUS_TONE: - sprintf(String, "CTCSS %u.%uHz", CTCSS_OPTIONS[g_search_css_result_code] / 10, CTCSS_OPTIONS[g_search_css_result_code] % 10); + sprintf(String, "CTCSS %u.%uHz", CTCSS_TONE_LIST[g_search_css_result_code] / 10, CTCSS_TONE_LIST[g_search_css_result_code] % 10); break; case CODE_TYPE_DIGITAL: case CODE_TYPE_REVERSE_DIGITAL: - sprintf(String, "CDCSS D%03oN", DCS_OPTIONS[g_search_css_result_code]); + sprintf(String, "CDCSS D%03oN", DCS_CODE_LIST[g_search_css_result_code]); break; } }