diff options
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/ao_cc115l.c | 5 | ||||
-rw-r--r-- | src/drivers/ao_rf_cc115l.h | 2 | ||||
-rw-r--r-- | src/drivers/ao_rfpa0133.c | 7 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c index feff82af..5b0ec3d7 100644 --- a/src/drivers/ao_cc115l.c +++ b/src/drivers/ao_cc115l.c @@ -452,6 +452,7 @@ static void ao_radio_get(uint8_t len) { static uint32_t last_radio_setting; + static uint8_t last_power_setting; ao_mutex_get(&ao_radio_mutex); if (!ao_radio_configured) @@ -462,6 +463,10 @@ ao_radio_get(uint8_t len) ao_radio_reg_write(CC115L_FREQ0, ao_config.radio_setting); last_radio_setting = ao_config.radio_setting; } + if (ao_config.radio_power != last_power_setting) { + ao_radio_reg_write(CC115L_PA, ao_config.radio_power); + last_power_setting = ao_config.radio_power; + } ao_radio_set_len(len); } diff --git a/src/drivers/ao_rf_cc115l.h b/src/drivers/ao_rf_cc115l.h index 6eb30bf2..50a730ab 100644 --- a/src/drivers/ao_rf_cc115l.h +++ b/src/drivers/ao_rf_cc115l.h @@ -80,4 +80,4 @@ CC115L_TEST1, 0x35, /* Various Test Settings */ CC115L_TEST0, 0x09, /* Various Test Settings */ - CC115L_PA, 0x60, /* Power setting (0dBm) */ + CC115L_PA, 0x00, /* Power setting (0dBm) */ diff --git a/src/drivers/ao_rfpa0133.c b/src/drivers/ao_rfpa0133.c index 70d5edba..a98e261a 100644 --- a/src/drivers/ao_rfpa0133.c +++ b/src/drivers/ao_rfpa0133.c @@ -17,10 +17,8 @@ #include "ao.h" -static uint8_t power = 0; - static void -ao_rfpa0133_set_power(void) +ao_rfpa0133_set_power(uint8_t power) { ao_gpio_set(AO_PA_GAIN_8_GPIO, AO_PA_GAIN_8_PIN, AO_PA_GAIN_8, power & 1); ao_gpio_set(AO_PA_GAIN_16_GPIO, AO_PA_GAIN_16_PIN, AO_PA_GAIN_16, (power >> 1) & 1); @@ -29,7 +27,7 @@ ao_rfpa0133_set_power(void) void ao_radio_pa_on(void) { - ao_rfpa0133_set_power(); + ao_rfpa0133_set_power(ao_config.radio_amp); ao_gpio_set(AO_PA_POWER_GPIO, AO_PA_POWER_PIN, AO_PA_POWER, 1); } @@ -37,6 +35,7 @@ void ao_radio_pa_off(void) { ao_gpio_set(AO_PA_POWER_GPIO, AO_PA_POWER_PIN, AO_PA_POWER, 0); + ao_rfpa0133_set_power(0); } void |