From e88adc34015a98a4f23fe3ca1358b5e7cecabf5c Mon Sep 17 00:00:00 2001 From: zhangwenxu Date: Mon, 19 Jun 2023 16:58:09 +0800 Subject: [PATCH] IEEE802154: match C6 max txpower value with datasheet --- components/hal/esp32c6/include/hal/ieee802154_ll.h | 5 +++-- components/hal/esp32h2/include/hal/ieee802154_ll.h | 3 ++- components/ieee802154/driver/esp_ieee802154_pib.c | 14 +++++++------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/components/hal/esp32c6/include/hal/ieee802154_ll.h b/components/hal/esp32c6/include/hal/ieee802154_ll.h index 43b90e0925..eec479e96a 100644 --- a/components/hal/esp32c6/include/hal/ieee802154_ll.h +++ b/components/hal/esp32c6/include/hal/ieee802154_ll.h @@ -9,5 +9,6 @@ #include #include "hal/ieee802154_common_ll.h" -#define IEEE802154_TXPOWER_VALUE_MAX 21 -#define IEEE802154_TXPOWER_VALUE_MIN -24 +#define IEEE802154_TXPOWER_VALUE_MAX 20 +#define IEEE802154_TXPOWER_VALUE_MIN -15 +#define IEEE802154_TXPOWER_INDEX_MIN 3 diff --git a/components/hal/esp32h2/include/hal/ieee802154_ll.h b/components/hal/esp32h2/include/hal/ieee802154_ll.h index 43b90e0925..fdc212b582 100644 --- a/components/hal/esp32h2/include/hal/ieee802154_ll.h +++ b/components/hal/esp32h2/include/hal/ieee802154_ll.h @@ -9,5 +9,6 @@ #include #include "hal/ieee802154_common_ll.h" -#define IEEE802154_TXPOWER_VALUE_MAX 21 +#define IEEE802154_TXPOWER_VALUE_MAX 20 #define IEEE802154_TXPOWER_VALUE_MIN -24 +#define IEEE802154_TXPOWER_INDEX_MIN 0 diff --git a/components/ieee802154/driver/esp_ieee802154_pib.c b/components/ieee802154/driver/esp_ieee802154_pib.c index 81b7a57da4..2c52a6ca8b 100644 --- a/components/ieee802154/driver/esp_ieee802154_pib.c +++ b/components/ieee802154/driver/esp_ieee802154_pib.c @@ -47,15 +47,15 @@ void ieee802154_pib_init(void) static uint8_t ieee802154_txpower_convert(int8_t txpower) { - uint8_t ieee820154_txpower_value = 0; - if (txpower > IEEE802154_TXPOWER_VALUE_MAX) { - ieee820154_txpower_value = 15; - } else if (txpower < IEEE802154_TXPOWER_VALUE_MIN) { - ieee820154_txpower_value = 0; + uint8_t ieee820154_txpower_index = 0; + if (txpower >= IEEE802154_TXPOWER_VALUE_MAX) { + ieee820154_txpower_index = 15; + } else if (txpower <= IEEE802154_TXPOWER_VALUE_MIN) { + ieee820154_txpower_index = IEEE802154_TXPOWER_INDEX_MIN; } else { - ieee820154_txpower_value = (uint8_t)((txpower - IEEE802154_TXPOWER_VALUE_MIN) / 3); + ieee820154_txpower_index = (uint8_t)((txpower - IEEE802154_TXPOWER_VALUE_MIN) / 3) + IEEE802154_TXPOWER_INDEX_MIN; } - return ieee820154_txpower_value; + return ieee820154_txpower_index; } void ieee802154_pib_update(void)