From 5b5259c17dc95c73cdc4e8513d9fc39d6f19361d Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Wed, 25 Oct 2023 08:47:00 +0100 Subject: [PATCH] Fix RF scan problem + removed enums --- am_fix.c | 2 +- app/aircopy.c | 36 ++-- app/app.c | 32 +++- app/uart.c | 6 +- audio.c | 4 +- board.c | 4 +- driver/bk4819-regs.h | 366 ++++++++++++++++------------------------ driver/bk4819.c | 394 +++++++++++++++++++++---------------------- driver/bk4819.h | 4 +- firmware.bin | Bin 60848 -> 60720 bytes firmware.packed.bin | Bin 60866 -> 60738 bytes radio.c | 12 +- settings.h | 2 +- 13 files changed, 398 insertions(+), 464 deletions(-) diff --git a/am_fix.c b/am_fix.c index 9ae5ab9..1ade88c 100644 --- a/am_fix.c +++ b/am_fix.c @@ -451,7 +451,7 @@ // remember the new table index gain_table_index_prev[vfo] = index; - BK4819_WriteRegister(BK4819_REG_13, gain_table[index].reg_val); + 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 diff --git a/app/aircopy.c b/app/aircopy.c index 08bffec..63ab7ab 100644 --- a/app/aircopy.c +++ b/app/aircopy.c @@ -186,21 +186,21 @@ void AIRCOPY_start_fsk_tx(const int request_block_num) (0u << 0); // 0 ~ 7 ??? // set the packet size - BK4819_WriteRegister(BK4819_REG_5D, (((tx_size * 2) - 1) << 8)); + BK4819_WriteRegister(0x5D, (((tx_size * 2) - 1) << 8)); // clear TX fifo - BK4819_WriteRegister(BK4819_REG_59, (1u << 15) | fsk_reg59); - BK4819_WriteRegister(BK4819_REG_59, fsk_reg59); + BK4819_WriteRegister(0x59, (1u << 15) | fsk_reg59); + BK4819_WriteRegister(0x59, fsk_reg59); // load the packet for (k = 0; k < tx_size; k++) - BK4819_WriteRegister(BK4819_REG_5F, g_fsk_buffer[k]); + BK4819_WriteRegister(0x5F, g_fsk_buffer[k]); // enable tx interrupt(s) - BK4819_WriteRegister(BK4819_REG_3F, BK4819_REG_3F_FSK_TX_FINISHED); + BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_TX_FINISHED); // enable scramble, enable TX - BK4819_WriteRegister(BK4819_REG_59, (1u << 13) | (1u << 11) | fsk_reg59); + BK4819_WriteRegister(0x59, (1u << 13) | (1u << 11) | fsk_reg59); } void AIRCOPY_stop_fsk_tx(void) @@ -268,10 +268,10 @@ void AIRCOPY_process_fsk_tx_10ms(void) if (--g_fsk_tx_timeout_10ms > 0) { // still TX'ing - if ((BK4819_ReadRegister(BK4819_REG_0C) & (1u << 0)) == 0) + if ((BK4819_ReadRegister(0x0C) & (1u << 0)) == 0) return; - BK4819_WriteRegister(BK4819_REG_02, 0); - interrupt_bits = BK4819_ReadRegister(BK4819_REG_02); + BK4819_WriteRegister(0x02, 0); + interrupt_bits = BK4819_ReadRegister(0x02); if ((interrupt_bits & BK4819_REG_02_FSK_TX_FINISHED) == 0) return; // TX not yet finished } @@ -343,7 +343,7 @@ void AIRCOPY_process_fsk_rx_10ms(void) // // <2:0> 0 ??? // - status = BK4819_ReadRegister(BK4819_REG_59); + status = BK4819_ReadRegister(0x59); if (status & (1u << 11) || g_fsk_tx_timeout_10ms > 0) return; // FSK TX is busy @@ -355,13 +355,13 @@ void AIRCOPY_process_fsk_rx_10ms(void) BK4819_start_fsk_rx((g_aircopy_state == AIRCOPY_TX) ? AIRCOPY_REQ_PACKET_SIZE : AIRCOPY_DATA_PACKET_SIZE); } - status = BK4819_ReadRegister(BK4819_REG_0C); + status = BK4819_ReadRegister(0x0C); if ((status & (1u << 0)) == 0) return; // no flagged interrupts // read the interrupt flags - BK4819_WriteRegister(BK4819_REG_02, 0); // clear them - interrupt_bits = BK4819_ReadRegister(BK4819_REG_02); + BK4819_WriteRegister(0x02, 0); // clear them + interrupt_bits = BK4819_ReadRegister(0x02); if (interrupt_bits & BK4819_REG_02_FSK_RX_SYNC) BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, true); // LED on @@ -377,7 +377,7 @@ void AIRCOPY_process_fsk_rx_10ms(void) // fetch RX'ed data for (i = 0; i < 4; i++) { - const uint16_t word = BK4819_ReadRegister(BK4819_REG_5F); + const uint16_t word = BK4819_ReadRegister(0x5F); if (g_fsk_write_index < ARRAY_SIZE(g_fsk_buffer)) g_fsk_buffer[g_fsk_write_index++] = word; } @@ -400,7 +400,7 @@ void AIRCOPY_process_fsk_rx_10ms(void) // // <3:0> ??? // - status = BK4819_ReadRegister(BK4819_REG_0B); + status = BK4819_ReadRegister(0x0B); // check to see if it's a REQ/ACK packet if (g_fsk_write_index == req_ack_size) @@ -591,10 +591,10 @@ send_req: while (g_fsk_tx_timeout_10ms-- > 0) { SYSTEM_DelayMs(5); - if (BK4819_ReadRegister(BK4819_REG_0C) & (1u << 0)) + if (BK4819_ReadRegister(0x0C) & (1u << 0)) { // we have interrupt flags - BK4819_WriteRegister(BK4819_REG_02, 0); - const uint16_t interrupt_bits = BK4819_ReadRegister(BK4819_REG_02); + BK4819_WriteRegister(0x02, 0); + const uint16_t interrupt_bits = BK4819_ReadRegister(0x02); if (interrupt_bits & BK4819_REG_02_FSK_TX_FINISHED) g_fsk_tx_timeout_10ms = 0; // TX is complete } diff --git a/app/app.c b/app/app.c index c4a97fb..e453b04 100644 --- a/app/app.c +++ b/app/app.c @@ -247,7 +247,21 @@ static void APP_process_rx(void) if (g_scan_state_dir != SCAN_STATE_DIR_OFF) // && IS_FREQ_CHANNEL(g_scan_next_channel)) { if (g_squelch_open) + { + switch (g_eeprom.scan_resume_mode) + { + case SCAN_RESUME_TIME: // stay only for a limited time + break; + case SCAN_RESUME_CARRIER: // stay untill the carrier goes away + g_scan_pause_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 + APP_stop_scan(); + break; + } return; + } Mode = END_OF_RX_MODE_END; goto Skip; @@ -284,7 +298,7 @@ static void APP_process_rx(void) if (g_squelch_open) { if (g_setting_backlight_on_tx_rx >= 2) - backlight_turn_on(backlight_tx_rx_time_500ms); + backlight_turn_on(backlight_tx_rx_time_500ms); // keep the backlight on while we're receiving if (!g_end_of_rx_detected_maybe && IS_NOT_NOAA_CHANNEL(g_rx_vfo->channel_save)) { @@ -404,11 +418,11 @@ Skip: { case SCAN_RESUME_TIME: // stay only for a limited time break; - case SCAN_RESUME_CARRIER: // stay till the carrier goes away + case SCAN_RESUME_CARRIER: // stay untill the carrier goes away g_scan_pause_10ms = g_eeprom.scan_hold_time_500ms * 50; g_scan_pause_time_mode = false; break; - case SCAN_RESUME_SEARCH: + case SCAN_RESUME_STOP: // stop scan once we find any signal APP_stop_scan(); break; } @@ -498,7 +512,7 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) g_scan_pause_10ms = g_eeprom.scan_hold_time_500ms * 50; g_scan_pause_time_mode = false; break; - case SCAN_RESUME_SEARCH: + case SCAN_RESUME_STOP: g_scan_pause_10ms = 0; g_scan_pause_time_mode = false; break; @@ -549,14 +563,14 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) AM_fix_10ms(chan); } else - BK4819_WriteRegister(BK4819_REG_13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + BK4819_WriteRegister(0x13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); } #else (void)reset_am_fix; #endif // AF gain - original QS values - BK4819_WriteRegister(BK4819_REG_48, + BK4819_WriteRegister(0x48, (11u << 12) | // ??? .. 0 to 15, doesn't seem to make any difference ( 0u << 10) | // AF Rx Gain-1 (g_eeprom.volume_gain << 4) | // AF Rx Gain-2 @@ -892,11 +906,11 @@ void APP_process_radio_interrupts(void) if (g_screen_to_display == DISPLAY_SEARCH) return; - while (BK4819_ReadRegister(BK4819_REG_0C) & (1u << 0)) + while (BK4819_ReadRegister(0x0C) & (1u << 0)) { // BK chip interrupt request - BK4819_WriteRegister(BK4819_REG_02, 0); - const uint16_t interrupt_bits = BK4819_ReadRegister(BK4819_REG_02); + BK4819_WriteRegister(0x02, 0); + const uint16_t interrupt_bits = BK4819_ReadRegister(0x02); if (interrupt_bits & BK4819_REG_02_DTMF_5TONE_FOUND) { // save the RX'ed DTMF character diff --git a/app/uart.c b/app/uart.c index 02352b4..3903fee 100644 --- a/app/uart.c +++ b/app/uart.c @@ -384,9 +384,9 @@ static void cmd_0527(void) memset(&reply, 0, sizeof(reply)); reply.Header.ID = 0x0528; reply.Header.Size = sizeof(reply.Data); - reply.Data.RSSI = BK4819_ReadRegister(BK4819_REG_67) & 0x01FF; - reply.Data.ExNoiseIndicator = BK4819_ReadRegister(BK4819_REG_65) & 0x007F; - reply.Data.GlitchIndicator = BK4819_ReadRegister(BK4819_REG_63); + reply.Data.RSSI = BK4819_ReadRegister(0x67) & 0x01FF; + reply.Data.ExNoiseIndicator = BK4819_ReadRegister(0x65) & 0x007F; + reply.Data.GlitchIndicator = BK4819_ReadRegister(0x63); SendReply(&reply, sizeof(reply)); } diff --git a/audio.c b/audio.c index 9d29f81..e0cacdd 100644 --- a/audio.c +++ b/audio.c @@ -76,7 +76,7 @@ beep_type_t g_beep_to_play = BEEP_NONE; void AUDIO_PlayBeep(beep_type_t Beep) { - const uint16_t ToneConfig = BK4819_ReadRegister(BK4819_REG_71); + const uint16_t ToneConfig = BK4819_ReadRegister(0x71); uint16_t ToneFrequency; uint16_t Duration; @@ -218,7 +218,7 @@ void AUDIO_PlayBeep(beep_type_t Beep) SYSTEM_DelayMs(2); // restore the register - BK4819_WriteRegister(BK4819_REG_71, ToneConfig); + BK4819_WriteRegister(0x71, ToneConfig); if (g_speaker_enabled) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); diff --git a/board.c b/board.c index 79c4249..9362587 100644 --- a/board.c +++ b/board.c @@ -841,8 +841,8 @@ void BOARD_EEPROM_LoadCalibration(void) g_eeprom.volume_gain = (Misc.volume_gain < 64) ? Misc.volume_gain : 58; g_eeprom.dac_gain = (Misc.dac_gain < 16) ? Misc.dac_gain : 8; - BK4819_WriteRegister(BK4819_REG_3B, 22656 + g_eeprom.BK4819_xtal_freq_low); -// BK4819_WriteRegister(BK4819_REG_3C, g_eeprom.BK4819_XTAL_FREQ_HIGH); + BK4819_WriteRegister(0x3B, 22656 + g_eeprom.BK4819_xtal_freq_low); +// BK4819_WriteRegister(0x3C, g_eeprom.BK4819_XTAL_FREQ_HIGH); } } diff --git a/driver/bk4819-regs.h b/driver/bk4819-regs.h index 820ab5f..91fe5fb 100644 --- a/driver/bk4819-regs.h +++ b/driver/bk4819-regs.h @@ -17,153 +17,77 @@ #ifndef BK4819_REGS_H #define BK4819_REGS_H -enum bk4819_register_e { - BK4819_REG_00 = 0x00U, - BK4819_REG_02 = 0x02U, - BK4819_REG_06 = 0x06U, - BK4819_REG_07 = 0x07U, - BK4819_REG_08 = 0x08U, - BK4819_REG_09 = 0x09U, - BK4819_REG_0B = 0x0BU, - BK4819_REG_0C = 0x0CU, - BK4819_REG_0D = 0x0DU, - BK4819_REG_0E = 0x0EU, - BK4819_REG_10 = 0x10U, - BK4819_REG_11 = 0x11U, - BK4819_REG_12 = 0x12U, - BK4819_REG_13 = 0x13U, - BK4819_REG_14 = 0x14U, - BK4819_REG_19 = 0x19U, - BK4819_REG_1F = 0x1FU, - BK4819_REG_20 = 0x20U, - BK4819_REG_21 = 0x21U, - BK4819_REG_24 = 0x24U, - BK4819_REG_28 = 0x28U, - BK4819_REG_29 = 0x29U, - BK4819_REG_2B = 0x2BU, - BK4819_REG_30 = 0x30U, - BK4819_REG_31 = 0x31U, - BK4819_REG_32 = 0x32U, - BK4819_REG_33 = 0x33U, - BK4819_REG_36 = 0x36U, - BK4819_REG_37 = 0x37U, - BK4819_REG_38 = 0x38U, - BK4819_REG_39 = 0x39U, - BK4819_REG_3A = 0x3AU, - BK4819_REG_3B = 0x3BU, - BK4819_REG_3C = 0x3CU, - BK4819_REG_3E = 0x3EU, - BK4819_REG_3F = 0x3FU, - BK4819_REG_43 = 0x43U, - BK4819_REG_46 = 0x46U, - BK4819_REG_47 = 0x47U, - BK4819_REG_48 = 0x48U, - BK4819_REG_49 = 0x49U, - BK4819_REG_4D = 0x4DU, - BK4819_REG_4E = 0x4EU, - BK4819_REG_4F = 0x4FU, - BK4819_REG_50 = 0x50U, - BK4819_REG_51 = 0x51U, - BK4819_REG_52 = 0x52U, - BK4819_REG_58 = 0x58U, - BK4819_REG_59 = 0x59U, - BK4819_REG_5A = 0x5AU, - BK4819_REG_5B = 0x5BU, - BK4819_REG_5C = 0x5CU, - BK4819_REG_5D = 0x5DU, - BK4819_REG_5F = 0x5FU, - BK4819_REG_63 = 0x63U, - BK4819_REG_64 = 0x64U, - BK4819_REG_65 = 0x65U, - BK4819_REG_67 = 0x67U, - BK4819_REG_68 = 0x68U, - BK4819_REG_69 = 0x69U, - BK4819_REG_6A = 0x6AU, - BK4819_REG_6F = 0x6FU, - BK4819_REG_70 = 0x70U, - BK4819_REG_71 = 0x71U, - BK4819_REG_72 = 0x72U, - BK4819_REG_78 = 0x78U, - BK4819_REG_79 = 0x79U, - BK4819_REG_7A = 0x7AU, - BK4819_REG_7B = 0x7BU, - BK4819_REG_7C = 0x7CU, - BK4819_REG_7D = 0x7DU, - BK4819_REG_7E = 0x7EU -}; -typedef enum bk4819_register_e bk4819_register_t; - enum bk4819_gpio_pin_e { - BK4819_GPIO0_PIN28_RX_ENABLE = 0, - BK4819_GPIO1_PIN29_PA_ENABLE = 1, - BK4819_GPIO3_PIN31_UHF_LNA = 3, - BK4819_GPIO4_PIN32_VHF_LNA = 4, - BK4819_GPIO5_PIN1_RED = 5, - BK4819_GPIO6_PIN2_GREEN = 6 + BK4819_GPIO0_PIN28_RX_ENABLE = 0, + BK4819_GPIO1_PIN29_PA_ENABLE = 1, + BK4819_GPIO3_PIN31_UHF_LNA = 3, + BK4819_GPIO4_PIN32_VHF_LNA = 4, + BK4819_GPIO5_PIN1_RED = 5, + BK4819_GPIO6_PIN2_GREEN = 6 }; typedef enum bk4819_gpio_pin_e bk4819_gpio_pin_t; // REG 02 -#define BK4819_REG_02_SHIFT_FSK_TX_FINISHED 15 -#define BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY 14 -#define BK4819_REG_02_SHIFT_FSK_RX_FINISHED 13 -#define BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL 12 -#define BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND 11 -#define BK4819_REG_02_SHIFT_CxCSS_TAIL 10 -#define BK4819_REG_02_SHIFT_CDCSS_FOUND 9 -#define BK4819_REG_02_SHIFT_CDCSS_LOST 8 -#define BK4819_REG_02_SHIFT_CTCSS_FOUND 7 -#define BK4819_REG_02_SHIFT_CTCSS_LOST 6 -#define BK4819_REG_02_SHIFT_VOX_FOUND 5 -#define BK4819_REG_02_SHIFT_VOX_LOST 4 -#define BK4819_REG_02_SHIFT_SQUELCH_FOUND 3 -#define BK4819_REG_02_SHIFT_SQUELCH_LOST 2 -#define BK4819_REG_02_SHIFT_FSK_RX_SYNC 1 +#define BK4819_REG_02_SHIFT_FSK_TX_FINISHED 15 +#define BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY 14 +#define BK4819_REG_02_SHIFT_FSK_RX_FINISHED 13 +#define BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL 12 +#define BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND 11 +#define BK4819_REG_02_SHIFT_CxCSS_TAIL 10 +#define BK4819_REG_02_SHIFT_CDCSS_FOUND 9 +#define BK4819_REG_02_SHIFT_CDCSS_LOST 8 +#define BK4819_REG_02_SHIFT_CTCSS_FOUND 7 +#define BK4819_REG_02_SHIFT_CTCSS_LOST 6 +#define BK4819_REG_02_SHIFT_VOX_FOUND 5 +#define BK4819_REG_02_SHIFT_VOX_LOST 4 +#define BK4819_REG_02_SHIFT_SQUELCH_FOUND 3 +#define BK4819_REG_02_SHIFT_SQUELCH_LOST 2 +#define BK4819_REG_02_SHIFT_FSK_RX_SYNC 1 -#define BK4819_REG_02_MASK_FSK_TX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_TX) -#define BK4819_REG_02_MASK_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY) -#define BK4819_REG_02_MASK_FSK_RX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_RX_FINISHED) -#define BK4819_REG_02_MASK_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL) -#define BK4819_REG_02_MASK_DTMF_5TONE_FOUND (1U << BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND) -#define BK4819_REG_02_MASK_CxCSS_TAIL (1U << BK4819_REG_02_SHIFT_CxCSS_TAIL) -#define BK4819_REG_02_MASK_CDCSS_FOUND (1U << BK4819_REG_02_SHIFT_CDCSS_FOUND) -#define BK4819_REG_02_MASK_CDCSS_LOST (1U << BK4819_REG_02_SHIFT_CDCSS_LOST) -#define BK4819_REG_02_MASK_CTCSS_FOUND (1U << BK4819_REG_02_SHIFT_CTCSS_FOUND) -#define BK4819_REG_02_MASK_CTCSS_LOST (1U << BK4819_REG_02_SHIFT_CTCSS_LOST) -#define BK4819_REG_02_MASK_VOX_FOUND (1U << BK4819_REG_02_SHIFT_VOX_FOUND) -#define BK4819_REG_02_MASK_VOX_LOST (1U << BK4819_REG_02_SHIFT_VOX_LOST) -#define BK4819_REG_02_MASK_SQUELCH_FOUND (1U << BK4819_REG_02_SHIFT_SQUELCH_FOUND) -#define BK4819_REG_02_MASK_SQUELCH_LOST (1U << BK4819_REG_02_SHIFT_SQUELCH_LOST) -#define BK4819_REG_02_MASK_FSK_RX_SYNC (1U << BK4819_REG_02_SHIFT_FSK_RX_SYNC) +#define BK4819_REG_02_MASK_FSK_TX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_TX) +#define BK4819_REG_02_MASK_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY) +#define BK4819_REG_02_MASK_FSK_RX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_RX_FINISHED) +#define BK4819_REG_02_MASK_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL) +#define BK4819_REG_02_MASK_DTMF_5TONE_FOUND (1U << BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND) +#define BK4819_REG_02_MASK_CxCSS_TAIL (1U << BK4819_REG_02_SHIFT_CxCSS_TAIL) +#define BK4819_REG_02_MASK_CDCSS_FOUND (1U << BK4819_REG_02_SHIFT_CDCSS_FOUND) +#define BK4819_REG_02_MASK_CDCSS_LOST (1U << BK4819_REG_02_SHIFT_CDCSS_LOST) +#define BK4819_REG_02_MASK_CTCSS_FOUND (1U << BK4819_REG_02_SHIFT_CTCSS_FOUND) +#define BK4819_REG_02_MASK_CTCSS_LOST (1U << BK4819_REG_02_SHIFT_CTCSS_LOST) +#define BK4819_REG_02_MASK_VOX_FOUND (1U << BK4819_REG_02_SHIFT_VOX_FOUND) +#define BK4819_REG_02_MASK_VOX_LOST (1U << BK4819_REG_02_SHIFT_VOX_LOST) +#define BK4819_REG_02_MASK_SQUELCH_FOUND (1U << BK4819_REG_02_SHIFT_SQUELCH_FOUND) +#define BK4819_REG_02_MASK_SQUELCH_LOST (1U << BK4819_REG_02_SHIFT_SQUELCH_LOST) +#define BK4819_REG_02_MASK_FSK_RX_SYNC (1U << BK4819_REG_02_SHIFT_FSK_RX_SYNC) -#define BK4819_REG_02_FSK_TX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_TX_FINISHED) -#define BK4819_REG_02_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY) -#define BK4819_REG_02_FSK_RX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_RX_FINISHED) -#define BK4819_REG_02_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL) -#define BK4819_REG_02_DTMF_5TONE_FOUND (1U << BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND) -#define BK4819_REG_02_CxCSS_TAIL (1U << BK4819_REG_02_SHIFT_CxCSS_TAIL) -#define BK4819_REG_02_CDCSS_FOUND (1U << BK4819_REG_02_SHIFT_CDCSS_FOUND) -#define BK4819_REG_02_CDCSS_LOST (1U << BK4819_REG_02_SHIFT_CDCSS_LOST) -#define BK4819_REG_02_CTCSS_FOUND (1U << BK4819_REG_02_SHIFT_CTCSS_FOUND) -#define BK4819_REG_02_CTCSS_LOST (1U << BK4819_REG_02_SHIFT_CTCSS_LOST) -#define BK4819_REG_02_VOX_FOUND (1U << BK4819_REG_02_SHIFT_VOX_FOUND) -#define BK4819_REG_02_VOX_LOST (1U << BK4819_REG_02_SHIFT_VOX_LOST) -#define BK4819_REG_02_SQUELCH_CLOSED (1U << BK4819_REG_02_SHIFT_SQUELCH_FOUND) -#define BK4819_REG_02_SQUELCH_OPENED (1U << BK4819_REG_02_SHIFT_SQUELCH_LOST) -#define BK4819_REG_02_FSK_RX_SYNC (1U << BK4819_REG_02_SHIFT_FSK_RX_SYNC) +#define BK4819_REG_02_FSK_TX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_TX_FINISHED) +#define BK4819_REG_02_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_EMPTY) +#define BK4819_REG_02_FSK_RX_FINISHED (1U << BK4819_REG_02_SHIFT_FSK_RX_FINISHED) +#define BK4819_REG_02_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_02_SHIFT_FSK_FIFO_ALMOST_FULL) +#define BK4819_REG_02_DTMF_5TONE_FOUND (1U << BK4819_REG_02_SHIFT_DTMF_5TONE_FOUND) +#define BK4819_REG_02_CxCSS_TAIL (1U << BK4819_REG_02_SHIFT_CxCSS_TAIL) +#define BK4819_REG_02_CDCSS_FOUND (1U << BK4819_REG_02_SHIFT_CDCSS_FOUND) +#define BK4819_REG_02_CDCSS_LOST (1U << BK4819_REG_02_SHIFT_CDCSS_LOST) +#define BK4819_REG_02_CTCSS_FOUND (1U << BK4819_REG_02_SHIFT_CTCSS_FOUND) +#define BK4819_REG_02_CTCSS_LOST (1U << BK4819_REG_02_SHIFT_CTCSS_LOST) +#define BK4819_REG_02_VOX_FOUND (1U << BK4819_REG_02_SHIFT_VOX_FOUND) +#define BK4819_REG_02_VOX_LOST (1U << BK4819_REG_02_SHIFT_VOX_LOST) +#define BK4819_REG_02_SQUELCH_CLOSED (1U << BK4819_REG_02_SHIFT_SQUELCH_FOUND) +#define BK4819_REG_02_SQUELCH_OPENED (1U << BK4819_REG_02_SHIFT_SQUELCH_LOST) +#define BK4819_REG_02_FSK_RX_SYNC (1U << BK4819_REG_02_SHIFT_FSK_RX_SYNC) // REG 07 -#define BK4819_REG_07_SHIFT_FREQUENCY_MODE 13 -#define BK4819_REG_07_SHIFT_FREQUENCY 0 +#define BK4819_REG_07_SHIFT_FREQUENCY_MODE 13 +#define BK4819_REG_07_SHIFT_FREQUENCY 0 -#define BK4819_REG_07_MASK_FREQUENCY_MODE (0x0007U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) -#define BK4819_REG_07_MASK_FREQUENCY (0x1FFFU << BK4819_REG_07_SHIFT_FREQUENCY) +#define BK4819_REG_07_MASK_FREQUENCY_MODE (0x0007U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) +#define BK4819_REG_07_MASK_FREQUENCY (0x1FFFU << BK4819_REG_07_SHIFT_FREQUENCY) -#define BK4819_REG_07_MODE_CTC1 (0U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) -#define BK4819_REG_07_MODE_CTC2 (1U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) -#define BK4819_REG_07_MODE_CDCSS (2U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) +#define BK4819_REG_07_MODE_CTC1 (0U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) +#define BK4819_REG_07_MODE_CTC2 (1U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) +#define BK4819_REG_07_MODE_CDCSS (2U << BK4819_REG_07_SHIFT_FREQUENCY_MODE) // REG 24 @@ -186,100 +110,100 @@ typedef enum bk4819_gpio_pin_e bk4819_gpio_pin_t; // REG 30 -#define BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB 15 -#define BK4819_REG_30_SHIFT_ENABLE_UNKNOWN 14 -#define BK4819_REG_30_SHIFT_ENABLE_RX_LINK 10 -#define BK4819_REG_30_SHIFT_ENABLE_AF_DAC 9 -#define BK4819_REG_30_SHIFT_ENABLE_DISC_MODE 8 -#define BK4819_REG_30_SHIFT_ENABLE_PLL_VCO 4 -#define BK4819_REG_30_SHIFT_ENABLE_PA_GAIN 3 -#define BK4819_REG_30_SHIFT_ENABLE_MIC_ADC 2 -#define BK4819_REG_30_SHIFT_ENABLE_TX_DSP 1 -#define BK4819_REG_30_SHIFT_ENABLE_RX_DSP 0 +#define BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB 15 +#define BK4819_REG_30_SHIFT_ENABLE_UNKNOWN 14 +#define BK4819_REG_30_SHIFT_ENABLE_RX_LINK 10 +#define BK4819_REG_30_SHIFT_ENABLE_AF_DAC 9 +#define BK4819_REG_30_SHIFT_ENABLE_DISC_MODE 8 +#define BK4819_REG_30_SHIFT_ENABLE_PLL_VCO 4 +#define BK4819_REG_30_SHIFT_ENABLE_PA_GAIN 3 +#define BK4819_REG_30_SHIFT_ENABLE_MIC_ADC 2 +#define BK4819_REG_30_SHIFT_ENABLE_TX_DSP 1 +#define BK4819_REG_30_SHIFT_ENABLE_RX_DSP 0 -#define BK4819_REG_30_MASK_ENABLE_VCO_CALIB (0x1U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB) -#define BK4819_REG_30_MASK_ENABLE_UNKNOWN (0x1U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN) -#define BK4819_REG_30_MASK_ENABLE_RX_LINK (0xFU << BK4819_REG_30_SHIFT_ENABLE_RX_LINK) -#define BK4819_REG_30_MASK_ENABLE_AF_DAC (0x1U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC) -#define BK4819_REG_30_MASK_ENABLE_DISC_MODE (0x1U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE) -#define BK4819_REG_30_MASK_ENABLE_PLL_VCO (0xFU << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO) -#define BK4819_REG_30_MASK_ENABLE_PA_GAIN (0x1U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN) -#define BK4819_REG_30_MASK_ENABLE_MIC_ADC (0x1U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC) -#define BK4819_REG_30_MASK_ENABLE_TX_DSP (0x1U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP) -#define BK4819_REG_30_MASK_ENABLE_RX_DSP (0x1U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP) +#define BK4819_REG_30_MASK_ENABLE_VCO_CALIB (0x1U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB) +#define BK4819_REG_30_MASK_ENABLE_UNKNOWN (0x1U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN) +#define BK4819_REG_30_MASK_ENABLE_RX_LINK (0xFU << BK4819_REG_30_SHIFT_ENABLE_RX_LINK) +#define BK4819_REG_30_MASK_ENABLE_AF_DAC (0x1U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC) +#define BK4819_REG_30_MASK_ENABLE_DISC_MODE (0x1U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE) +#define BK4819_REG_30_MASK_ENABLE_PLL_VCO (0xFU << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO) +#define BK4819_REG_30_MASK_ENABLE_PA_GAIN (0x1U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN) +#define BK4819_REG_30_MASK_ENABLE_MIC_ADC (0x1U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC) +#define BK4819_REG_30_MASK_ENABLE_TX_DSP (0x1U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP) +#define BK4819_REG_30_MASK_ENABLE_RX_DSP (0x1U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP) enum { - BK4819_REG_30_ENABLE_VCO_CALIB = (0x1U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB), - BK4819_REG_30_DISABLE_VCO_CALIB = (0x0U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB), - BK4819_REG_30_ENABLE_UNKNOWN = (0x1U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN), - BK4819_REG_30_DISABLE_UNKNOWN = (0x0U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN), - BK4819_REG_30_ENABLE_RX_LINK = (0xFU << BK4819_REG_30_SHIFT_ENABLE_RX_LINK), - BK4819_REG_30_DISABLE_RX_LINK = (0x0U << BK4819_REG_30_SHIFT_ENABLE_RX_LINK), - BK4819_REG_30_ENABLE_AF_DAC = (0x1U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC), - BK4819_REG_30_DISABLE_AF_DAC = (0x0U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC), - BK4819_REG_30_ENABLE_DISC_MODE = (0x1U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE), - BK4819_REG_30_DISABLE_DISC_MODE = (0x0U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE), - BK4819_REG_30_ENABLE_PLL_VCO = (0xFU << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO), - BK4819_REG_30_DISABLE_PLL_VCO = (0x0U << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO), - BK4819_REG_30_ENABLE_PA_GAIN = (0x1U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN), - BK4819_REG_30_DISABLE_PA_GAIN = (0x0U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN), - BK4819_REG_30_ENABLE_MIC_ADC = (0x1U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC), - BK4819_REG_30_DISABLE_MIC_ADC = (0x0U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC), - BK4819_REG_30_ENABLE_TX_DSP = (0x1U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP), - BK4819_REG_30_DISABLE_TX_DSP = (0x0U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP), - BK4819_REG_30_ENABLE_RX_DSP = (0x1U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP), - BK4819_REG_30_DISABLE_RX_DSP = (0x0U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP), + BK4819_REG_30_ENABLE_VCO_CALIB = (0x1U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB), + BK4819_REG_30_DISABLE_VCO_CALIB = (0x0U << BK4819_REG_30_SHIFT_ENABLE_VCO_CALIB), + BK4819_REG_30_ENABLE_UNKNOWN = (0x1U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN), + BK4819_REG_30_DISABLE_UNKNOWN = (0x0U << BK4819_REG_30_SHIFT_ENABLE_UNKNOWN), + BK4819_REG_30_ENABLE_RX_LINK = (0xFU << BK4819_REG_30_SHIFT_ENABLE_RX_LINK), + BK4819_REG_30_DISABLE_RX_LINK = (0x0U << BK4819_REG_30_SHIFT_ENABLE_RX_LINK), + BK4819_REG_30_ENABLE_AF_DAC = (0x1U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC), + BK4819_REG_30_DISABLE_AF_DAC = (0x0U << BK4819_REG_30_SHIFT_ENABLE_AF_DAC), + BK4819_REG_30_ENABLE_DISC_MODE = (0x1U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE), + BK4819_REG_30_DISABLE_DISC_MODE = (0x0U << BK4819_REG_30_SHIFT_ENABLE_DISC_MODE), + BK4819_REG_30_ENABLE_PLL_VCO = (0xFU << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO), + BK4819_REG_30_DISABLE_PLL_VCO = (0x0U << BK4819_REG_30_SHIFT_ENABLE_PLL_VCO), + BK4819_REG_30_ENABLE_PA_GAIN = (0x1U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN), + BK4819_REG_30_DISABLE_PA_GAIN = (0x0U << BK4819_REG_30_SHIFT_ENABLE_PA_GAIN), + BK4819_REG_30_ENABLE_MIC_ADC = (0x1U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC), + BK4819_REG_30_DISABLE_MIC_ADC = (0x0U << BK4819_REG_30_SHIFT_ENABLE_MIC_ADC), + BK4819_REG_30_ENABLE_TX_DSP = (0x1U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP), + BK4819_REG_30_DISABLE_TX_DSP = (0x0U << BK4819_REG_30_SHIFT_ENABLE_TX_DSP), + BK4819_REG_30_ENABLE_RX_DSP = (0x1U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP), + BK4819_REG_30_DISABLE_RX_DSP = (0x0U << BK4819_REG_30_SHIFT_ENABLE_RX_DSP), }; // REG 3F -#define BK4819_REG_3F_SHIFT_FSK_TX_FINISHED 15 -#define BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY 14 -#define BK4819_REG_3F_SHIFT_FSK_RX_FINISHED 13 -#define BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL 12 -#define BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND 11 -#define BK4819_REG_3F_SHIFT_CxCSS_TAIL 10 -#define BK4819_REG_3F_SHIFT_CDCSS_FOUND 9 -#define BK4819_REG_3F_SHIFT_CDCSS_LOST 8 -#define BK4819_REG_3F_SHIFT_CTCSS_FOUND 7 -#define BK4819_REG_3F_SHIFT_CTCSS_LOST 6 -#define BK4819_REG_3F_SHIFT_VOX_FOUND 5 -#define BK4819_REG_3F_SHIFT_VOX_LOST 4 -#define BK4819_REG_3F_SHIFT_SQUELCH_FOUND 3 -#define BK4819_REG_3F_SHIFT_SQUELCH_LOST 2 -#define BK4819_REG_3F_SHIFT_FSK_RX_SYNC 1 +#define BK4819_REG_3F_SHIFT_FSK_TX_FINISHED 15 +#define BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY 14 +#define BK4819_REG_3F_SHIFT_FSK_RX_FINISHED 13 +#define BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL 12 +#define BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND 11 +#define BK4819_REG_3F_SHIFT_CxCSS_TAIL 10 +#define BK4819_REG_3F_SHIFT_CDCSS_FOUND 9 +#define BK4819_REG_3F_SHIFT_CDCSS_LOST 8 +#define BK4819_REG_3F_SHIFT_CTCSS_FOUND 7 +#define BK4819_REG_3F_SHIFT_CTCSS_LOST 6 +#define BK4819_REG_3F_SHIFT_VOX_FOUND 5 +#define BK4819_REG_3F_SHIFT_VOX_LOST 4 +#define BK4819_REG_3F_SHIFT_SQUELCH_FOUND 3 +#define BK4819_REG_3F_SHIFT_SQUELCH_LOST 2 +#define BK4819_REG_3F_SHIFT_FSK_RX_SYNC 1 -#define BK4819_REG_3F_MASK_FSK_TX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_TX) -#define BK4819_REG_3F_MASK_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY) -#define BK4819_REG_3F_MASK_FSK_RX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_RX_FINISHED) -#define BK4819_REG_3F_MASK_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL) -#define BK4819_REG_3F_MASK_DTMF_5TONE_FOUND (1U << BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND) -#define BK4819_REG_3F_MASK_CxCSS_TAIL (1U << BK4819_REG_3F_SHIFT_CxCSS_TAIL) -#define BK4819_REG_3F_MASK_CDCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CDCSS_FOUND) -#define BK4819_REG_3F_MASK_CDCSS_LOST (1U << BK4819_REG_3F_SHIFT_CDCSS_LOST) -#define BK4819_REG_3F_MASK_CTCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CTCSS_FOUND) -#define BK4819_REG_3F_MASK_CTCSS_LOST (1U << BK4819_REG_3F_SHIFT_CTCSS_LOST) -#define BK4819_REG_3F_MASK_VOX_FOUND (1U << BK4819_REG_3F_SHIFT_VOX_FOUND) -#define BK4819_REG_3F_MASK_VOX_LOST (1U << BK4819_REG_3F_SHIFT_VOX_LOST) -#define BK4819_REG_3F_MASK_SQUELCH_FOUND (1U << BK4819_REG_3F_SHIFT_SQUELCH_FOUND) -#define BK4819_REG_3F_MASK_SQUELCH_LOST (1U << BK4819_REG_3F_SHIFT_SQUELCH_LOST) -#define BK4819_REG_3F_MASK_FSK_RX_SYNC (1U << BK4819_REG_3F_SHIFT_FSK_RX_SYNC) +#define BK4819_REG_3F_MASK_FSK_TX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_TX) +#define BK4819_REG_3F_MASK_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY) +#define BK4819_REG_3F_MASK_FSK_RX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_RX_FINISHED) +#define BK4819_REG_3F_MASK_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL) +#define BK4819_REG_3F_MASK_DTMF_5TONE_FOUND (1U << BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND) +#define BK4819_REG_3F_MASK_CxCSS_TAIL (1U << BK4819_REG_3F_SHIFT_CxCSS_TAIL) +#define BK4819_REG_3F_MASK_CDCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CDCSS_FOUND) +#define BK4819_REG_3F_MASK_CDCSS_LOST (1U << BK4819_REG_3F_SHIFT_CDCSS_LOST) +#define BK4819_REG_3F_MASK_CTCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CTCSS_FOUND) +#define BK4819_REG_3F_MASK_CTCSS_LOST (1U << BK4819_REG_3F_SHIFT_CTCSS_LOST) +#define BK4819_REG_3F_MASK_VOX_FOUND (1U << BK4819_REG_3F_SHIFT_VOX_FOUND) +#define BK4819_REG_3F_MASK_VOX_LOST (1U << BK4819_REG_3F_SHIFT_VOX_LOST) +#define BK4819_REG_3F_MASK_SQUELCH_FOUND (1U << BK4819_REG_3F_SHIFT_SQUELCH_FOUND) +#define BK4819_REG_3F_MASK_SQUELCH_LOST (1U << BK4819_REG_3F_SHIFT_SQUELCH_LOST) +#define BK4819_REG_3F_MASK_FSK_RX_SYNC (1U << BK4819_REG_3F_SHIFT_FSK_RX_SYNC) -#define BK4819_REG_3F_FSK_TX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_TX_FINISHED) -#define BK4819_REG_3F_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY) -#define BK4819_REG_3F_FSK_RX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_RX_FINISHED) -#define BK4819_REG_3F_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL) -#define BK4819_REG_3F_DTMF_5TONE_FOUND (1U << BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND) -#define BK4819_REG_3F_CxCSS_TAIL (1U << BK4819_REG_3F_SHIFT_CxCSS_TAIL) -#define BK4819_REG_3F_CDCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CDCSS_FOUND) -#define BK4819_REG_3F_CDCSS_LOST (1U << BK4819_REG_3F_SHIFT_CDCSS_LOST) -#define BK4819_REG_3F_CTCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CTCSS_FOUND) -#define BK4819_REG_3F_CTCSS_LOST (1U << BK4819_REG_3F_SHIFT_CTCSS_LOST) -#define BK4819_REG_3F_VOX_FOUND (1U << BK4819_REG_3F_SHIFT_VOX_FOUND) -#define BK4819_REG_3F_VOX_LOST (1U << BK4819_REG_3F_SHIFT_VOX_LOST) -#define BK4819_REG_3F_SQUELCH_FOUND (1U << BK4819_REG_3F_SHIFT_SQUELCH_FOUND) -#define BK4819_REG_3F_SQUELCH_LOST (1U << BK4819_REG_3F_SHIFT_SQUELCH_LOST) -#define BK4819_REG_3F_FSK_RX_SYNC (1U << BK4819_REG_3F_SHIFT_FSK_RX_SYNC) +#define BK4819_REG_3F_FSK_TX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_TX_FINISHED) +#define BK4819_REG_3F_FSK_FIFO_ALMOST_EMPTY (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_EMPTY) +#define BK4819_REG_3F_FSK_RX_FINISHED (1U << BK4819_REG_3F_SHIFT_FSK_RX_FINISHED) +#define BK4819_REG_3F_FSK_FIFO_ALMOST_FULL (1U << BK4819_REG_3F_SHIFT_FSK_FIFO_ALMOST_FULL) +#define BK4819_REG_3F_DTMF_5TONE_FOUND (1U << BK4819_REG_3F_SHIFT_DTMF_5TONE_FOUND) +#define BK4819_REG_3F_CxCSS_TAIL (1U << BK4819_REG_3F_SHIFT_CxCSS_TAIL) +#define BK4819_REG_3F_CDCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CDCSS_FOUND) +#define BK4819_REG_3F_CDCSS_LOST (1U << BK4819_REG_3F_SHIFT_CDCSS_LOST) +#define BK4819_REG_3F_CTCSS_FOUND (1U << BK4819_REG_3F_SHIFT_CTCSS_FOUND) +#define BK4819_REG_3F_CTCSS_LOST (1U << BK4819_REG_3F_SHIFT_CTCSS_LOST) +#define BK4819_REG_3F_VOX_FOUND (1U << BK4819_REG_3F_SHIFT_VOX_FOUND) +#define BK4819_REG_3F_VOX_LOST (1U << BK4819_REG_3F_SHIFT_VOX_LOST) +#define BK4819_REG_3F_SQUELCH_FOUND (1U << BK4819_REG_3F_SHIFT_SQUELCH_FOUND) +#define BK4819_REG_3F_SQUELCH_LOST (1U << BK4819_REG_3F_SHIFT_SQUELCH_LOST) +#define BK4819_REG_3F_FSK_RX_SYNC (1U << BK4819_REG_3F_SHIFT_FSK_RX_SYNC) // REG 51 @@ -345,8 +269,8 @@ enum { #define BK4819_REG_70_MASK_TONE2_TUNING_GAIN (0x7Fu << BK4819_REG_70_SHIFT_TONE2_TUNING_GAIN) enum { - BK4819_REG_70_ENABLE_TONE1 = (1u << BK4819_REG_70_SHIFT_ENABLE_TONE1), - BK4819_REG_70_ENABLE_TONE2 = (1u << BK4819_REG_70_SHIFT_ENABLE_TONE2) + BK4819_REG_70_ENABLE_TONE1 = (1u << BK4819_REG_70_SHIFT_ENABLE_TONE1), + BK4819_REG_70_ENABLE_TONE2 = (1u << BK4819_REG_70_SHIFT_ENABLE_TONE2) }; // ***************** diff --git a/driver/bk4819.c b/driver/bk4819.c index e7fe6f5..a60910f 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -47,18 +47,18 @@ void BK4819_Init(void) GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SDA); - BK4819_WriteRegister(BK4819_REG_00, 0x8000); - BK4819_WriteRegister(BK4819_REG_00, 0x0000); + BK4819_WriteRegister(0x00, 0x8000); + BK4819_WriteRegister(0x00, 0x0000); - BK4819_WriteRegister(BK4819_REG_37, 0x1D0F); - BK4819_WriteRegister(BK4819_REG_36, 0x0022); + BK4819_WriteRegister(0x37, 0x1D0F); + BK4819_WriteRegister(0x36, 0x0022); // BK4819_DisableAGC(); BK4819_EnableAGC(); - BK4819_WriteRegister(BK4819_REG_19, 0x1041); // 0001 0000 0100 0001 <15> MIC AGC 1 = disable 0 = enable + BK4819_WriteRegister(0x19, 0x1041); // 0001 0000 0100 0001 <15> MIC AGC 1 = disable 0 = enable - BK4819_WriteRegister(BK4819_REG_7D, 0xE940); + BK4819_WriteRegister(0x7D, 0xE940); // REG_48 .. RX AF level // @@ -78,7 +78,7 @@ void BK4819_Init(void) // 15 = max // 0 = min // - BK4819_WriteRegister(BK4819_REG_48, // 0xB3A8); // 1011 00 111010 1000 + BK4819_WriteRegister(0x48, // 0xB3A8); // 1011 00 111010 1000 (11u << 12) | // ??? 0..15 ( 0u << 10) | // AF Rx Gain-1 (58u << 4) | // AF Rx Gain-2 @@ -87,34 +87,34 @@ void BK4819_Init(void) #if 1 const uint8_t dtmf_coeffs[] = {111, 107, 103, 98, 80, 71, 58, 44, 65, 55, 37, 23, 228, 203, 181, 159}; for (unsigned int i = 0; i < ARRAY_SIZE(dtmf_coeffs); i++) - BK4819_WriteRegister(BK4819_REG_09, (i << 12) | dtmf_coeffs[i]); + BK4819_WriteRegister(0x09, (i << 12) | dtmf_coeffs[i]); #else // original code - BK4819_WriteRegister(BK4819_REG_09, 0x006F); // 6F - BK4819_WriteRegister(BK4819_REG_09, 0x106B); // 6B - BK4819_WriteRegister(BK4819_REG_09, 0x2067); // 67 - BK4819_WriteRegister(BK4819_REG_09, 0x3062); // 62 - BK4819_WriteRegister(BK4819_REG_09, 0x4050); // 50 - BK4819_WriteRegister(BK4819_REG_09, 0x5047); // 47 - BK4819_WriteRegister(BK4819_REG_09, 0x603A); // 3A - BK4819_WriteRegister(BK4819_REG_09, 0x702C); // 2C - BK4819_WriteRegister(BK4819_REG_09, 0x8041); // 41 - BK4819_WriteRegister(BK4819_REG_09, 0x9037); // 37 - BK4819_WriteRegister(BK4819_REG_09, 0xA025); // 25 - BK4819_WriteRegister(BK4819_REG_09, 0xB017); // 17 - BK4819_WriteRegister(BK4819_REG_09, 0xC0E4); // E4 - BK4819_WriteRegister(BK4819_REG_09, 0xD0CB); // CB - BK4819_WriteRegister(BK4819_REG_09, 0xE0B5); // B5 - BK4819_WriteRegister(BK4819_REG_09, 0xF09F); // 9F + BK4819_WriteRegister(0x09, 0x006F); // 6F + BK4819_WriteRegister(0x09, 0x106B); // 6B + BK4819_WriteRegister(0x09, 0x2067); // 67 + BK4819_WriteRegister(0x09, 0x3062); // 62 + BK4819_WriteRegister(0x09, 0x4050); // 50 + BK4819_WriteRegister(0x09, 0x5047); // 47 + BK4819_WriteRegister(0x09, 0x603A); // 3A + BK4819_WriteRegister(0x09, 0x702C); // 2C + BK4819_WriteRegister(0x09, 0x8041); // 41 + BK4819_WriteRegister(0x09, 0x9037); // 37 + BK4819_WriteRegister(0x09, 0xA025); // 25 + BK4819_WriteRegister(0x09, 0xB017); // 17 + BK4819_WriteRegister(0x09, 0xC0E4); // E4 + BK4819_WriteRegister(0x09, 0xD0CB); // CB + BK4819_WriteRegister(0x09, 0xE0B5); // B5 + BK4819_WriteRegister(0x09, 0xF09F); // 9F #endif - BK4819_WriteRegister(BK4819_REG_1F, 0x5454); - BK4819_WriteRegister(BK4819_REG_3E, 0xA037); + BK4819_WriteRegister(0x1F, 0x5454); + BK4819_WriteRegister(0x3E, 0xA037); gBK4819_GpioOutState = 0x9000; - BK4819_WriteRegister(BK4819_REG_33, 0x9000); - BK4819_WriteRegister(BK4819_REG_3F, 0); + BK4819_WriteRegister(0x33, 0x9000); + BK4819_WriteRegister(0x3F, 0); #if 0 // rt-890 @@ -169,7 +169,7 @@ static uint16_t BK4819_ReadU16(void) return Value; } -uint16_t BK4819_ReadRegister(bk4819_register_t Register) +uint16_t BK4819_ReadRegister(const uint8_t Register) { uint16_t Value; @@ -191,7 +191,7 @@ uint16_t BK4819_ReadRegister(bk4819_register_t Register) return Value; } -void BK4819_WriteRegister(bk4819_register_t Register, uint16_t Data) +void BK4819_WriteRegister(const uint8_t Register, uint16_t Data) { GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); @@ -199,7 +199,6 @@ void BK4819_WriteRegister(bk4819_register_t Register, uint16_t Data) GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); BK4819_WriteU8(Register); BK4819_WriteU16(Data); - SYSTICK_DelayUs(1); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCN); SYSTICK_DelayUs(1); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_BK4819_SCL); @@ -293,18 +292,17 @@ void BK4819_DisableAGC() // 0 = -33dB // undoes BK4819_EnableAGC reg write - //BK4819_WriteRegister(BK4819_REG_7E, (0u << 15)); + //BK4819_WriteRegister(0x7E, (0u << 15)); - 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(0x13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); // 000000 11 101 11 110 + BK4819_WriteRegister(0x12, 0x037B); // 000000 11 011 11 011 + BK4819_WriteRegister(0x11, 0x027B); // 000000 10 011 11 011 + BK4819_WriteRegister(0x10, 0x007A); // 000000 00 011 11 010 + BK4819_WriteRegister(0x14, 0x0019); // 000000 00 000 11 001 // undocumented ? - BK4819_WriteRegister(BK4819_REG_49, 0x2A38); - BK4819_WriteRegister(BK4819_REG_7B, 0x8420); + BK4819_WriteRegister(0x49, 0x2A38); + BK4819_WriteRegister(0x7B, 0x8420); } void BK4819_EnableAGC() @@ -327,25 +325,23 @@ void BK4819_EnableAGC() // 000=Bypass DC filter; // default fix index too strong, set to min (011->100) - //BK4819_WriteRegister(BK4819_REG_7E, (1u << 15) | (4u << 12) | (5u << 3) | (6u << 0)); + //BK4819_WriteRegister(0x7E, (1u << 15) | (4u << 12) | (5u << 3) | (6u << 0)); - BK4819_WriteRegister(BK4819_REG_13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); // 000000 11 101 11 110 - - 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(0x13, (3u << 8) | (2u << 5) | (3u << 3) | (6u << 0)); // 000000 11 101 11 110 + BK4819_WriteRegister(0x12, 0x037C); + BK4819_WriteRegister(0x11, 0x027B); + BK4819_WriteRegister(0x10, 0x007A); + BK4819_WriteRegister(0x14, 0x0018); // undocumented ? - BK4819_WriteRegister(BK4819_REG_49, 0x2A38); - BK4819_WriteRegister(BK4819_REG_7B, 0x318C); - BK4819_WriteRegister(BK4819_REG_7C, 0x595E); - BK4819_WriteRegister(BK4819_REG_20, 0x8DEF); + BK4819_WriteRegister(0x49, 0x2A38); + BK4819_WriteRegister(0x7B, 0x318C); + BK4819_WriteRegister(0x7C, 0x595E); + BK4819_WriteRegister(0x20, 0x8DEF); // fagci had the answer to why we weren't as sensitive! - for (unsigned int i = 0; i < 8; i++) { - BK4819_WriteRegister(0x06, (i & 7) << 13 | 0x4A << 7 | 0x36); - } + for (unsigned int i = 0; i < 8; i++) + BK4819_WriteRegister(0x06, ((i & 7u) << 13) | (0x4A << 7) | (0x36 << 0)); } void BK4819_set_GPIO_pin(bk4819_gpio_pin_t Pin, bool bSet) @@ -355,7 +351,7 @@ void BK4819_set_GPIO_pin(bk4819_gpio_pin_t Pin, bool bSet) else gBK4819_GpioOutState &= ~(0x40u >> Pin); - BK4819_WriteRegister(BK4819_REG_33, gBK4819_GpioOutState); + BK4819_WriteRegister(0x33, gBK4819_GpioOutState); } void BK4819_SetCDCSSCodeWord(uint32_t CodeWord) @@ -405,7 +401,7 @@ void BK4819_SetCDCSSCodeWord(uint32_t CodeWord) // Enable Auto CTCSS Bw Mode // CTCSS/CDCSS Tx Gain1 Tuning = 51 // - BK4819_WriteRegister(BK4819_REG_51, + BK4819_WriteRegister(0x51, BK4819_REG_51_ENABLE_CxCSS | BK4819_REG_51_GPIO6_PIN2_NORMAL | BK4819_REG_51_TX_CDCSS_POSITIVE | @@ -433,14 +429,14 @@ void BK4819_SetCDCSSCodeWord(uint32_t CodeWord) // 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(BK4819_REG_07, BK4819_REG_07_MODE_CTC1 | 2775u); + 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(BK4819_REG_08, (0u << 15) | ((CodeWord >> 0) & 0x0FFF)); // LS 12-bits - BK4819_WriteRegister(BK4819_REG_08, (1u << 15) | ((CodeWord >> 12) & 0x0FFF)); // MS 12-bits + 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) @@ -476,7 +472,7 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord) // Config = 0x904A; // 1 0 0 1 0 0 0 0 0 1001010 } - BK4819_WriteRegister(BK4819_REG_51, Config); + BK4819_WriteRegister(0x51, Config); // REG_07 <15:0> // @@ -495,7 +491,7 @@ void BK4819_SetCTCSSFrequency(uint32_t FreqControlWord) // 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(BK4819_REG_07, BK4819_REG_07_MODE_CTC1 | (((FreqControlWord * 206488u) + 50000u) / 100000u)); // with rounding + BK4819_WriteRegister(0x07, BK4819_REG_07_MODE_CTC1 | (((FreqControlWord * 206488u) + 50000u) / 100000u)); // with rounding } // freq_10Hz is CTCSS Hz * 10 @@ -518,7 +514,7 @@ void BK4819_SetTailDetection(const uint32_t freq_10Hz) // 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(BK4819_REG_07, BK4819_REG_07_MODE_CTC2 | ((253910 + (freq_10Hz / 2)) / freq_10Hz)); // with rounding + BK4819_WriteRegister(0x07, BK4819_REG_07_MODE_CTC2 | ((253910 + (freq_10Hz / 2)) / freq_10Hz)); // with rounding } void BK4819_EnableVox(uint16_t VoxEnableThreshold, uint16_t VoxDisableThreshold) @@ -528,19 +524,19 @@ void BK4819_EnableVox(uint16_t VoxEnableThreshold, uint16_t VoxDisableThreshold) //else //if (voxamp> 0) & 0xFFFF); - BK4819_WriteRegister(BK4819_REG_39, (frequency >> 16) & 0xFFFF); + BK4819_WriteRegister(0x38, (frequency >> 0) & 0xFFFF); + BK4819_WriteRegister(0x39, (frequency >> 16) & 0xFFFF); if (trigger_update) { @@ -727,10 +723,10 @@ void BK4819_set_rf_frequency(const uint32_t frequency, const bool trigger_update // // trigger a PLL/VCO update // - const uint16_t reg = BK4819_ReadRegister(BK4819_REG_30); -// BK4819_WriteRegister(BK4819_REG_30, reg & ~(1u << 15) & (15u << 4)); - BK4819_WriteRegister(BK4819_REG_30, 0x0200); - BK4819_WriteRegister(BK4819_REG_30, reg); + const uint16_t reg = BK4819_ReadRegister(0x30); +// BK4819_WriteRegister(0x30, reg & ~(1u << 15) & (15u << 4)); + BK4819_WriteRegister(0x30, 0x0200); + BK4819_WriteRegister(0x30, reg); } } @@ -758,13 +754,13 @@ void BK4819_SetupSquelch( // <6:0> 0 TONE2/FSK tuning gain // 0 ~ 127 // - BK4819_WriteRegister(BK4819_REG_70, 0); + BK4819_WriteRegister(0x70, 0); // Glitch threshold for Squelch = close // // 0 ~ 255 // - BK4819_WriteRegister(BK4819_REG_4D, 0xA000 | squelch_close_glitch_thresh); + BK4819_WriteRegister(0x4D, 0xA000 | squelch_close_glitch_thresh); // REG_4E // @@ -781,7 +777,7 @@ void BK4819_SetupSquelch( // <7:0> 8 Glitch threshold for Squelch = open // 0 ~ 255 // - BK4819_WriteRegister(BK4819_REG_4E, // 01 101 11 1 00000000 + BK4819_WriteRegister(0x4E, // 01 101 11 1 00000000 // #ifndef ENABLE_FASTER_CHANNEL_SCAN // original (*) (1u << 14) | // 1 ??? @@ -806,7 +802,7 @@ void BK4819_SetupSquelch( // <6:0> 46 Ex-noise threshold for Squelch = open // 0 ~ 127 // - BK4819_WriteRegister(BK4819_REG_4F, ((uint16_t)squelch_close_noise_thresh << 8) | squelch_open_noise_thresh); + BK4819_WriteRegister(0x4F, ((uint16_t)squelch_close_noise_thresh << 8) | squelch_open_noise_thresh); // REG_78 // @@ -814,7 +810,7 @@ void BK4819_SetupSquelch( // // <7:0> 70 RSSI threshold for Squelch = close 0.5dB/step // - BK4819_WriteRegister(BK4819_REG_78, ((uint16_t)squelch_open_rssi_thresh << 8) | squelch_close_rssi_thresh); + BK4819_WriteRegister(0x78, ((uint16_t)squelch_open_rssi_thresh << 8) | squelch_close_rssi_thresh); BK4819_SetAF(BK4819_AF_MUTE); @@ -826,8 +822,8 @@ void BK4819_SetAF(BK4819_af_type_t AF) // AF Output Inverse Mode = Inverse // Undocumented bits 0x2040 // -// BK4819_WriteRegister(BK4819_REG_47, 0x6040 | (AF << 8)); - BK4819_WriteRegister(BK4819_REG_47, (6u << 12) | (AF << 8) | (1u << 6)); +// BK4819_WriteRegister(0x47, 0x6040 | (AF << 8)); + BK4819_WriteRegister(0x47, (6u << 12) | (AF << 8) | (1u << 6)); } void BK4819_RX_TurnOn(void) @@ -846,10 +842,10 @@ void BK4819_RX_TurnOn(void) // Enable XTAL // Enable Band Gap // - BK4819_WriteRegister(BK4819_REG_37, 0x1F0F); // 0001 1111 0000 1111 + BK4819_WriteRegister(0x37, 0x1F0F); // 0001 1111 0000 1111 // Turn off everything - BK4819_WriteRegister(BK4819_REG_30, 0); + BK4819_WriteRegister(0x30, 0); // Enable VCO Calibration // Enable RX Link @@ -860,7 +856,7 @@ void BK4819_RX_TurnOn(void) // Disable TX DSP // Enable RX DSP // - BK4819_WriteRegister(BK4819_REG_30, 0xbff1); // 1 0 1111 1 1 1111 0 0 0 1 + BK4819_WriteRegister(0x30, 0xbff1); // 1 0 1111 1 1 1111 0 0 0 1 } void BK4819_set_rf_filter_path(uint32_t Frequency) @@ -885,21 +881,21 @@ void BK4819_set_rf_filter_path(uint32_t Frequency) void BK4819_DisableScramble(void) { - const uint16_t Value = BK4819_ReadRegister(BK4819_REG_31); - BK4819_WriteRegister(BK4819_REG_31, Value & ~(1u << 1)); + const uint16_t Value = BK4819_ReadRegister(0x31); + BK4819_WriteRegister(0x31, Value & ~(1u << 1)); } void BK4819_EnableScramble(uint8_t Type) { - const uint16_t Value = BK4819_ReadRegister(BK4819_REG_31); - BK4819_WriteRegister(BK4819_REG_31, Value | (1u << 1)); + const uint16_t Value = BK4819_ReadRegister(0x31); + BK4819_WriteRegister(0x31, Value | (1u << 1)); - BK4819_WriteRegister(BK4819_REG_71, 0x68DC + (Type * 1032)); // 0110 1000 1101 1100 + BK4819_WriteRegister(0x71, 0x68DC + (Type * 1032)); // 0110 1000 1101 1100 } bool BK4819_CompanderEnabled(void) { - return (BK4819_ReadRegister(BK4819_REG_31) & (1u << 3)) ? true : false; + return (BK4819_ReadRegister(0x31) & (1u << 3)) ? true : false; } void BK4819_SetCompander(const unsigned int mode) @@ -909,11 +905,11 @@ void BK4819_SetCompander(const unsigned int mode) // mode 2 .. RX // mode 3 .. TX and RX - const uint16_t r31 = BK4819_ReadRegister(BK4819_REG_31); + const uint16_t r31 = BK4819_ReadRegister(0x31); if (mode == 0) { // disable - BK4819_WriteRegister(BK4819_REG_31, r31 & ~(1u << 3)); + BK4819_WriteRegister(0x31, r31 & ~(1u << 3)); return; } @@ -930,7 +926,7 @@ void BK4819_SetCompander(const unsigned int mode) // <6:0> 64 Compress (AF Tx) noise point (dB) // const uint16_t compress_ratio = (mode == 1 || mode >= 3) ? 2 : 0; // 2:1 - BK4819_WriteRegister(BK4819_REG_29, // (BK4819_ReadRegister(BK4819_REG_29) & ~(3u << 14)) | (compress_ratio << 14)); + BK4819_WriteRegister(0x29, // (BK4819_ReadRegister(0x29) & ~(3u << 14)) | (compress_ratio << 14)); (compress_ratio << 14) | (86u << 7) | // compress 0dB (64u << 0)); // compress noise dB @@ -948,30 +944,30 @@ void BK4819_SetCompander(const unsigned int mode) // <6:0> 56 Expander (AF Rx) noise point (dB) // const uint16_t expand_ratio = (mode >= 2) ? 1 : 0; // 1:2 - BK4819_WriteRegister(BK4819_REG_28, // (BK4819_ReadRegister(BK4819_REG_28) & ~(3u << 14)) | (expand_ratio << 14)); + BK4819_WriteRegister(0x28, // (BK4819_ReadRegister(0x28) & ~(3u << 14)) | (expand_ratio << 14)); (expand_ratio << 14) | (86u << 7) | // expander 0dB (56u << 0)); // expander noise dB // enable - BK4819_WriteRegister(BK4819_REG_31, r31 | (1u << 3)); + BK4819_WriteRegister(0x31, r31 | (1u << 3)); } void BK4819_DisableVox(void) { - const uint16_t Value = BK4819_ReadRegister(BK4819_REG_31); - BK4819_WriteRegister(BK4819_REG_31, Value & 0xFFFB); + const uint16_t Value = BK4819_ReadRegister(0x31); + BK4819_WriteRegister(0x31, Value & 0xFFFB); } void BK4819_DisableDTMF(void) { - BK4819_WriteRegister(BK4819_REG_24, 0); + BK4819_WriteRegister(0x24, 0); } void BK4819_EnableDTMF(void) { // no idea what this does - BK4819_WriteRegister(BK4819_REG_21, 0x06D8); // 0000 0110 1101 1000 + BK4819_WriteRegister(0x21, 0x06D8); // 0000 0110 1101 1000 // REG_24 // @@ -994,7 +990,7 @@ void BK4819_EnableDTMF(void) // const uint16_t threshold = 24; // default, but doesn't decode non-QS radios const uint16_t threshold = 130; // but 128 ~ 247 does // const uint16_t threshold = 8; // 0 ~ 63 ? .. doesn't work with A and B's :( - BK4819_WriteRegister(BK4819_REG_24, // 1 00011000 1 1 1 1110 + BK4819_WriteRegister(0x24, // 1 00011000 1 1 1 1110 (1u << BK4819_REG_24_SHIFT_UNKNOWN_15) | (threshold << BK4819_REG_24_SHIFT_THRESHOLD) | // 0 ~ 255 (1u << BK4819_REG_24_SHIFT_UNKNOWN_6) | @@ -1010,16 +1006,16 @@ void BK4819_StartTone1(const uint16_t frequency, const unsigned int level, const BK4819_EnterTxMute(); - BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_ENABLE_TONE1 | ((level & 0x7f) << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(0x70, BK4819_REG_70_ENABLE_TONE1 | ((level & 0x7f) << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); if (set_dac) { - BK4819_WriteRegister(BK4819_REG_30, 0); - //BK4819_WriteRegister(BK4819_REG_30, BK4819_REG_30_ENABLE_AF_DAC | BK4819_REG_30_ENABLE_DISC_MODE | BK4819_REG_30_ENABLE_TX_DSP); + BK4819_WriteRegister(0x30, 0); + //BK4819_WriteRegister(0x30, BK4819_REG_30_ENABLE_AF_DAC | BK4819_REG_30_ENABLE_DISC_MODE | BK4819_REG_30_ENABLE_TX_DSP); BK4819_EnableTXLink(); } - BK4819_WriteRegister(BK4819_REG_71, scale_freq(frequency)); + BK4819_WriteRegister(0x71, scale_freq(frequency)); BK4819_ExitTxMute(); // SYSTEM_DelayMs(2); @@ -1033,18 +1029,18 @@ void BK4819_StopTones(void) GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); BK4819_EnterTxMute(); - BK4819_WriteRegister(BK4819_REG_70, 0); - BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); // 1100 0001 1111 1110 + BK4819_WriteRegister(0x70, 0); + BK4819_WriteRegister(0x30, 0xC1FE); // 1100 0001 1111 1110 BK4819_ExitTxMute(); } void BK4819_PlayTone(const unsigned int tone_Hz, const unsigned int delay, const unsigned int level) { - const uint16_t prev_af = BK4819_ReadRegister(BK4819_REG_47); + const uint16_t prev_af = BK4819_ReadRegister(0x47); BK4819_StartTone1(tone_Hz, level, true); SYSTEM_DelayMs(delay - 2); BK4819_StopTones(); - BK4819_WriteRegister(BK4819_REG_47, prev_af); + BK4819_WriteRegister(0x47, prev_af); } void BK4819_PlayRoger(void) @@ -1058,7 +1054,7 @@ void BK4819_PlayRoger(void) const uint32_t tone2_Hz = 1310; #endif - const uint16_t prev_af = BK4819_ReadRegister(BK4819_REG_47); + const uint16_t prev_af = BK4819_ReadRegister(0x47); BK4819_StartTone1(tone1_Hz, 96, true); SYSTEM_DelayMs(80 - 2); @@ -1066,34 +1062,34 @@ void BK4819_PlayRoger(void) SYSTEM_DelayMs(80); BK4819_StopTones(); - BK4819_WriteRegister(BK4819_REG_47, prev_af); + BK4819_WriteRegister(0x47, prev_af); } void BK4819_EnterTxMute(void) { - BK4819_WriteRegister(BK4819_REG_50, 0xBB20); + BK4819_WriteRegister(0x50, 0xBB20); } void BK4819_ExitTxMute(void) { - BK4819_WriteRegister(BK4819_REG_50, 0x3B20); + BK4819_WriteRegister(0x50, 0x3B20); } void BK4819_Sleep(void) { - BK4819_WriteRegister(BK4819_REG_30, 0); - BK4819_WriteRegister(BK4819_REG_37, 0x1D00); + BK4819_WriteRegister(0x30, 0); + BK4819_WriteRegister(0x37, 0x1D00); } void BK4819_TurnsOffTones_TurnsOnRX(void) { - BK4819_WriteRegister(BK4819_REG_70, 0); + BK4819_WriteRegister(0x70, 0); BK4819_SetAF(BK4819_AF_MUTE); BK4819_ExitTxMute(); - BK4819_WriteRegister(BK4819_REG_30, 0); - BK4819_WriteRegister(BK4819_REG_30, + BK4819_WriteRegister(0x30, 0); + BK4819_WriteRegister(0x30, BK4819_REG_30_ENABLE_VCO_CALIB | BK4819_REG_30_ENABLE_RX_LINK | BK4819_REG_30_ENABLE_AF_DAC | @@ -1104,7 +1100,7 @@ void BK4819_TurnsOffTones_TurnsOnRX(void) void BK4819_Idle(void) { - BK4819_WriteRegister(BK4819_REG_30, 0); + BK4819_WriteRegister(0x30, 0); } void BK4819_ExitBypass(void) @@ -1137,7 +1133,7 @@ void BK4819_ExitBypass(void) // 0 ~ 7 // 0 = bypass DC filter // - BK4819_WriteRegister(BK4819_REG_7E, // 0x302E); // 0 011 000000 101 110 + BK4819_WriteRegister(0x7E, // 0x302E); // 0 011 000000 101 110 (0u << 15) | // 0 AGC fix mode (3u << 12) | // 3 AGC fix index (5u << 3) | // 5 DC Filter band width for Tx (MIC In) @@ -1153,10 +1149,10 @@ void BK4819_PrepareTransmit(void) void BK4819_TxOn_Beep(void) { - BK4819_WriteRegister(BK4819_REG_37, 0x1D0F); - BK4819_WriteRegister(BK4819_REG_52, 0x028F); - BK4819_WriteRegister(BK4819_REG_30, 0x0000); - BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); + BK4819_WriteRegister(0x37, 0x1D0F); + BK4819_WriteRegister(0x52, 0x028F); + BK4819_WriteRegister(0x30, 0x0000); + BK4819_WriteRegister(0x30, 0xC1FE); } void BK4819_ExitSubAu(void) @@ -1198,7 +1194,7 @@ void BK4819_ExitSubAu(void) // 0 = min // 127 = max // - BK4819_WriteRegister(BK4819_REG_51, 0x0000); + BK4819_WriteRegister(0x51, 0x0000); } void BK4819_Conditional_RX_TurnOn_and_GPIO6_Enable(void) @@ -1216,7 +1212,7 @@ void BK4819_EnterDTMF_TX(bool bLocalLoopback) BK4819_EnterTxMute(); BK4819_SetAF(bLocalLoopback ? BK4819_AF_BEEP : BK4819_AF_MUTE); - BK4819_WriteRegister(BK4819_REG_70, + BK4819_WriteRegister(0x70, BK4819_REG_70_MASK_ENABLE_TONE1 | (83u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN) | BK4819_REG_70_MASK_ENABLE_TONE2 | @@ -1229,16 +1225,16 @@ void BK4819_ExitDTMF_TX(bool bKeep) { BK4819_EnterTxMute(); BK4819_SetAF(BK4819_AF_MUTE); - BK4819_WriteRegister(BK4819_REG_70, 0); + BK4819_WriteRegister(0x70, 0); BK4819_DisableDTMF(); - BK4819_WriteRegister(BK4819_REG_30, 0xC1FE); + BK4819_WriteRegister(0x30, 0xC1FE); if (!bKeep) BK4819_ExitTxMute(); } void BK4819_EnableTXLink(void) { - BK4819_WriteRegister(BK4819_REG_30, + BK4819_WriteRegister(0x30, BK4819_REG_30_ENABLE_VCO_CALIB | BK4819_REG_30_ENABLE_UNKNOWN | BK4819_REG_30_DISABLE_RX_LINK | @@ -1278,9 +1274,9 @@ void BK4819_PlayDTMF(char Code) } if (tone1 > 0) - BK4819_WriteRegister(BK4819_REG_71, (((uint32_t)tone1 * 103244) + 5000) / 10000); // with rounding + BK4819_WriteRegister(0x71, (((uint32_t)tone1 * 103244) + 5000) / 10000); // with rounding if (tone2 > 0) - BK4819_WriteRegister(BK4819_REG_72, (((uint32_t)tone2 * 103244) + 5000) / 10000); // with rounding + BK4819_WriteRegister(0x72, (((uint32_t)tone2 * 103244) + 5000) / 10000); // with rounding */ uint32_t index = ((Code >= 65) ? (Code - 55) : ((Code <= 35) ? 15 :((Code <= 42) ? 14 : (Code - '0')))); @@ -1327,8 +1323,8 @@ void BK4819_PlayDTMF(char Code) if (index < 16) { - BK4819_WriteRegister(BK4819_REG_71, (((uint32_t)tones[0][index] * 103244U) + 5000U) / 10000U); // with rounding - BK4819_WriteRegister(BK4819_REG_72, (((uint32_t)tones[1][index] * 103244U) + 5000U) / 10000U); // with rounding + BK4819_WriteRegister(0x71, (((uint32_t)tones[0][index] * 103244U) + 5000U) / 10000U); // with rounding + BK4819_WriteRegister(0x72, (((uint32_t)tones[1][index] * 103244U) + 5000U) / 10000U); // with rounding } } @@ -1379,10 +1375,10 @@ void BK4819_TransmitTone(bool bLocalLoopback, uint32_t Frequency) // // set the tone amplitude // -// BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); - BK4819_WriteRegister(BK4819_REG_70, BK4819_REG_70_MASK_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); +// BK4819_WriteRegister(0x70, BK4819_REG_70_MASK_ENABLE_TONE1 | (96u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); + BK4819_WriteRegister(0x70, BK4819_REG_70_MASK_ENABLE_TONE1 | (28u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN)); - BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); + BK4819_WriteRegister(0x71, scale_freq(Frequency)); BK4819_SetAF(bLocalLoopback ? BK4819_AF_BEEP : BK4819_AF_MUTE); @@ -1435,19 +1431,19 @@ void BK4819_GenTail(uint8_t Tail) switch (Tail) { case 0: // 134.4Hz CTCSS Tail - BK4819_WriteRegister(BK4819_REG_52, 0x828F); // 1 00 0 001010 001111 + BK4819_WriteRegister(0x52, 0x828F); // 1 00 0 001010 001111 break; case 1: // 120° phase shift - BK4819_WriteRegister(BK4819_REG_52, 0xA28F); // 1 01 0 001010 001111 + BK4819_WriteRegister(0x52, 0xA28F); // 1 01 0 001010 001111 break; case 2: // 180° phase shift - BK4819_WriteRegister(BK4819_REG_52, 0xC28F); // 1 10 0 001010 001111 + BK4819_WriteRegister(0x52, 0xC28F); // 1 10 0 001010 001111 break; case 3: // 240° phase shift - BK4819_WriteRegister(BK4819_REG_52, 0xE28F); // 1 11 0 001010 001111 + BK4819_WriteRegister(0x52, 0xE28F); // 1 11 0 001010 001111 break; case 4: // 55Hz tone freq - BK4819_WriteRegister(BK4819_REG_07, 0x046f); // 0 00 0 010001 101111 + BK4819_WriteRegister(0x07, 0x046f); // 0 00 0 010001 101111 break; } } @@ -1455,7 +1451,7 @@ void BK4819_GenTail(uint8_t Tail) void BK4819_EnableCDCSS(void) { BK4819_GenTail(0); // CTC134 - BK4819_WriteRegister(BK4819_REG_51, 0x804A); + BK4819_WriteRegister(0x51, 0x804A); } void BK4819_EnableCTCSS(void) @@ -1505,32 +1501,32 @@ void BK4819_EnableCTCSS(void) // 0 = min // 127 = max - BK4819_WriteRegister(BK4819_REG_51, 0x904A); // 1 0 0 1 0 0 0 0 0 1001010 + BK4819_WriteRegister(0x51, 0x904A); // 1 0 0 1 0 0 0 0 0 1001010 } uint16_t BK4819_GetRSSI(void) { - return BK4819_ReadRegister(BK4819_REG_67) & 0x01FF; + return BK4819_ReadRegister(0x67) & 0x01FF; } uint8_t BK4819_GetGlitchIndicator(void) { - return BK4819_ReadRegister(BK4819_REG_63) & 0x00FF; + return BK4819_ReadRegister(0x63) & 0x00FF; } uint8_t BK4819_GetExNoiceIndicator(void) { - return BK4819_ReadRegister(BK4819_REG_65) & 0x007F; + return BK4819_ReadRegister(0x65) & 0x007F; } uint16_t BK4819_GetVoiceAmplitudeOut(void) { - return BK4819_ReadRegister(BK4819_REG_64); + return BK4819_ReadRegister(0x64); } uint8_t BK4819_GetAfTxRx(void) { - return BK4819_ReadRegister(BK4819_REG_6F) & 0x003F; + return BK4819_ReadRegister(0x6F) & 0x003F; } bool BK4819_GetFrequencyScanResult(uint32_t *pFrequency) @@ -1554,8 +1550,8 @@ bool BK4819_GetFrequencyScanResult(uint32_t *pFrequency) // ********** // (REG_0D <10:0> << 16) | (REG_0E <15:0>) .. unit is 10Hz // - const uint16_t high = BK4819_ReadRegister(BK4819_REG_0D); - const uint16_t low = BK4819_ReadRegister(BK4819_REG_0E); + const uint16_t high = BK4819_ReadRegister(0x0D); + const uint16_t low = BK4819_ReadRegister(0x0E); const bool finished = ((high >> 15) & 1u) == 0; *pFrequency = ((uint32_t)(high & 0x07FF) << 16) | low; return finished; @@ -1593,17 +1589,17 @@ BK4819_CSS_scan_result_t BK4819_GetCxCSSScanResult(uint32_t *pCdcssFreq, uint16_ // <11:0> CDCSS Low 12 bits // // - const uint16_t High = BK4819_ReadRegister(BK4819_REG_69); + const uint16_t High = BK4819_ReadRegister(0x69); uint16_t Low; if (((High >> 15) & 1u) == 0) { // CDCSS - Low = BK4819_ReadRegister(BK4819_REG_6A); + Low = BK4819_ReadRegister(0x6A); *pCdcssFreq = ((uint32_t)(High & 0xFFF) << 12) | (Low & 0xFFF); return BK4819_CSS_RESULT_CDCSS; } - Low = BK4819_ReadRegister(BK4819_REG_68); + Low = BK4819_ReadRegister(0x68); if (((Low >> 15) & 1u) == 0) { // CTCSS *pCtcssFreq = ((uint32_t)(Low & 0x1FFF) * 4843) / 10000; @@ -1629,7 +1625,7 @@ void BK4819_DisableFrequencyScan(void) // 1 = enable // 0 = disable // - BK4819_WriteRegister(BK4819_REG_32, // 0x0244); // 00 0000100100010 0 + BK4819_WriteRegister(0x32, // 0x0244); // 00 0000100100010 0 ( 0u << 14) | // 0 frequency scan Time (290u << 1) | // ??? ( 0u << 0)); // 0 frequency scan enable @@ -1651,7 +1647,7 @@ void BK4819_EnableFrequencyScan(void) // 1 = enable // 0 = disable // - BK4819_WriteRegister(BK4819_REG_32, // 0x0245); // 00 0000100100010 1 + BK4819_WriteRegister(0x32, // 0x0245); // 00 0000100100010 1 ( 0u << 14) | // 0 frequency scan time (290u << 1) | // ??? ( 1u << 0)); // 1 frequency scan enable @@ -1698,7 +1694,7 @@ void BK4819_SetScanFrequency(uint32_t Frequency) // 0 = min // 127 = max // - BK4819_WriteRegister(BK4819_REG_51, + BK4819_WriteRegister(0x51, BK4819_REG_51_DISABLE_CxCSS | BK4819_REG_51_GPIO6_PIN2_NORMAL | BK4819_REG_51_TX_CDCSS_POSITIVE | @@ -1713,7 +1709,7 @@ void BK4819_SetScanFrequency(uint32_t Frequency) void BK4819_Disable(void) { - BK4819_WriteRegister(BK4819_REG_30, 0); + BK4819_WriteRegister(0x30, 0); } void BK4819_StopScan(void) @@ -1724,22 +1720,22 @@ void BK4819_StopScan(void) uint8_t BK4819_GetDTMF_5TONE_Code(void) { - return (BK4819_ReadRegister(BK4819_REG_0B) >> 8) & 0x0F; + return (BK4819_ReadRegister(0x0B) >> 8) & 0x0F; } uint8_t BK4819_get_CDCSS_code_type(void) { - return (BK4819_ReadRegister(BK4819_REG_0C) >> 14) & 3u; + return (BK4819_ReadRegister(0x0C) >> 14) & 3u; } uint8_t BK4819_GetCTCShift(void) { - return (BK4819_ReadRegister(BK4819_REG_0C) >> 12) & 3u; + return (BK4819_ReadRegister(0x0C) >> 12) & 3u; } uint8_t BK4819_GetCTCType(void) { - return (BK4819_ReadRegister(BK4819_REG_0C) >> 10) & 3u; + return (BK4819_ReadRegister(0x0C) >> 10) & 3u; } #ifdef ENABLE_AIRCOPY @@ -1765,7 +1761,7 @@ uint8_t BK4819_GetCTCType(void) // // enable tone-2, set gain // - BK4819_WriteRegister(BK4819_REG_70, // 0 0000000 1 1100000 + BK4819_WriteRegister(0x70, // 0 0000000 1 1100000 ( 0u << 15) | ( 0u << 8) | ( 1u << 7) | @@ -1780,11 +1776,11 @@ uint8_t BK4819_GetCTCType(void) // // tone-2 = 1200Hz // - BK4819_WriteRegister(BK4819_REG_72, ((1200u * 103244) + 5000) / 10000); // with rounding + BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding // aircopy is done in direct FM mode // - BK4819_WriteRegister(BK4819_REG_58, // 0x00C1); // 000 000 00 11 00 000 1 + BK4819_WriteRegister(0x58, // 0x00C1); // 000 000 00 11 00 000 1 (0u << 13) | // 1 FSK TX mode selection // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM // 1 = FFSK 1200 / 1800 TX @@ -1843,7 +1839,7 @@ uint8_t BK4819_GetCTCType(void) // // Enable CRC among other things we don't know yet // - BK4819_WriteRegister(BK4819_REG_5C, 0x5665); // 010101100 1 100101 + BK4819_WriteRegister(0x5C, 0x5665); // 010101100 1 100101 // REG_5D // @@ -1854,15 +1850,15 @@ uint8_t BK4819_GetCTCType(void) // // <4:0> 0 ??? // - BK4819_WriteRegister(BK4819_REG_5D, ((packet_size - 1) << 8)); + BK4819_WriteRegister(0x5D, ((packet_size - 1) << 8)); } #endif void BK4819_reset_fsk(void) { - BK4819_WriteRegister(BK4819_REG_3F, 0); // disable interrupts + BK4819_WriteRegister(0x3F, 0); // disable interrupts - BK4819_WriteRegister(BK4819_REG_59, // 0x0068); // 0 0 0 0 0 0 0 0 0110 1 000 + BK4819_WriteRegister(0x59, // 0x0068); // 0 0 0 0 0 0 0 0 0110 1 000 (0u << 15) | // 0 or 1 1 = clear TX FIFO (0u << 14) | // 0 or 1 1 = clear RX FIFO (0u << 13) | // 0 or 1 1 = scramble @@ -1884,15 +1880,15 @@ void BK4819_start_fsk_rx(const unsigned int packet_size) BK4819_reset_fsk(); - BK4819_WriteRegister(BK4819_REG_02, 0); // clear interrupt flags + BK4819_WriteRegister(0x02, 0); // clear interrupt flags // set the packet size - BK4819_WriteRegister(BK4819_REG_5D, ((packet_size - 1) << 8)); + BK4819_WriteRegister(0x5D, ((packet_size - 1) << 8)); BK4819_RX_TurnOn(); -// BK4819_WriteRegister(BK4819_REG_3F, BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); - BK4819_WriteRegister(BK4819_REG_3F, BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); +// BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); + BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); // REG_59 // @@ -1944,8 +1940,8 @@ void BK4819_start_fsk_rx(const unsigned int packet_size) (1u << 3) | // 0 or 1 sync length selection (0u << 0); // 0 ~ 7 ??? - BK4819_WriteRegister(BK4819_REG_59, (1u << 14) | fsk_reg59); // clear RX fifo - BK4819_WriteRegister(BK4819_REG_59, (1u << 13) | (1u << 12) | fsk_reg59); // enable scrambler, enable RX + BK4819_WriteRegister(0x59, (1u << 14) | fsk_reg59); // clear RX fifo + BK4819_WriteRegister(0x59, (1u << 13) | (1u << 12) | fsk_reg59); // enable scrambler, enable RX } #ifdef ENABLE_MDC1200 @@ -1970,7 +1966,7 @@ void BK4819_PlayRogerMDC1200(void) // MDC1200 uses 1200/1800 Hz FSK tone frequencies 1200 bits/s // - BK4819_WriteRegister(BK4819_REG_58, // 0x37C3); // 001 101 11 11 00 001 1 + BK4819_WriteRegister(0x58, // 0x37C3); // 001 101 11 11 00 001 1 (1u << 13) | // 1 FSK TX mode selection // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM // 1 = FFSK 1200/1800 TX @@ -2025,7 +2021,7 @@ void BK4819_PlayRogerMDC1200(void) // // tone-2 = 1200Hz // - BK4819_WriteRegister(BK4819_REG_72, ((1200u * 103244) + 5000) / 10000); // with rounding + BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding // REG_70 // @@ -2044,7 +2040,7 @@ void BK4819_PlayRogerMDC1200(void) // // enable tone-2, set gain // - BK4819_WriteRegister(BK4819_REG_70, // 0 0000000 1 1100000 + BK4819_WriteRegister(0x70, // 0 0000000 1 1100000 ( 0u << 15) | // 0 ( 0u << 8) | // 0 ( 1u << 7) | // 1 @@ -2101,24 +2097,24 @@ void BK4819_PlayRogerMDC1200(void) (0u << 0); // 0 ~ 7 ??? // Set entire packet length (not including the pre-amble and sync bytes we can't seem to disable) - BK4819_WriteRegister(BK4819_REG_5D, ((size - 1) << 8)); + BK4819_WriteRegister(0x5D, ((size - 1) << 8)); - BK4819_WriteRegister(BK4819_REG_59, (1u << 15) | fsk_reg59); // clear TX fifo by setting the FIFO reset bit - BK4819_WriteRegister(BK4819_REG_59, (0u << 15) | fsk_reg59); // release the reset bit + BK4819_WriteRegister(0x59, (1u << 15) | fsk_reg59); // clear TX fifo by setting the FIFO reset bit + BK4819_WriteRegister(0x59, (0u << 15) | fsk_reg59); // release the reset bit // REG_5A // // <15:8> 0x55 FSK Sync Byte 0 (Sync Byte 0 first, then 1,2,3) // <7:0> 0x55 FSK Sync Byte 1 // - BK4819_WriteRegister(BK4819_REG_5A, 0x0000); // bytes 1 & 2 + BK4819_WriteRegister(0x5A, 0x0000); // bytes 1 & 2 // REG_5B // // <15:8> 0x55 FSK Sync Byte 2 (Sync Byte 0 first, then 1,2,3) // <7:0> 0xAA FSK Sync Byte 3 // - BK4819_WriteRegister(BK4819_REG_5B, 0x0000); // bytes 2 & 3 (not used) + BK4819_WriteRegister(0x5B, 0x0000); // bytes 2 & 3 (not used) // CRC setting (plus other stuff we don't know what) // @@ -2134,21 +2130,21 @@ void BK4819_PlayRogerMDC1200(void) // // disable CRC // -// BK4819_WriteRegister(BK4819_REG_5C, 0xAA30); // 101010100 0 110000 - BK4819_WriteRegister(BK4819_REG_5C, 0); // setting to '0' doesn't make any difference ! +// BK4819_WriteRegister(0x5C, 0xAA30); // 101010100 0 110000 + BK4819_WriteRegister(0x5C, 0); // setting to '0' doesn't make any difference ! { // load the entire packet data into the TX FIFO buffer unsigned int i; const uint16_t *p = (const uint16_t *)packet; for (i = 0; i < (size / sizeof(p[0])); i++) - BK4819_WriteRegister(BK4819_REG_5F, p[i]); // load 16-bits at a time + BK4819_WriteRegister(0x5F, p[i]); // load 16-bits at a time } // enable tx interrupt - BK4819_WriteRegister(BK4819_REG_3F, BK4819_REG_3F_FSK_TX_FINISHED); + BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_TX_FINISHED); // enable TX - BK4819_WriteRegister(BK4819_REG_59, (1u << 11) | fsk_reg59); + BK4819_WriteRegister(0x59, (1u << 11) | fsk_reg59); { // packet time is .. // 173ms for PTT ID, acks, emergency @@ -2161,39 +2157,39 @@ void BK4819_PlayRogerMDC1200(void) while (timeout-- > 0) { SYSTEM_DelayMs(5); - if (BK4819_ReadRegister(BK4819_REG_0C) & (1u << 0)) + if (BK4819_ReadRegister(0x0C) & (1u << 0)) { // we have interrupt flags - BK4819_WriteRegister(BK4819_REG_02, 0); - if (BK4819_ReadRegister(BK4819_REG_02) & BK4819_REG_02_FSK_TX_FINISHED) + BK4819_WriteRegister(0x02, 0); + if (BK4819_ReadRegister(0x02) & BK4819_REG_02_FSK_TX_FINISHED) timeout = 0; // TX is complete } } } // disable TX - BK4819_WriteRegister(BK4819_REG_59, fsk_reg59); + BK4819_WriteRegister(0x59, fsk_reg59); - BK4819_WriteRegister(BK4819_REG_3F, 0); // disable interrupts - BK4819_WriteRegister(BK4819_REG_70, 0); - BK4819_WriteRegister(BK4819_REG_58, 0); + BK4819_WriteRegister(0x3F, 0); // disable interrupts + BK4819_WriteRegister(0x70, 0); + BK4819_WriteRegister(0x58, 0); } #endif void BK4819_Enable_AfDac_DiscMode_TxDsp(void) { - BK4819_WriteRegister(BK4819_REG_30, 0x0000); - BK4819_WriteRegister(BK4819_REG_30, 0x0302); + BK4819_WriteRegister(0x30, 0x0000); + BK4819_WriteRegister(0x30, 0x0302); } void BK4819_GetVoxAmp(uint16_t *pResult) { - *pResult = BK4819_ReadRegister(BK4819_REG_64) & 0x7FFF; + *pResult = BK4819_ReadRegister(0x64) & 0x7FFF; } void BK4819_SetScrambleFrequencyControlWord(uint32_t Frequency) { - BK4819_WriteRegister(BK4819_REG_71, scale_freq(Frequency)); + BK4819_WriteRegister(0x71, scale_freq(Frequency)); } void BK4819_PlayDTMFEx(bool bLocalLoopback, char Code) @@ -2201,7 +2197,7 @@ void BK4819_PlayDTMFEx(bool bLocalLoopback, char Code) BK4819_EnableDTMF(); BK4819_EnterTxMute(); BK4819_SetAF(bLocalLoopback ? BK4819_AF_BEEP : BK4819_AF_MUTE); - BK4819_WriteRegister(BK4819_REG_70, 0xD3D3); // 1101 0011 1101 0011 + BK4819_WriteRegister(0x70, 0xD3D3); // 1101 0011 1101 0011 BK4819_EnableTXLink(); SYSTEM_DelayMs(50); BK4819_PlayDTMF(Code); diff --git a/driver/bk4819.h b/driver/bk4819.h index 3fea7a5..64bd21a 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -62,8 +62,8 @@ typedef enum BK4819_CSS_scan_result_e BK4819_CSS_scan_result_t; extern bool g_rx_idle_mode; void BK4819_Init(void); -uint16_t BK4819_ReadRegister(bk4819_register_t Register); -void BK4819_WriteRegister(bk4819_register_t Register, uint16_t Data); +uint16_t BK4819_ReadRegister(const uint8_t Register); +void BK4819_WriteRegister(const uint8_t Register, uint16_t Data); void BK4819_WriteU8(uint8_t Data); void BK4819_WriteU16(uint16_t Data); diff --git a/firmware.bin b/firmware.bin index 42c6df84bf1b01537bc7c3b124a3558a985410f4..28b1233cf87244d6cb7634891f659b99def71819 100644 GIT binary patch delta 42378 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 delta 42697 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 807651350d5d1db68ce439a3a02a064a1fac366c..f02fbfc1cd94bf5e41105141b3ea8c07ecfec3de 100644 GIT binary patch delta 52536 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%0DghQ3$;z6H!-8=ou0tB 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 MF-w!2?IZ$F_yV(TG5`Po delta 52662 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 z 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 ohpsLyvsl-95(jNdf}$iS#channel_save) && g_is_noaa_mode) @@ -654,7 +654,7 @@ void RADIO_setup_registers(bool switch_to_function_foreground) BK4819_set_GPIO_pin(BK4819_GPIO0_PIN28_RX_ENABLE, true); // AF RX Gain and DAC - BK4819_WriteRegister(BK4819_REG_48, 0xB3A8); // 1011 00 111010 1000 + BK4819_WriteRegister(0x48, 0xB3A8); // 1011 00 111010 1000 interrupt_mask = BK4819_REG_3F_SQUELCH_FOUND | BK4819_REG_3F_SQUELCH_LOST; @@ -781,7 +781,7 @@ void RADIO_setup_registers(bool switch_to_function_foreground) #endif // enable/disable BK4819 selected interrupts - BK4819_WriteRegister(BK4819_REG_3F, interrupt_mask); + BK4819_WriteRegister(0x3F, interrupt_mask); FUNCTION_Init(); diff --git a/settings.h b/settings.h index 5399a22..ac3f536 100644 --- a/settings.h +++ b/settings.h @@ -48,7 +48,7 @@ enum { enum { SCAN_RESUME_TIME = 0, SCAN_RESUME_CARRIER, - SCAN_RESUME_SEARCH + SCAN_RESUME_STOP }; enum {