LowPowerLab Forum

Hardware support => RF - Range - Antennas - RFM69 library => Topic started by: WhiteHare on March 28, 2016, 12:43:55 PM

Title: high power settings not being completely turned off by library while in Rx mode?
Post by: WhiteHare on March 28, 2016, 12:43:55 PM
Running the gateway example from the Low Power Lab RFM69 library on an RFM69HW Moteino and doing a register dump (below I extended the address range to also include other high power related registers), it appears that register RegOcp  (0x13) retains its high power setting (0x0F)--i.e. OCP is disabled--while in Rx mode:

Code: [Select]
Address - HEX - BIN
1 - 10 - 10000
2 - 0 - 0
3 - 2 - 10
4 - 40 - 1000000
5 - 3 - 11
6 - 33 - 110011
7 - E4 - 11100100
8 - C0 - 11000000
9 - 0 - 0
A - 41 - 1000001
B - 40 - 1000000
C - 2 - 10
D - 92 - 10010010
E - F5 - 11110101
F - 20 - 100000
10 - 24 - 100100
11 - 7F - 1111111
12 - 9 - 1001
13 - F - 1111
14 - 40 - 1000000
15 - B0 - 10110000
16 - 7B - 1111011
17 - 9B - 10011011
18 - 8 - 1000
19 - 42 - 1000010
1A - 8A - 10001010
1B - 40 - 1000000
1C - 80 - 10000000
1D - 6 - 110
1E - 10 - 10000
1F - 0 - 0
20 - 0 - 0
21 - 0 - 0
22 - 0 - 0
23 - 0 - 0
24 - B8 - 10111000
25 - 40 - 1000000
26 - 7 - 111
27 - D8 - 11011000
28 - 0 - 0
29 - DC - 11011100
2A - 0 - 0
2B - 0 - 0
2C - 0 - 0
2D - 3 - 11
2E - 88 - 10001000
2F - 2D - 101101
30 - 64 - 1100100
31 - 0 - 0
32 - 0 - 0
33 - 0 - 0
34 - 0 - 0
35 - 0 - 0
36 - 0 - 0
37 - 90 - 10010000
38 - 42 - 1000010
39 - 0 - 0
3A - 0 - 0
3B - 0 - 0
3C - 8F - 10001111
3D - 13 - 10011
3E - 73 - 1110011
3F - 61 - 1100001
40 - 6D - 1101101
41 - 70 - 1110000
42 - 6C - 1101100
43 - 65 - 1100101
44 - 45 - 1000101
45 - 6E - 1101110
46 - 63 - 1100011
47 - 72 - 1110010
48 - 79 - 1111001
49 - 70 - 1110000
4A - 74 - 1110100
4B - 4B - 1001011
4C - 65 - 1100101
4D - 79 - 1111001
4E - 0 - 0
4F - 8D - 10001101
50 - 15 - 10101
51 - 85 - 10000101
52 - 88 - 10001000
53 - 8 - 1000
54 - 0 - 0
55 - 0 - 0
56 - 1 - 1
57 - 0 - 0
58 - 1B - 11011
59 - 9 - 1001
5A - 55 - 1010101
5B - 80 - 10000000
5C - 70 - 1110000

According to Table 11 of the SX1231H datasheet, it should instead be set to 0x1x.  According to the note just below the table: "High Power settings MUST be turned off when using PA0, and in Receive mode."

Fortunately, the other two high power registers appear to be correctly set.

[Edit1: I don't know that it matters, but for the above, I had commented out ENABLE_ATC.]

[Edit2: setHighPower() turns off the RFM69HW's overcurrent protection, but  library code to re-enable OCP appears to be missing.]

[Edit3: Also, for the reason given in Edit2 above, I don't believe re-enabling OCP is happening for Tx power of +18dBm and below.  According to the note below Table 10: "To ensure correct operation at the highest power levels, please make sure to adjust the Over Current Protection Limit accordingly in RegOcp, except above +18dBm where it must be disabled".    ]