mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
LP-346 RFM22 tuning: Add XtalCap value for fine tuning
This commit is contained in:
parent
7800f49705
commit
ea377973fc
@ -1573,8 +1573,13 @@ static enum pios_radio_event rfm22_init(struct pios_rfm22b_dev *rfm22b_dev)
|
||||
// RX FIFO Almost Full Threshold (0 - 63)
|
||||
rfm22_write(rfm22b_dev, RFM22_rx_fifo_control, RX_FIFO_HI_WATERMARK);
|
||||
|
||||
// Set the frequency calibration
|
||||
rfm22_write(rfm22b_dev, RFM22_xtal_osc_load_cap, rfm22b_dev->cfg.RFXtalCap);
|
||||
// Set the xtal capacitor for frequency calibration
|
||||
// Cint = 1.8 pF + 0.085 pF x xlc[6:0] + 3.7 pF x xlc[7] (xtalshift)
|
||||
// cfg.RFXtalCap 0 to 171 range give Cint = 1.8pF to 16.295pF range
|
||||
// Default is 127, equal to 12.595pF
|
||||
rfm22_write(rfm22b_dev,
|
||||
RFM22_xtal_osc_load_cap,
|
||||
(rfm22b_dev->cfg.RFXtalCap < 128) ? rfm22b_dev->cfg.RFXtalCap : (rfm22b_dev->cfg.RFXtalCap + 84));
|
||||
|
||||
// Release the bus
|
||||
rfm22_releaseBus(rfm22b_dev);
|
||||
|
@ -413,6 +413,10 @@ void PIOS_Board_Init(void)
|
||||
|
||||
// Configure the RFM22B device
|
||||
const struct pios_rfm22b_cfg *rfm22b_cfg = PIOS_BOARD_HW_DEFS_GetRfm22Cfg(bdinfo->board_rev);
|
||||
|
||||
// Set the Xtal capacitor value
|
||||
pios_rfm22b_cfg.RFXtalCap = oplinkSettings.RFXtalCap;
|
||||
|
||||
if (PIOS_RFM22B_Init(&pios_rfm22b_id, PIOS_RFM22_SPI_PORT, rfm22b_cfg->slave_num, rfm22b_cfg, oplinkSettings.RFBand)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
@ -640,7 +640,7 @@ static const struct pios_exti_cfg pios_exti_rfm22b_cfg __exti_config = {
|
||||
},
|
||||
};
|
||||
|
||||
const struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
||||
struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
||||
.spi_cfg = &pios_spi_telem_flash_cfg,
|
||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||
.RFXtalCap = 0x7f,
|
||||
@ -648,7 +648,7 @@ const struct pios_rfm22b_cfg pios_rfm22b_rm1_cfg = {
|
||||
.gpio_direction = GPIO0_RX_GPIO1_TX,
|
||||
};
|
||||
|
||||
const struct pios_rfm22b_cfg pios_rfm22b_rm2_cfg = {
|
||||
struct pios_rfm22b_cfg pios_rfm22b_rm2_cfg = {
|
||||
.spi_cfg = &pios_spi_telem_flash_cfg,
|
||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||
.RFXtalCap = 0x7f,
|
||||
|
@ -912,6 +912,11 @@ void PIOS_Board_Init(void)
|
||||
} else {
|
||||
/* Configure the RFM22B device. */
|
||||
const struct pios_rfm22b_cfg *rfm22b_cfg = PIOS_BOARD_HW_DEFS_GetRfm22Cfg(bdinfo->board_rev);
|
||||
|
||||
// Set the Xtal capacitor value
|
||||
pios_rfm22b_rm1_cfg.RFXtalCap = oplinkSettings.RFXtalCap;
|
||||
pios_rfm22b_rm2_cfg.RFXtalCap = oplinkSettings.RFXtalCap;
|
||||
|
||||
if (PIOS_RFM22B_Init(&pios_rfm22b_id, PIOS_RFM22_SPI_PORT, rfm22b_cfg->slave_num, rfm22b_cfg, oplinkSettings.RFBand)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
@ -431,7 +431,7 @@ static const struct pios_exti_cfg pios_exti_rfm22b_cfg __exti_config = {
|
||||
},
|
||||
};
|
||||
|
||||
const struct pios_rfm22b_cfg pios_rfm22b_cfg = {
|
||||
struct pios_rfm22b_cfg pios_rfm22b_cfg = {
|
||||
.spi_cfg = &pios_spi_telem_flash_cfg,
|
||||
.exti_cfg = &pios_exti_rfm22b_cfg,
|
||||
.RFXtalCap = 0x7f,
|
||||
|
@ -852,6 +852,10 @@ void PIOS_Board_Init(void)
|
||||
} else {
|
||||
/* Configure the RFM22B device. */
|
||||
const struct pios_rfm22b_cfg *rfm22b_cfg = PIOS_BOARD_HW_DEFS_GetRfm22Cfg(bdinfo->board_rev);
|
||||
|
||||
// Set the Xtal capacitor value
|
||||
pios_rfm22b_cfg.RFXtalCap = oplinkSettings.RFXtalCap;
|
||||
|
||||
if (PIOS_RFM22B_Init(&pios_rfm22b_id, PIOS_RFM22_SPI_PORT, rfm22b_cfg->slave_num, rfm22b_cfg, oplinkSettings.RFBand)) {
|
||||
PIOS_Assert(0);
|
||||
}
|
||||
|
@ -13,6 +13,7 @@
|
||||
<field name="MinChannel" units="" type="uint8" elements="1" defaultvalue="0"/>
|
||||
<field name="MaxChannel" units="" type="uint8" elements="1" defaultvalue="250"/>
|
||||
<field name="CustomDeviceID" units="hex" type="uint32" elements="1" defaultvalue="0"/>
|
||||
<field name="RFXtalCap" units="" type="uint8" elements="1" defaultvalue="127" limits="%BE:0:171" description="0 to 171 range, default 127"/>
|
||||
|
||||
<!-- OpenLRS options -->
|
||||
<field name="Version" units="" type="uint8" elements="1" defaultvalue="0"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user