Update PA curve
This commit is contained in:
parent
c5e84eab6c
commit
a384c25143
52
Radio.cpp
52
Radio.cpp
@ -2261,8 +2261,12 @@ void sx128x::setTxPower(int level, int outputPin) {
|
|||||||
// Higher voltage batteries may cause your device to operate illegally due
|
// Higher voltage batteries may cause your device to operate illegally due
|
||||||
// to the resulting increase in transmission power. Beware!
|
// to the resulting increase in transmission power. Beware!
|
||||||
|
|
||||||
if (level > 27) {
|
// TODO: in the future it may be possible to read the battery voltage and
|
||||||
level = 27;
|
// compensate for the lower voltage causing a lower transmit power. Need to
|
||||||
|
// look into this.
|
||||||
|
|
||||||
|
if (level > 25) {
|
||||||
|
level = 25;
|
||||||
} else if (level < 0) {
|
} else if (level < 0) {
|
||||||
level = 0;
|
level = 0;
|
||||||
}
|
}
|
||||||
@ -2274,93 +2278,93 @@ void sx128x::setTxPower(int level, int outputPin) {
|
|||||||
switch (level) {
|
switch (level) {
|
||||||
case 0:
|
case 0:
|
||||||
reg_value = -18;
|
reg_value = -18;
|
||||||
_txp_dc = 55;
|
_txp_dc = 131;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
reg_value = -16;
|
reg_value = -16;
|
||||||
_txp_dc = 64;
|
_txp_dc = 137;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
reg_value = -15;
|
reg_value = -15;
|
||||||
_txp_dc = 73;
|
_txp_dc = 142;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
reg_value = -14;
|
reg_value = -14;
|
||||||
_txp_dc = 81;
|
_txp_dc = 148;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
reg_value = -13;
|
reg_value = -13;
|
||||||
_txp_dc = 90;
|
_txp_dc = 154;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
reg_value = -12;
|
reg_value = -12;
|
||||||
_txp_dc = 100;
|
_txp_dc = 159;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
reg_value = -11;
|
reg_value = -11;
|
||||||
_txp_dc = 108;
|
_txp_dc = 163;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
reg_value = -9;
|
reg_value = -9;
|
||||||
_txp_dc = 117;
|
_txp_dc = 168;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
reg_value = -8;
|
reg_value = -8;
|
||||||
_txp_dc = 126;
|
_txp_dc = 174;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
reg_value = -7;
|
reg_value = -7;
|
||||||
_txp_dc = 135;
|
_txp_dc = 178;
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
reg_value = -6;
|
reg_value = -6;
|
||||||
_txp_dc = 144;
|
_txp_dc = 184;
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
reg_value = -5;
|
reg_value = -5;
|
||||||
_txp_dc = 153;
|
_txp_dc = 189;
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
reg_value = -4;
|
reg_value = -4;
|
||||||
_txp_dc = 161;
|
_txp_dc = 194;
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
reg_value = -3;
|
reg_value = -3;
|
||||||
_txp_dc = 170;
|
_txp_dc = 199;
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
reg_value = -2;
|
reg_value = -2;
|
||||||
_txp_dc = 180;
|
_txp_dc = 199;
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
reg_value = -1;
|
reg_value = -1;
|
||||||
// Capped to ensure it doesn't exceed 15dBm
|
// Capped to ensure it doesn't exceed 15dBm
|
||||||
_txp_dc = 183;
|
_txp_dc = 202;
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
reg_value = 0;
|
reg_value = 0;
|
||||||
// Capped to ensure it doesn't exceed 16dBm
|
// Capped to ensure it doesn't exceed 16dBm
|
||||||
_txp_dc = 190;
|
_txp_dc = 208;
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
reg_value = 1;
|
reg_value = 1;
|
||||||
// Capped to ensure it doesn't exceed 17dBm
|
// Capped to ensure it doesn't exceed 17dBm
|
||||||
_txp_dc = 200;
|
_txp_dc = 214;
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
reg_value = 2;
|
reg_value = 2;
|
||||||
// Capped to ensure it doesn't exceed 18dBm
|
// Capped to ensure it doesn't exceed 18dBm
|
||||||
_txp_dc = 209;
|
_txp_dc = 222;
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
reg_value = 3;
|
reg_value = 3;
|
||||||
// Capped to ensure it doesn't exceed 19dBm
|
// Capped to ensure it doesn't exceed 19dBm
|
||||||
_txp_dc = 218;
|
_txp_dc = 228;
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
reg_value = 4;
|
reg_value = 4;
|
||||||
// Capped to ensure it doesn't exceed 20dBm
|
// Capped to ensure it doesn't exceed 20dBm
|
||||||
_txp_dc = 227;
|
_txp_dc = 234;
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
reg_value = 5;
|
reg_value = 5;
|
||||||
@ -2392,7 +2396,7 @@ void sx128x::setTxPower(int level, int outputPin) {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
reg_value = -18;
|
reg_value = -18;
|
||||||
_txp_dc = 55;
|
_txp_dc = 131;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user